From 526681bbf9e1a1b1e33f388b8073a75e33285679 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Sat, 17 May 2025 11:51:52 +0300 Subject: add a loading progress indicator for feeds in case of extremely slow connections --- org.fox.ttrss/src/main/res/layout/fragment_feeds.xml | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'org.fox.ttrss/src/main/res') diff --git a/org.fox.ttrss/src/main/res/layout/fragment_feeds.xml b/org.fox.ttrss/src/main/res/layout/fragment_feeds.xml index 9f57dda2..277d5d3f 100755 --- a/org.fox.ttrss/src/main/res/layout/fragment_feeds.xml +++ b/org.fox.ttrss/src/main/res/layout/fragment_feeds.xml @@ -60,6 +60,16 @@ android:textAppearance="?attr/textAppearanceTitleSmall" android:textColor="?attr/colorOnSurfaceVariant"/> + + -- cgit v1.2.3-54-g00ecf From e2a3bc8e3923b34be7673d32cd703160574fc121 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Sat, 17 May 2025 12:07:38 +0300 Subject: remove nested groups in main menu because that's not actually supported (even though it works) --- .../main/java/org/fox/ttrss/OnlineActivity.java | 8 +- org.fox.ttrss/src/main/res/menu/activity_main.xml | 134 ++++++++++----------- 2 files changed, 71 insertions(+), 71 deletions(-) (limited to 'org.fox.ttrss/src/main/res') 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 cbbf1188..467b0bfd 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 @@ -1165,10 +1165,14 @@ article.score = Integer.parseInt(edit.getText().toString()); protected void initMenu() { if (m_menu != null) { if (getSessionId() != null) { - m_menu.setGroupVisible(R.id.menu_group_logged_in, true); + m_menu.setGroupVisible(R.id.menu_group_feeds, true); + m_menu.setGroupVisible(R.id.menu_group_headlines, true); + m_menu.setGroupVisible(R.id.menu_group_article, true); m_menu.setGroupVisible(R.id.menu_group_logged_out, false); } else { - m_menu.setGroupVisible(R.id.menu_group_logged_in, false); + m_menu.setGroupVisible(R.id.menu_group_feeds, false); + m_menu.setGroupVisible(R.id.menu_group_headlines, false); + m_menu.setGroupVisible(R.id.menu_group_article, false); m_menu.setGroupVisible(R.id.menu_group_logged_out, true); } diff --git a/org.fox.ttrss/src/main/res/menu/activity_main.xml b/org.fox.ttrss/src/main/res/menu/activity_main.xml index 6f3198a2..eeb97a22 100755 --- a/org.fox.ttrss/src/main/res/menu/activity_main.xml +++ b/org.fox.ttrss/src/main/res/menu/activity_main.xml @@ -1,78 +1,74 @@ + + + + + + + - - - - - - - - - - - - - + - + - - - - - - - + + + + + + + + Date: Sat, 17 May 2025 12:12:49 +0300 Subject: add prefixes to feed context menu --- .../src/main/java/org/fox/ttrss/FeedsFragment.java | 23 +++++++--------------- org.fox.ttrss/src/main/res/menu/context_feed.xml | 14 +++++-------- 2 files changed, 12 insertions(+), 25 deletions(-) (limited to 'org.fox.ttrss/src/main/res') 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 03c2a076..51a852fc 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 @@ -22,8 +22,6 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.fragment.app.Fragment; import androidx.lifecycle.ViewModelProvider; -import androidx.loader.app.LoaderManager; -import androidx.loader.content.Loader; import androidx.preference.PreferenceManager; import androidx.recyclerview.widget.DefaultItemAnimator; import androidx.recyclerview.widget.DiffUtil; @@ -35,20 +33,14 @@ import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.materialswitch.MaterialSwitch; import com.google.android.material.progressindicator.LinearProgressIndicator; -import com.google.gson.Gson; -import com.google.gson.JsonArray; -import com.google.gson.JsonElement; -import com.google.gson.reflect.TypeToken; import org.fox.ttrss.types.Feed; -import java.lang.reflect.Type; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; -import java.util.HashMap; import java.util.List; import java.util.stream.Collectors; import java.util.stream.IntStream; @@ -150,7 +142,6 @@ public class FeedsFragment extends Fragment implements OnSharedPreferenceChangeL .getMenuInfo(); // all onContextItemSelected are invoked in sequence so we might get a context menu for headlines, etc - // TODO context menu ids defined here should be unique to feedsfragment try { if (info != null) { final Feed feed = m_adapter.getCurrentList().get(info.position); @@ -158,7 +149,7 @@ public class FeedsFragment extends Fragment implements OnSharedPreferenceChangeL Log.d(TAG, "context for feed=" + feed.id); int itemId = item.getItemId(); - if (itemId == R.id.browse_headlines) { + if (itemId == R.id.feed_browse_headlines) { Feed tmpFeed = new Feed(feed); if (!neverOpenHeadlines(feed)) @@ -166,10 +157,10 @@ public class FeedsFragment extends Fragment implements OnSharedPreferenceChangeL m_activity.onFeedSelected(tmpFeed); return true; - } else if (itemId == R.id.browse_feeds) { + } else if (itemId == R.id.feed_browse_feeds) { m_activity.onFeedSelected(feed); return true; - } else if (itemId == R.id.unsubscribe_feed) { + } else if (itemId == R.id.feed_unsubscribe) { MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(getContext()) .setMessage(getString(R.string.unsubscribe_from_prompt, feed.title)) .setPositiveButton(R.string.unsubscribe, @@ -183,7 +174,7 @@ public class FeedsFragment extends Fragment implements OnSharedPreferenceChangeL dlg.show(); return true; - } else if (itemId == R.id.catchup_feed) { + } else if (itemId == R.id.feed_catchup) { m_activity.catchupDialog(feed); return true; } @@ -210,13 +201,13 @@ public class FeedsFragment extends Fragment implements OnSharedPreferenceChangeL menu.setHeaderTitle(feed.title); if (!feed.is_cat) - menu.findItem(R.id.browse_feeds).setVisible(false); + menu.findItem(R.id.feed_browse_feeds).setVisible(false); if (neverOpenHeadlines(feed)) - menu.findItem(R.id.browse_headlines).setVisible(false); + menu.findItem(R.id.feed_browse_headlines).setVisible(false); if (feed.id <= 0 || feed.is_cat) - menu.findItem(R.id.unsubscribe_feed).setVisible(false); + menu.findItem(R.id.feed_unsubscribe).setVisible(false); super.onCreateContextMenu(menu, v, menuInfo); diff --git a/org.fox.ttrss/src/main/res/menu/context_feed.xml b/org.fox.ttrss/src/main/res/menu/context_feed.xml index 0b0cdc3e..53b610f7 100644 --- a/org.fox.ttrss/src/main/res/menu/context_feed.xml +++ b/org.fox.ttrss/src/main/res/menu/context_feed.xml @@ -1,23 +1,19 @@ - - - + \ No newline at end of file -- cgit v1.2.3-54-g00ecf From 046aaae1ed5e1cf1c0b14d908bfbfb468c41af27 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Sat, 17 May 2025 12:13:04 +0300 Subject: fix missing left/right margin on feedlist --- org.fox.ttrss/src/main/res/layout/feeds_row.xml | 4 ++-- org.fox.ttrss/src/main/res/layout/feeds_row_divider.xml | 4 ++-- org.fox.ttrss/src/main/res/layout/feeds_row_goback.xml | 4 ++-- org.fox.ttrss/src/main/res/layout/feeds_row_selected.xml | 4 ++-- org.fox.ttrss/src/main/res/layout/feeds_row_toggle.xml | 4 ++-- org.fox.ttrss/src/main/res/layout/fragment_feeds.xml | 3 ++- org.fox.ttrss/src/main/res/menu/context_category.xml | 15 --------------- 7 files changed, 12 insertions(+), 26 deletions(-) delete mode 100644 org.fox.ttrss/src/main/res/menu/context_category.xml (limited to 'org.fox.ttrss/src/main/res') diff --git a/org.fox.ttrss/src/main/res/layout/feeds_row.xml b/org.fox.ttrss/src/main/res/layout/feeds_row.xml index 0f9c4e54..ed0f2354 100755 --- a/org.fox.ttrss/src/main/res/layout/feeds_row.xml +++ b/org.fox.ttrss/src/main/res/layout/feeds_row.xml @@ -7,8 +7,8 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:descendantFocusability="blocksDescendants" - android:paddingLeft="16dp" - android:paddingRight="16dp" + android:paddingLeft="8dp" + android:paddingRight="8dp" android:paddingTop="8dp" android:paddingBottom="8dp" android:baselineAligned="true" diff --git a/org.fox.ttrss/src/main/res/layout/feeds_row_divider.xml b/org.fox.ttrss/src/main/res/layout/feeds_row_divider.xml index 55aa5fdc..4362dcd2 100644 --- a/org.fox.ttrss/src/main/res/layout/feeds_row_divider.xml +++ b/org.fox.ttrss/src/main/res/layout/feeds_row_divider.xml @@ -7,8 +7,8 @@ diff --git a/org.fox.ttrss/src/main/res/layout/feeds_row_goback.xml b/org.fox.ttrss/src/main/res/layout/feeds_row_goback.xml index 75ba8fe1..84f387ff 100755 --- a/org.fox.ttrss/src/main/res/layout/feeds_row_goback.xml +++ b/org.fox.ttrss/src/main/res/layout/feeds_row_goback.xml @@ -5,8 +5,8 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:descendantFocusability="blocksDescendants" - android:paddingLeft="16dp" - android:paddingRight="16dp" + android:paddingLeft="8dp" + android:paddingRight="8dp" android:paddingTop="8dp" android:paddingBottom="8dp" android:baselineAligned="true" diff --git a/org.fox.ttrss/src/main/res/layout/feeds_row_selected.xml b/org.fox.ttrss/src/main/res/layout/feeds_row_selected.xml index 031c2116..ab280e7f 100755 --- a/org.fox.ttrss/src/main/res/layout/feeds_row_selected.xml +++ b/org.fox.ttrss/src/main/res/layout/feeds_row_selected.xml @@ -13,8 +13,8 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:descendantFocusability="blocksDescendants" - android:paddingLeft="16dp" - android:paddingRight="16dp" + android:paddingLeft="8dp" + android:paddingRight="8dp" android:paddingTop="8dp" android:paddingBottom="8dp" android:baselineAligned="true" diff --git a/org.fox.ttrss/src/main/res/layout/feeds_row_toggle.xml b/org.fox.ttrss/src/main/res/layout/feeds_row_toggle.xml index ad76bca5..dda0f02c 100755 --- a/org.fox.ttrss/src/main/res/layout/feeds_row_toggle.xml +++ b/org.fox.ttrss/src/main/res/layout/feeds_row_toggle.xml @@ -6,8 +6,8 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:descendantFocusability="blocksDescendants" - android:paddingLeft="16dp" - android:paddingRight="16dp" + android:paddingLeft="8dp" + android:paddingRight="8dp" android:baselineAligned="true" android:gravity="center_vertical" android:orientation="horizontal"> diff --git a/org.fox.ttrss/src/main/res/layout/fragment_feeds.xml b/org.fox.ttrss/src/main/res/layout/fragment_feeds.xml index 277d5d3f..3fe12847 100755 --- a/org.fox.ttrss/src/main/res/layout/fragment_feeds.xml +++ b/org.fox.ttrss/src/main/res/layout/fragment_feeds.xml @@ -77,13 +77,14 @@ diff --git a/org.fox.ttrss/src/main/res/menu/context_category.xml b/org.fox.ttrss/src/main/res/menu/context_category.xml deleted file mode 100644 index 8f975c0a..00000000 --- a/org.fox.ttrss/src/main/res/menu/context_category.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - \ No newline at end of file -- cgit v1.2.3-54-g00ecf From 625979e2cd83aa29f88ea308c2277fe00f9b6bcd Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Sat, 17 May 2025 13:07:47 +0300 Subject: bring back option to disable cats --- .../src/main/java/org/fox/ttrss/FeedsFragment.java | 6 ++++++ .../src/main/java/org/fox/ttrss/MasterActivity.java | 13 ++++++++++--- org.fox.ttrss/src/main/res/xml/preferences.xml | 6 ++++++ 3 files changed, 22 insertions(+), 3 deletions(-) (limited to 'org.fox.ttrss/src/main/res') 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 f6df912c..e6daed4b 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 @@ -355,6 +355,12 @@ public class FeedsFragment extends Fragment implements OnSharedPreferenceChangeL feedsWork.add(1, feed); } + } else if (m_rootFeed.id == Feed.ALL_ARTICLES) { + // if all articles feed is requested as a root element (no parent button) let's filter + // labels out so this is at least somewhat readable, instead we'll insert a link to this category to the top + loadedFeeds = loadedFeeds.stream().filter(a -> a.id >= -10).collect(Collectors.toList()); + + loadedFeeds.add(0, new Feed(Feed.CAT_LABELS, getString(R.string.cat_labels), true)); } feedsWork.addAll(loadedFeeds); 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 b35a7b34..f2ef3aa0 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 @@ -159,10 +159,17 @@ public class MasterActivity extends OnlineActivity implements HeadlinesEventList } FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); - RootCategoriesFragment fc = new RootCategoriesFragment(); + FeedsFragment fc; + + if (m_prefs.getBoolean("enable_cats", true)) { + fc = new RootCategoriesFragment(); + // it doesn't matter which feed is used here + fc.initialize(new Feed(Feed.CAT_SPECIAL, getString(R.string.cat_special), true), false); + } else { + fc = new FeedsFragment(); + fc.initialize(new Feed(Feed.ALL_ARTICLES, getString(R.string.feed_all_articles), true), false); + } - // it doesn't matter which feed is used here - fc.initialize(new Feed(-1, getString(R.string.cat_special), true), false); ft.replace(R.id.feeds_fragment, fc, FRAG_FEEDS); /* FeedsFragment ff = new FeedsFragment(); diff --git a/org.fox.ttrss/src/main/res/xml/preferences.xml b/org.fox.ttrss/src/main/res/xml/preferences.xml index 27bf2a8a..8d064587 100755 --- a/org.fox.ttrss/src/main/res/xml/preferences.xml +++ b/org.fox.ttrss/src/main/res/xml/preferences.xml @@ -43,8 +43,14 @@ android:key="sort_feeds_by_unread" android:title="@string/sort_feeds_by_unread" /> + + -- cgit v1.2.3-54-g00ecf