From 2029983465a7e262f99e2c0d4c8203c1cc01250d Mon Sep 17 00:00:00 2001 From: nbonnec Date: Sun, 13 Jul 2025 18:32:53 +0200 Subject: [PATCH 1/4] Fix for the read topics. --- .../redface/data/api/model/TopicFilter.java | 3 +++ .../redface/ui/fragment/TopicListFragment.java | 18 +++++++++++------- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/ayuget/redface/data/api/model/TopicFilter.java b/app/src/main/java/com/ayuget/redface/data/api/model/TopicFilter.java index 6d8adcdd..528307ef 100644 --- a/app/src/main/java/com/ayuget/redface/data/api/model/TopicFilter.java +++ b/app/src/main/java/com/ayuget/redface/data/api/model/TopicFilter.java @@ -18,6 +18,8 @@ import android.content.Context; +import androidx.annotation.NonNull; + import com.ayuget.redface.R; public enum TopicFilter { @@ -26,6 +28,7 @@ public enum TopicFilter { PARTICIPATED, READ; + @NonNull public String resolve(Context context) { if (this == NONE) { return context.getResources().getString(R.string.action_topics_filter_all); diff --git a/app/src/main/java/com/ayuget/redface/ui/fragment/TopicListFragment.java b/app/src/main/java/com/ayuget/redface/ui/fragment/TopicListFragment.java index 7b51bad1..fe07a281 100644 --- a/app/src/main/java/com/ayuget/redface/ui/fragment/TopicListFragment.java +++ b/app/src/main/java/com/ayuget/redface/ui/fragment/TopicListFragment.java @@ -69,6 +69,7 @@ @FragmentWithArgs public class TopicListFragment extends ToggleToolbarFragment implements TopicsAdapter.OnTopicClickedListener { private static final String ARG_LAST_LOADED_PAGE = "last_loaded_page"; + private static final String ARG_TOPIC_FILTER = "topic_filter"; /** * Interface definition for a callback to be invoked when a topic in this fragment has @@ -133,6 +134,13 @@ public TopicListFragment() { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + // Restore the list of topics when the fragment is recreated by the framework + if (savedInstanceState != null) { + lastLoadedPage = savedInstanceState.getInt(ARG_LAST_LOADED_PAGE, 0); + topicFilter = (TopicFilter) savedInstanceState.get(ARG_TOPIC_FILTER); + savedInstanceState.clear(); + } + if (topicFilter == null) { topicFilter = TopicFilter.NONE; } @@ -192,11 +200,6 @@ private void refreshTopicList() { public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); - // Restore the list of topics when the fragment is recreated by the framework - if (savedInstanceState != null) { - lastLoadedPage = savedInstanceState.getInt(ARG_LAST_LOADED_PAGE, 0); - savedInstanceState.clear(); - } } @Override @@ -209,7 +212,7 @@ public void onResume() { refreshTopicList(); }); - if (displayedTopics == null || displayedTopics.size() == 0 || settings.refreshTopicList()) { + if (displayedTopics == null || displayedTopics.isEmpty() || settings.refreshTopicList()) { displayedTopics = new ArrayList<>(); loadTopics(); } else { @@ -299,6 +302,7 @@ public void onCreateOptionsMenu(Toolbar toolbar) { public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putInt(ARG_LAST_LOADED_PAGE, lastLoadedPage); + outState.putSerializable(ARG_TOPIC_FILTER, topicFilter); } @Override @@ -379,7 +383,7 @@ public void onNext(List loadedTopics) { public void onError(Throwable throwable) { Timber.e(throwable, "Error loading first page for category '%s', subcategory '%s'", category.name(), subcategory); - if (displayedTopics.size() == 0) { + if (displayedTopics.isEmpty()) { dataPresenter.showErrorView(); } else { SnackbarHelper.make(TopicListFragment.this, R.string.error_loading_topics).show(); From 4fe30f02ddbcb9b4ecb3c6303c2b52dd39af1060 Mon Sep 17 00:00:00 2001 From: nbonnec Date: Sun, 13 Jul 2025 18:48:15 +0200 Subject: [PATCH 2/4] Remove deprecated function. --- .../com/ayuget/redface/ui/fragment/TopicListFragment.java | 6 ------ 1 file changed, 6 deletions(-) diff --git a/app/src/main/java/com/ayuget/redface/ui/fragment/TopicListFragment.java b/app/src/main/java/com/ayuget/redface/ui/fragment/TopicListFragment.java index fe07a281..3a960074 100644 --- a/app/src/main/java/com/ayuget/redface/ui/fragment/TopicListFragment.java +++ b/app/src/main/java/com/ayuget/redface/ui/fragment/TopicListFragment.java @@ -196,12 +196,6 @@ private void refreshTopicList() { loadTopics(); } - @Override - public void onActivityCreated(@Nullable Bundle savedInstanceState) { - super.onActivityCreated(savedInstanceState); - - } - @Override public void onResume() { super.onResume(); From e636c3c76c7ff1111b22992f62ef450c20ad3494 Mon Sep 17 00:00:00 2001 From: nbonnec Date: Mon, 14 Jul 2025 10:53:42 +0200 Subject: [PATCH 3/4] Fix english. Update the changelog. # Conflicts: # CHANGELOG.md --- CHANGELOG.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index db181717..63d98f9e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,14 +9,15 @@ * Ask permission when entering the general preferences. * fix #230: page not loading because of '$' signs. * fix #232: user profiles in private messages. +* fix: on the topic list, keep the filter (Favorites, Read...) when rotating the screen ## v1.0.1 ### Fixed -* #2 : reply window opened multiple times -* #8 : event received too late in activity lifecycle -* #9 : nullpointer exception in user manager +* #2: reply window opened multiple times +* #8: event received too late in activity lifecycle +* #9: nullpointer exception in user manager ## v1.0.0 From 44ba61b51d13dd83046fc525423b7ae90dc4c5b5 Mon Sep 17 00:00:00 2001 From: nbonnec Date: Sat, 30 Aug 2025 12:21:24 +0200 Subject: [PATCH 4/4] Add the ticket. --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 63d98f9e..50dca8de 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,7 @@ * Ask permission when entering the general preferences. * fix #230: page not loading because of '$' signs. * fix #232: user profiles in private messages. -* fix: on the topic list, keep the filter (Favorites, Read...) when rotating the screen +* fix #233: on the topic list, keep the filter (Favorites, Read...) when rotating the screen ## v1.0.1