Remember group selection after screen rotate

Solution:
Restore _groupFilter as _prefGroupFilter in order to reapply correct filter after screen rotate
This commit is contained in:
codeall9 2024-05-18 15:53:26 +08:00 committed by Alexander Bakker
parent 2b04ae0622
commit 65a57f2b9c

View File

@ -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<UUID> filter = (HashSet<UUID>) 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();