From 442145f450e8a87176f090bb8dc1ad3a5b5d1939 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Wed, 4 Oct 2023 21:52:20 +0300 Subject: allow selecting which feed to open on startup --- org.fox.ttrss/src/main/AndroidManifest.xml | 4 ++-- .../main/java/org/fox/ttrss/CommonActivity.java | 2 +- .../src/main/java/org/fox/ttrss/FeedsFragment.java | 2 +- .../main/java/org/fox/ttrss/MasterActivity.java | 23 +++++++++++----------- .../src/main/java/org/fox/ttrss/types/Feed.java | 23 ++++++++++++++++++++++ org.fox.ttrss/src/main/res/values/arrays.xml | 12 +++++++++++ org.fox.ttrss/src/main/res/values/strings.xml | 2 ++ org.fox.ttrss/src/main/res/xml/preferences.xml | 10 ++++++---- 8 files changed, 58 insertions(+), 20 deletions(-) diff --git a/org.fox.ttrss/src/main/AndroidManifest.xml b/org.fox.ttrss/src/main/AndroidManifest.xml index 7bf2e720..52cde96c 100755 --- a/org.fox.ttrss/src/main/AndroidManifest.xml +++ b/org.fox.ttrss/src/main/AndroidManifest.xml @@ -1,8 +1,8 @@ + android:versionCode="538" + android:versionName="1.304"> 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 e8638e0b..469068dc 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 @@ -354,7 +354,7 @@ public class CommonActivity extends AppCompatActivity implements SharedPreferenc String[] filter = new String[] { "enable_cats", "headline_mode", "widget_update_interval", "headlines_swipe_to_dismiss", "headlines_mark_read_scroll", "headlines_request_size", - "force_phone_layout" }; + "force_phone_layout", "open_on_startup"}; m_needRestart = Arrays.asList(filter).indexOf(key) != -1; } diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedsFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedsFragment.java index d6f373aa..d4f431c0 100755 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedsFragment.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedsFragment.java @@ -114,7 +114,7 @@ public class FeedsFragment extends BaseFeedlistFragment implements OnItemClickLi catUnread += f.unread; } - // localize special feed names + // TODO: use Feed.getSpecialFeedTitleById // TODO: join with shortcut title lookup by id? if (m_activeCategory != null && m_activeCategory.id == -1) { switch (f.id) { diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/MasterActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/MasterActivity.java index e9404268..bfba02a1 100755 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/MasterActivity.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/MasterActivity.java @@ -16,6 +16,12 @@ import android.view.Gravity; import android.view.MenuItem; import android.view.View; +import androidx.appcompat.app.ActionBarDrawerToggle; +import androidx.appcompat.widget.Toolbar; +import androidx.drawerlayout.widget.DrawerLayout; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentTransaction; + import com.google.android.material.floatingactionbutton.FloatingActionButton; import com.google.gson.JsonElement; @@ -28,11 +34,6 @@ import java.util.Date; import java.util.HashMap; import java.util.LinkedHashMap; -import androidx.appcompat.app.ActionBarDrawerToggle; -import androidx.appcompat.widget.Toolbar; -import androidx.drawerlayout.widget.DrawerLayout; -import androidx.fragment.app.Fragment; -import androidx.fragment.app.FragmentTransaction; import icepick.State; public class MasterActivity extends OnlineActivity implements HeadlinesEventListener { @@ -178,15 +179,13 @@ public class MasterActivity extends OnlineActivity implements HeadlinesEventList ft.replace(R.id.feeds_fragment, new FeedsFragment(), FRAG_FEEDS); } - if (!shortcutMode && m_prefs.getBoolean("open_fresh_on_startup", true)) { - HeadlinesFragment hf = new HeadlinesFragment(); + int openFeedId = Integer.parseInt(m_prefs.getString("open_on_startup", "0")); - if (BuildConfig.DEBUG) { - hf.initialize(new Feed(-1, getString(R.string.feed_starred_articles), false)); - } else { - hf.initialize(new Feed(-3, getString(R.string.fresh_articles), false)); - } + if (!shortcutMode && openFeedId != 0) { + Log.d(TAG, "opening feed id: " + openFeedId); + HeadlinesFragment hf = new HeadlinesFragment(); + hf.initialize(new Feed(openFeedId, Feed.getSpecialFeedTitleById(this, openFeedId), false)); ft.replace(R.id.headlines_fragment, hf, FRAG_HEADLINES); } else if (m_drawerLayout != null) { m_drawerLayout.openDrawer(Gravity.START); diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/types/Feed.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/types/Feed.java index 57a237ec..9cbe9f83 100644 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/types/Feed.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/types/Feed.java @@ -1,8 +1,11 @@ package org.fox.ttrss.types; +import android.content.Context; import android.os.Parcel; import android.os.Parcelable; +import org.fox.ttrss.R; + public class Feed implements Comparable, Parcelable { public String feed_url; public String title; @@ -21,6 +24,26 @@ public class Feed implements Comparable, Parcelable { this.title = title; this.is_cat = is_cat; } + + // TODO: maybe add special categories? (, bool isCat) + public static String getSpecialFeedTitleById(Context context, int feedId) { + switch (feedId) { + case -1: + return context.getString(R.string.feed_starred_articles); + case -2: + return context.getString(R.string.feed_published_articles); + case -3: + return context.getString(R.string.fresh_articles); + case -4: + return context.getString(R.string.feed_all_articles); + case -6: + return context.getString(R.string.feed_recently_read); + case 0: + return context.getString(R.string.feed_archived_articles); + default: + return null; + } + } public Feed(Parcel in) { readFromParcel(in); diff --git a/org.fox.ttrss/src/main/res/values/arrays.xml b/org.fox.ttrss/src/main/res/values/arrays.xml index d2df646a..8791ec17 100644 --- a/org.fox.ttrss/src/main/res/values/arrays.xml +++ b/org.fox.ttrss/src/main/res/values/arrays.xml @@ -53,4 +53,16 @@ 45 Same as device + + @string/fresh_articles + @string/feed_all_articles + @string/feed_starred_articles + @string/dont_open_anything + + + -3 + -4 + -1 + 0 + \ No newline at end of file diff --git a/org.fox.ttrss/src/main/res/values/strings.xml b/org.fox.ttrss/src/main/res/values/strings.xml index 96798ee8..7913a14d 100755 --- a/org.fox.ttrss/src/main/res/values/strings.xml +++ b/org.fox.ttrss/src/main/res/values/strings.xml @@ -299,4 +299,6 @@ Invalid score Check for new app releases on startup Check for updates + Nothing + Open on startup diff --git a/org.fox.ttrss/src/main/res/xml/preferences.xml b/org.fox.ttrss/src/main/res/xml/preferences.xml index 1d658af4..41d6c9ef 100755 --- a/org.fox.ttrss/src/main/res/xml/preferences.xml +++ b/org.fox.ttrss/src/main/res/xml/preferences.xml @@ -63,10 +63,12 @@ android:summary="@string/browse_cats_like_feeds_summary" android:title="@string/browse_cats_like_feeds" /> - +