From c64c3418421e7346e5cc0c6aacdb8a9d293f4999 Mon Sep 17 00:00:00 2001 From: Shinokuni <shinokuni@openserver.fr> Date: Sat, 28 Sep 2019 19:06:44 +0200 Subject: [PATCH] Fix account settings drawer item disappearing after deleting an account --- .../readrops/app/activities/MainActivity.java | 2 +- .../com/readrops/app/utils/DrawerManager.java | 40 +++++++++---------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/com/readrops/app/activities/MainActivity.java b/app/src/main/java/com/readrops/app/activities/MainActivity.java index c6c11fb4..4e9b8a5e 100644 --- a/app/src/main/java/com/readrops/app/activities/MainActivity.java +++ b/app/src/main/java/com/readrops/app/activities/MainActivity.java @@ -194,6 +194,7 @@ public class MainActivity extends AppCompatActivity implements SwipeRefreshLayou if (drawer == null) { drawer = drawerManager.buildDrawer(accounts); + drawer.setSelection(DrawerManager.ARTICLES_ITEM_ID); updateDrawerFeeds(); } else if (accounts.size() < drawerManager.getNumberOfProfiles() && accounts.size() > 0) { drawerManager.updateHeader(accounts); @@ -213,7 +214,6 @@ public class MainActivity extends AppCompatActivity implements SwipeRefreshLayou onRefresh(); savedInstanceState.clear(); } - }); } diff --git a/app/src/main/java/com/readrops/app/utils/DrawerManager.java b/app/src/main/java/com/readrops/app/utils/DrawerManager.java index f08d083d..26ecf3b5 100644 --- a/app/src/main/java/com/readrops/app/utils/DrawerManager.java +++ b/app/src/main/java/com/readrops/app/utils/DrawerManager.java @@ -122,8 +122,6 @@ public class DrawerManager { for (SecondaryDrawerItem primaryDrawerItem : feedsWithoutFolder) { drawer.addItem(primaryDrawerItem); } - - drawer.setSelection(ARTICLES_ITEM_ID); } private void createAccountHeader(List<Account> accounts) { @@ -140,20 +138,9 @@ public class DrawerManager { profileItems[i] = profileItem; } - ProfileSettingDrawerItem addAccountSettingsItem = new ProfileSettingDrawerItem() - .withName(R.string.add_account) - .withIcon(R.drawable.ic_add_account_grey) - .withIdentifier(ADD_ACCOUNT_ID); - - ProfileSettingDrawerItem accountSettingsItem = new ProfileSettingDrawerItem() - .withName(R.string.account_settings) - .withIcon(R.drawable.ic_settings) - .withIdentifier(ACCOUNT_SETTINGS_ID); - header = new AccountHeaderBuilder() .withActivity(activity) .addProfiles(profileItems) - .addProfiles(accountSettingsItem, addAccountSettingsItem) .withDividerBelowHeader(false) .withAlternativeProfileHeaderSwitching(true) .withCurrentProfileHiddenInList(true) @@ -163,6 +150,7 @@ public class DrawerManager { .withOnAccountHeaderListener(headerListener) .build(); + addProfileSettingItems(); header.setActiveProfile(currentAccountId); } @@ -233,6 +221,20 @@ public class DrawerManager { drawer.addItem(new DividerDrawerItem()); } + private void addProfileSettingItems() { + ProfileSettingDrawerItem accountSettingsItem = new ProfileSettingDrawerItem() + .withName(R.string.account_settings) + .withIcon(R.drawable.ic_settings) + .withIdentifier(ACCOUNT_SETTINGS_ID); + + ProfileSettingDrawerItem addAccountSettingsItem = new ProfileSettingDrawerItem() + .withName(R.string.add_account) + .withIcon(R.drawable.ic_add_account_grey) + .withIdentifier(ADD_ACCOUNT_ID); + + header.addProfiles(accountSettingsItem, addAccountSettingsItem); + } + public void addAccount(Account account, boolean currentProfile) { ProfileDrawerItem profileItem = createProfileItem(account); @@ -244,13 +246,7 @@ public class DrawerManager { public void updateHeader(List<Account> accounts) { header.clear(); - - ProfileSettingDrawerItem addAccountSettingsItem = new ProfileSettingDrawerItem() - .withName(R.string.add_account) - .withIcon(R.drawable.ic_add_account_grey) - .withIdentifier(ADD_ACCOUNT_ID); - - header.addProfiles(addAccountSettingsItem); + addProfileSettingItems(); for (Account account : accounts) { addAccount(account, account.isCurrentAccount()); @@ -296,4 +292,8 @@ public class DrawerManager { } } } + + public void setDrawerSelection(long identifier) { + drawer.setSelection(identifier); + } }