summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2023-10-04 21:52:20 +0300
committerAndrew Dolgov <[email protected]>2023-10-04 21:52:20 +0300
commit442145f450e8a87176f090bb8dc1ad3a5b5d1939 (patch)
tree26c8cd79e5e7a991b1cb147fd8af405288d6d26c
parent9faf01bba2d237a45a60774daf552b8b501e21cc (diff)
allow selecting which feed to open on startup
-rwxr-xr-xorg.fox.ttrss/src/main/AndroidManifest.xml4
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/CommonActivity.java2
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/FeedsFragment.java2
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/MasterActivity.java23
-rw-r--r--org.fox.ttrss/src/main/java/org/fox/ttrss/types/Feed.java23
-rw-r--r--org.fox.ttrss/src/main/res/values/arrays.xml12
-rwxr-xr-xorg.fox.ttrss/src/main/res/values/strings.xml2
-rwxr-xr-xorg.fox.ttrss/src/main/res/xml/preferences.xml10
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 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.fox.ttrss"
- android:versionCode="537"
- android:versionName="1.303">
+ android:versionCode="538"
+ android:versionName="1.304">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
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<Feed>, Parcelable {
public String feed_url;
public String title;
@@ -21,6 +24,26 @@ public class Feed implements Comparable<Feed>, 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 @@
<item>45</item>
</string-array>
<string name="theme_follow_device">Same as device</string>
+ <string-array name="open_on_startup_names">
+ <item>@string/fresh_articles</item>
+ <item>@string/feed_all_articles</item>
+ <item>@string/feed_starred_articles</item>
+ <item>@string/dont_open_anything</item>
+ </string-array>
+ <string-array name="open_on_startup_values" translatable="false">
+ <item>-3</item>
+ <item>-4</item>
+ <item>-1</item>
+ <item>0</item>
+ </string-array>
</resources> \ 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 @@
<string name="score_invalid">Invalid score</string>
<string name="check_for_updates_summary">Check for new app releases on startup</string>
<string name="check_for_updates">Check for updates</string>
+ <string name="dont_open_anything">Nothing</string>
+ <string name="open_on_startup">Open on startup</string>
</resources>
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" />
- <org.fox.ttrss.util.LessBrokenSwitchPreference
- android:defaultValue="true"
- android:key="open_fresh_on_startup"
- android:title="@string/prefs_open_fresh_on_startup" />
+ <ListPreference
+ android:defaultValue="0"
+ android:entries="@array/open_on_startup_names"
+ android:entryValues="@array/open_on_startup_values"
+ android:key="open_on_startup"
+ android:title="@string/open_on_startup" />
<org.fox.ttrss.util.LessBrokenSwitchPreference
android:defaultValue="false"