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() {
changeFragment(FRAGMENT_LOGIN);
setOfflineBanner(true);
setRefreshFailedBanner(false);
changeFragment(FRAGMENT_LOGIN);
}
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) {
log.d(currentPage, newFragment);
setOfflineBanner(onlineMode);
changeFragment(newFragment, newData);
View header = mNavigationView.getHeaderView(0);
((TextView) header.findViewById(R.id.login_name)).setText(fullName);
((TextView) header.findViewById(R.id.login_mail)).setText(email);
setOfflineBanner(onlineMode);
}
private void checkAndDoLogin() {
@@ -320,7 +320,6 @@ public class MainActivity extends AppCompatActivity
if (newFragment == FRAGMENT_MODULES_DETAILS && newData.equals(""))
newFragment = FRAGMENT_MODULES;
//log.d("changeFragment: ", newFragment, newData);
onTitleTextChange(R.string.app_name);
Fragment fragment;
switch (newFragment) {
@@ -368,7 +367,7 @@ public class MainActivity extends AppCompatActivity
} // switch to login
else if (
(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();
}
@@ -561,13 +560,14 @@ public class MainActivity extends AppCompatActivity
@Override
public void refreshNavigation() {
boolean loggedIn = getKVV().isLoggedIn();
setNavigationHeader(loggedIn);
boolean isLoggedIn = getKVV().isLoggedIn() || mOfflineMode;
log.d("refreshNavigation2", getKVV().isLoggedIn(), mOfflineMode);
setNavigationHeader(isLoggedIn);
mNavigationView.getMenu().clear();
if (loggedIn)
if (isLoggedIn)
mNavigationView.inflateMenu(R.menu.activity_main_drawer_login);
else
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.Modules;
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.NetworkErrorCallback;
@@ -25,6 +26,7 @@ public class KVV {
private final ArrayList<LastTokenCallback> updatingList;
private final HashMap<String, Object> addons = new HashMap<>();
private final MainActivityListener mListener;
private Logger log = new Logger(this);
public KVV(Context context) {
mListener = (MainActivityListener) context;
@@ -185,6 +187,7 @@ public class KVV {
mListener.loginTokenInvalid(true);
else
mListener.onRefreshCompleted(true);
log.e(error);
errorCallback.onError(error);
});
}