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