Fix bad behavior with unhidden items in menu

This commit is contained in:
tom79 2019-06-24 18:55:00 +02:00
parent bf207a77be
commit 7d8157c5e2
1 changed files with 24 additions and 8 deletions

View File

@ -1506,7 +1506,7 @@ public class Helper {
*/
public static void changeUser(Activity activity, String userID, String instance, boolean notificationIntent) {
final SharedPreferences sharedpreferences = activity.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
final NavigationView navigationView = activity.findViewById(R.id.nav_view);
navigationView.getMenu().clear();
MainActivity.lastNotificationId = null;
@ -1519,13 +1519,7 @@ public class Helper {
//Can happen when an account has been deleted and there is a click on an old notification
if( account == null)
return;
//Locked account can see follow request
if (account.isLocked()) {
navigationView.getMenu().findItem(R.id.nav_follow_request).setVisible(true);
} else {
navigationView.getMenu().findItem(R.id.nav_follow_request).setVisible(false);
}
SharedPreferences sharedpreferences = activity.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
String token = sharedpreferences.getString(Helper.PREF_KEY_OAUTH_TOKEN, null);
if( !account.getToken().equals(token)){
FragmentManager fm = activity.getFragmentManager();
@ -1533,6 +1527,7 @@ public class Helper {
fm.popBackStack();
}
}
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.putString(Helper.PREF_KEY_OAUTH_TOKEN, account.getToken());
editor.putString(Helper.PREF_KEY_ID, account.getId());
@ -2918,6 +2913,27 @@ public class Helper {
if( navigationView.getMenu().findItem(R.id.nav_follow_request) != null)
navigationView.getMenu().findItem(R.id.nav_follow_request).setVisible(false);
}
MenuItem news = navigationView.getMenu().findItem(R.id.nav_news);
if( news != null){
boolean display_news = sharedpreferences.getBoolean(Helper.SET_DISPLAY_NEWS_FROM_FEDILAB, true);
if( ! display_news ){
news.setVisible(false);
}
}
if( MainActivity.social != UpdateAccountInfoAsyncTask.SOCIAL.MASTODON){
MenuItem adminItem = navigationView.getMenu().findItem(R.id.nav_administration);
if( adminItem != null){
adminItem.setVisible(false);
}
}else{
boolean display_admin_menu = sharedpreferences.getBoolean(Helper.SET_DISPLAY_ADMIN_MENU + userID + instance, false);
if( !display_admin_menu){
MenuItem adminItem = navigationView.getMenu().findItem(R.id.nav_administration);
if( adminItem != null){
adminItem.setVisible(false);
}
}
}
}
String instanceVersion = sharedpreferences.getString(Helper.INSTANCE_VERSION + userID + instance, null);