From e2d12ad0a07eef36d7b592208f08a11015d5dd88 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Sun, 18 May 2025 15:51:22 +0300 Subject: switch between display modes without restart, add missing string resource --- .../main/java/org/fox/ttrss/CommonActivity.java | 2 +- .../main/java/org/fox/ttrss/HeadlinesFragment.java | 2 +- .../main/java/org/fox/ttrss/OnlineActivity.java | 22 +++++++++++----------- org.fox.ttrss/src/main/res/values/strings.xml | 1 + 4 files changed, 14 insertions(+), 13 deletions(-) diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/CommonActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/CommonActivity.java index 749d1131..29bb1390 100755 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/CommonActivity.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/CommonActivity.java @@ -312,7 +312,7 @@ public class CommonActivity extends AppCompatActivity implements SharedPreferenc setAppTheme(sharedPreferences); } - String[] filter = new String[] { "enable_cats", "headline_mode", "widget_update_interval", + String[] filter = new String[] { "enable_cats", "widget_update_interval", "headlines_swipe_to_dismiss", "headlines_mark_read_scroll", "headlines_request_size", "force_phone_layout", "open_on_startup"}; diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java index 608950d7..197a48bd 100755 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java @@ -136,7 +136,7 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment { public void initialize(Feed feed) { // clear loaded headlines before switching feed - if (feed != m_feed) + if (m_feed == null || feed.id != m_feed.id || feed.is_cat != m_feed.is_cat) Application.getArticlesModel().update(new ArticleList()); m_feed = feed; diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/OnlineActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/OnlineActivity.java index 467b0bfd..b0979d5b 100755 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/OnlineActivity.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/OnlineActivity.java @@ -27,6 +27,7 @@ import androidx.appcompat.app.AlertDialog; import androidx.appcompat.view.ActionMode; import androidx.appcompat.widget.Toolbar; import androidx.core.content.ContextCompat; +import androidx.fragment.app.FragmentTransaction; import androidx.preference.PreferenceManager; import com.google.android.material.dialog.MaterialAlertDialogBuilder; @@ -439,7 +440,7 @@ public class OnlineActivity extends CommonActivity { int selectedIndex = Arrays.asList(headlineModeValues).indexOf(headlineMode); MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this) - .setTitle(R.string.headlines_set_view_mode) + .setTitle(R.string.headlines_set_display_mode) .setSingleChoiceItems(headlineModeNames, selectedIndex, (dialog2, which) -> { dialog2.cancel(); @@ -448,20 +449,19 @@ public class OnlineActivity extends CommonActivity { editor.putString("headline_mode", headlineModeValues[which]); editor.apply(); - Intent intent = getIntent(); + FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); - Feed feed = hf.getFeed(); + HeadlinesFragment hfnew = new HeadlinesFragment(); - if (feed != null) { - intent.putExtra("feed_id", feed.id); - intent.putExtra("feed_is_cat", feed.is_cat); - intent.putExtra("feed_title", feed.title); - } + hfnew.initialize(hf.getFeed()); + hfnew.setSearchQuery(hf.getSearchQuery()); + + ft.replace(R.id.headlines_fragment, hfnew, FRAG_HEADLINES); - finish(); + ft.commit(); + + invalidateOptionsMenu(); - startActivity(intent); - overridePendingTransition(0, 0); }); Dialog dialog = builder.create(); diff --git a/org.fox.ttrss/src/main/res/values/strings.xml b/org.fox.ttrss/src/main/res/values/strings.xml index df82688b..3b49d1ae 100755 --- a/org.fox.ttrss/src/main/res/values/strings.xml +++ b/org.fox.ttrss/src/main/res/values/strings.xml @@ -305,4 +305,5 @@ Open on startup Operation completed successfully Error: 400 bad request + Set display mode -- cgit v1.2.3-54-g00ecf