Save filter state across rotation

Stephen Paul Weber created

Change summary

src/main/java/eu/siacs/conversations/ui/ConversationsActivity.java | 8 
1 file changed, 7 insertions(+), 1 deletion(-)

Detailed changes

src/main/java/eu/siacs/conversations/ui/ConversationsActivity.java 🔗

@@ -352,12 +352,16 @@ public class ConversationsActivity extends XmppActivity implements OnConversatio
         com.mikepenz.materialdrawer.model.interfaces.IconableKt.setIconRes(settings, R.drawable.ic_settings_24dp);
         com.mikepenz.materialdrawer.util.MaterialDrawerSliderViewExtensionsKt.addStickyDrawerItems(binding.drawer, settings);
 
+        if (useSavedState != null) {
+            mainFilter = useSavedState.getLong("mainFilter", DRAWER_ALL_CHATS);
+            selectedTag = (Tag) useSavedState.getSerializable("selectedTag");
+        }
         refreshUiReal();
         if (useSavedState != null) binding.drawer.setSavedInstance(useSavedState);
         accountHeader.attachToSliderView(binding.drawer);
         if (useSavedState != null) accountHeader.withSavedInstance(useSavedState);
 
-        if (binding.drawer.getSelectedItemPosition() < 1) {
+        if (mainFilter == DRAWER_ALL_CHATS && selectedTag == null) {
             binding.drawer.setSelectedItemIdentifier(DRAWER_ALL_CHATS);
         }
 
@@ -1003,6 +1007,8 @@ public class ConversationsActivity extends XmppActivity implements OnConversatio
     public void onSaveInstanceState(Bundle savedInstanceState) {
         final Intent pendingIntent = pendingViewIntent.peek();
         savedInstanceState.putParcelable("intent", pendingIntent != null ? pendingIntent : getIntent());
+        savedInstanceState.putLong("mainFilter", mainFilter);
+        savedInstanceState.putSerializable("selectedTag", selectedTag);
         savedInstanceState = binding.drawer.saveInstanceState(savedInstanceState);
         savedInstanceState = accountHeader.saveInstanceState(savedInstanceState);
         super.onSaveInstanceState(savedInstanceState);