Fixed offline mode navigation

This commit is contained in:
Caesar2011
2018-10-23 20:37:24 +02:00
parent 98db93c255
commit 9d5416ab9b
2 changed files with 12 additions and 9 deletions

View File

@@ -268,8 +268,9 @@ public class MainActivity extends AppCompatActivity
} }
private void toLogoutState() { private void toLogoutState() {
changeFragment(FRAGMENT_LOGIN);
setOfflineBanner(true); setOfflineBanner(true);
setRefreshFailedBanner(false);
changeFragment(FRAGMENT_LOGIN);
} }
private void toLoginState(LoginToken loginToken, int newFragment, String newData) { private void toLoginState(LoginToken loginToken, int newFragment, String newData) {
@@ -281,13 +282,12 @@ public class MainActivity extends AppCompatActivity
} }
private void toLoginState(String fullName, String email, int newFragment, String newData, boolean onlineMode) { private void toLoginState(String fullName, String email, int newFragment, String newData, boolean onlineMode) {
log.d(currentPage, newFragment); setOfflineBanner(onlineMode);
changeFragment(newFragment, newData); changeFragment(newFragment, newData);
View header = mNavigationView.getHeaderView(0); View header = mNavigationView.getHeaderView(0);
((TextView) header.findViewById(R.id.login_name)).setText(fullName); ((TextView) header.findViewById(R.id.login_name)).setText(fullName);
((TextView) header.findViewById(R.id.login_mail)).setText(email); ((TextView) header.findViewById(R.id.login_mail)).setText(email);
setOfflineBanner(onlineMode);
} }
private void checkAndDoLogin() { private void checkAndDoLogin() {
@@ -320,7 +320,6 @@ public class MainActivity extends AppCompatActivity
if (newFragment == FRAGMENT_MODULES_DETAILS && newData.equals("")) if (newFragment == FRAGMENT_MODULES_DETAILS && newData.equals(""))
newFragment = FRAGMENT_MODULES; newFragment = FRAGMENT_MODULES;
//log.d("changeFragment: ", newFragment, newData);
onTitleTextChange(R.string.app_name); onTitleTextChange(R.string.app_name);
Fragment fragment; Fragment fragment;
switch (newFragment) { switch (newFragment) {
@@ -368,7 +367,7 @@ public class MainActivity extends AppCompatActivity
} // switch to login } // switch to login
else if ( else if (
(currentPage == FRAGMENT_STARTUP || currentPage == FRAGMENT_LOGIN || currentPage == FRAGMENT_NONE) && (currentPage == FRAGMENT_STARTUP || currentPage == FRAGMENT_LOGIN || currentPage == FRAGMENT_NONE) &&
(newFragment != FRAGMENT_STARTUP && newFragment != FRAGMENT_LOGIN && getKVV().isLoggedIn()) (newFragment != FRAGMENT_STARTUP && newFragment != FRAGMENT_LOGIN && (getKVV().isLoggedIn() || mOfflineMode))
) { ) {
refreshNavigation(); refreshNavigation();
} }
@@ -561,13 +560,14 @@ public class MainActivity extends AppCompatActivity
@Override @Override
public void refreshNavigation() { public void refreshNavigation() {
boolean loggedIn = getKVV().isLoggedIn(); boolean isLoggedIn = getKVV().isLoggedIn() || mOfflineMode;
setNavigationHeader(loggedIn); log.d("refreshNavigation2", getKVV().isLoggedIn(), mOfflineMode);
setNavigationHeader(isLoggedIn);
mNavigationView.getMenu().clear(); mNavigationView.getMenu().clear();
if (loggedIn) if (isLoggedIn)
mNavigationView.inflateMenu(R.menu.activity_main_drawer_login); mNavigationView.inflateMenu(R.menu.activity_main_drawer_login);
else else
mNavigationView.inflateMenu(R.menu.activity_main_drawer); mNavigationView.inflateMenu(R.menu.activity_main_drawer);
afterAnyMenuInflate(loggedIn); afterAnyMenuInflate(isLoggedIn);
} }
} }

View File

@@ -11,6 +11,7 @@ import androidx.annotation.NonNull;
import de.sebse.fuplanner.services.KVV.types.LoginToken; import de.sebse.fuplanner.services.KVV.types.LoginToken;
import de.sebse.fuplanner.services.KVV.types.Modules; import de.sebse.fuplanner.services.KVV.types.Modules;
import de.sebse.fuplanner.tools.MainActivityListener; import de.sebse.fuplanner.tools.MainActivityListener;
import de.sebse.fuplanner.tools.logging.Logger;
import de.sebse.fuplanner.tools.network.NetworkCallback; import de.sebse.fuplanner.tools.network.NetworkCallback;
import de.sebse.fuplanner.tools.network.NetworkErrorCallback; import de.sebse.fuplanner.tools.network.NetworkErrorCallback;
@@ -25,6 +26,7 @@ public class KVV {
private final ArrayList<LastTokenCallback> updatingList; private final ArrayList<LastTokenCallback> updatingList;
private final HashMap<String, Object> addons = new HashMap<>(); private final HashMap<String, Object> addons = new HashMap<>();
private final MainActivityListener mListener; private final MainActivityListener mListener;
private Logger log = new Logger(this);
public KVV(Context context) { public KVV(Context context) {
mListener = (MainActivityListener) context; mListener = (MainActivityListener) context;
@@ -185,6 +187,7 @@ public class KVV {
mListener.loginTokenInvalid(true); mListener.loginTokenInvalid(true);
else else
mListener.onRefreshCompleted(true); mListener.onRefreshCompleted(true);
log.e(error);
errorCallback.onError(error); errorCallback.onError(error);
}); });
} }