Fixed offline mode navigation
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user