diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryListView.java b/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryListView.java index 3cbc4582..941757a6 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryListView.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryListView.java @@ -59,6 +59,7 @@ import com.google.common.base.Strings; import java.util.Collection; import java.util.Collections; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; @@ -169,6 +170,29 @@ public class EntryListView extends Fragment implements EntryAdapter.Listener { _preloadSizeProvider.setView(view); } + @Override + public void onViewStateRestored(@Nullable Bundle savedInstanceState) { + super.onViewStateRestored(savedInstanceState); + if (savedInstanceState == null) { + return; + } + + HashSet filter = (HashSet) savedInstanceState.getSerializable("prefGroupFilter"); + if (filter != null) { + _prefGroupFilter = filter; + } + } + + @Override + public void onSaveInstanceState(@NonNull Bundle outState) { + super.onSaveInstanceState(outState); + // user can apply _groupFilter without saving + // restore _groupFilter as _prefGroupFilter in order to reapply correct filter after screen rotate + if (_groupFilter != null) { + outState.putSerializable("prefGroupFilter", new HashSet<>(_groupFilter)); + } + } + @Override public void onDestroyView() { _refresher.destroy();