From e6fd2328815465869f11cec6e62a19ccaf9bcd36 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Tue, 13 May 2025 10:46:27 +0300 Subject: fix mark button padding --- org.fox.ttrss/src/main/res/layout/headlines_row_compact_active.xml | 1 + 1 file changed, 1 insertion(+) (limited to 'org.fox.ttrss/src/main/res/layout') diff --git a/org.fox.ttrss/src/main/res/layout/headlines_row_compact_active.xml b/org.fox.ttrss/src/main/res/layout/headlines_row_compact_active.xml index 5721dcb8..f6483350 100755 --- a/org.fox.ttrss/src/main/res/layout/headlines_row_compact_active.xml +++ b/org.fox.ttrss/src/main/res/layout/headlines_row_compact_active.xml @@ -101,6 +101,7 @@ style="?attr/materialIconButtonStyle" android:layout_width="wrap_content" android:paddingEnd="0dp" + android:layout_gravity="end" android:layout_height="24dp" android:layout_weight="0.5" app:icon="?ic_star_outline" /> -- cgit v1.2.3-54-g00ecf From d260fc8072a8f89e6b31262483a20638fa7936c1 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Wed, 14 May 2025 09:14:30 +0300 Subject: switch to recycler listview/submitlist --- .../main/java/org/fox/ttrss/HeadlinesFragment.java | 94 ++++++---------------- .../main/java/org/fox/ttrss/HeadlinesLoader.java | 2 +- .../main/java/org/fox/ttrss/MasterActivity.java | 6 -- .../fox/ttrss/util/HeadlinesDiffItemCallback.java | 23 ++++++ .../fox/ttrss/util/HeadlinesDiffUtilCallback.java | 2 - .../src/main/res/layout/fragment_headlines.xml | 1 - 6 files changed, 48 insertions(+), 80 deletions(-) create mode 100644 org.fox.ttrss/src/main/java/org/fox/ttrss/util/HeadlinesDiffItemCallback.java (limited to 'org.fox.ttrss/src/main/res/layout') 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 9674cf2a..d0f4fa94 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 @@ -52,10 +52,9 @@ import androidx.loader.app.LoaderManager; import androidx.loader.content.Loader; import androidx.preference.PreferenceManager; import androidx.recyclerview.widget.DefaultItemAnimator; -import androidx.recyclerview.widget.DiffUtil; import androidx.recyclerview.widget.ItemTouchHelper; import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.ListUpdateCallback; +import androidx.recyclerview.widget.ListAdapter; import androidx.recyclerview.widget.RecyclerView; import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; @@ -76,7 +75,7 @@ import org.fox.ttrss.types.Article; import org.fox.ttrss.types.ArticleList; import org.fox.ttrss.types.Attachment; import org.fox.ttrss.types.Feed; -import org.fox.ttrss.util.HeadlinesDiffUtilCallback; +import org.fox.ttrss.util.HeadlinesDiffItemCallback; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; @@ -89,7 +88,6 @@ import jp.wasabeef.glide.transformations.CropCircleTransformation; public class HeadlinesFragment extends androidx.fragment.app.Fragment implements LoaderManager.LoaderCallbacks { - private ArticleList m_articles = new ArticleList(); private boolean m_isLazyLoading; @NonNull @@ -106,52 +104,30 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment implements // successful update if (data != null) { + // shared article list contains raw returned data without footers ArticleList sharedArticles = Application.getArticles(); sharedArticles.clear(); sharedArticles.addAll(data); ArticleList tmp = new ArticleList(); - tmp.addAll(data); - - tmp.add(new Article(Article.TYPE_AMR_FOOTER)); - - DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(new HeadlinesDiffUtilCallback(m_articles, tmp)); - - /* diffResult.dispatchUpdatesTo(new ListUpdateCallback() { - @Override - public void onInserted(int position, int count) { - Log.d(TAG, "[DIFF] onInserted! pos=" + position + " count=" + count); - } - @Override - public void onRemoved(int position, int count) { - Log.d(TAG, "[DIFF] onRemoved! pos=" + position + " count=" + count); - } - - @Override - public void onMoved(int fromPosition, int toPosition) { - Log.d(TAG, "[DIFF] onMoved! from=" + fromPosition + " to=" + toPosition); - } + tmp.addAll(data); - @Override - public void onChanged(int position, int count, @Nullable Object payload) { - Log.d(TAG, "[DIFF] onChanged! pos=" + position + " count=" + count + " payload=" + payload); - } - }); */ + if (m_prefs.getBoolean("headlines_mark_read_scroll", false)) + tmp.add(new Article(Article.TYPE_AMR_FOOTER)); - m_articles.clear(); - m_articles.addAll(tmp); + final boolean appended = headlinesLoader.getAppend(); - diffResult.dispatchUpdatesTo(m_adapter); + m_adapter.submitList(tmp, () -> { + if (!appended) + m_list.scrollToPosition(0); + }); if (headlinesLoader.getFirstIdChanged()) Snackbar.make(getView(), R.string.headlines_row_top_changed, Snackbar.LENGTH_LONG) .setAction(R.string.reload, v -> refresh(false)).show(); - if (!headlinesLoader.getAppend()) - m_list.scrollToPosition(0); - m_listener.onHeadlinesLoaded(headlinesLoader.getAppend()); } else { @@ -393,7 +369,7 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment implements m_list.setLayoutManager(m_layoutManager); m_list.setItemAnimator(new DefaultItemAnimator()); - m_adapter = new ArticleListAdapter(m_articles); + m_adapter = new ArticleListAdapter(); m_list.setAdapter(m_adapter); if (savedInstanceState == null && Application.getArticles().isEmpty()) { @@ -577,16 +553,9 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment implements if (!append) { m_activeArticleId = -1; - int size = m_articles.size(); - - m_articles.clear(); - if (m_adapter != null) { - m_adapter.notifyItemRangeRemoved(0, size); - - m_articles.add(new Article(Article.TYPE_AMR_FOOTER)); - - m_adapter.notifyItemRangeInserted(0, m_articles.size()); + ArticleList tmp = new ArticleList(); + m_adapter.submitList(tmp); } } @@ -705,14 +674,12 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment implements } } - private class ArticleListAdapter extends RecyclerView.Adapter { - private final ArticleList items; - + private class ArticleListAdapter extends ListAdapter { public static final int VIEW_NORMAL = 0; public static final int VIEW_UNREAD = 1; public static final int VIEW_ACTIVE = 2; public static final int VIEW_ACTIVE_UNREAD = 3; - public static final int VIEW_AMR_FOOTER = 5; + public static final int VIEW_AMR_FOOTER = 4; public static final int VIEW_COUNT = VIEW_AMR_FOOTER + 1; @@ -744,9 +711,8 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment implements return false; } - public ArticleListAdapter(ArticleList items) { - super(); - this.items = items; + public ArticleListAdapter() { + super(new HeadlinesDiffItemCallback()); Display display = m_activity.getWindowManager().getDefaultDisplay(); Point size = new Point(); @@ -788,7 +754,7 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment implements @Override public void onBindViewHolder(final ArticleViewHolder holder, int position) { - holder.article = items.get(position); + holder.article = getItem(position); int headlineFontSize = m_prefs.getInt("headlines_font_size_sp_int", 13); int headlineSmallFontSize = Math.max(10, Math.min(18, headlineFontSize - 2)); @@ -1318,7 +1284,7 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment implements @Override public int getItemViewType(int position) { - Article a = items.get(position); + Article a = getItem(position); if (a.id == Article.TYPE_AMR_FOOTER) { return VIEW_AMR_FOOTER; @@ -1333,11 +1299,6 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment implements } } - @Override - public int getItemCount() { - return items.size(); - } - private void updateTextCheckedState(final ArticleViewHolder holder, final Article article) { String tmp = !article.title.isEmpty() ? article.title.substring(0, 1).toUpperCase() : "?"; @@ -1473,10 +1434,6 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment implements } } - public void notifyUpdated() { - m_adapter.notifyDataSetChanged(); - } - public void scrollToArticle(Article article) { scrollToArticleId(article.id); } @@ -1562,16 +1519,13 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment implements private void syncToSharedArticles() { ArticleList tmp = new ArticleList(); - tmp.addAll(Application.getArticles()); - - tmp.add(new Article(Article.TYPE_AMR_FOOTER)); - DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(new HeadlinesDiffUtilCallback(m_articles, tmp)); + tmp.addAll(Application.getArticles()); - m_articles.clear(); - m_articles.addAll(tmp); + if (m_prefs.getBoolean("headlines_mark_read_scroll", false)) + tmp.add(new Article(Article.TYPE_AMR_FOOTER)); - diffResult.dispatchUpdatesTo(m_adapter); + m_adapter.submitList(tmp); } } diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesLoader.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesLoader.java index a7755f5b..38ae19f4 100755 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesLoader.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesLoader.java @@ -68,7 +68,7 @@ public class HeadlinesLoader extends AsyncTaskLoader implements Api m_append = true; forceLoad(); } else { - deliverResult(m_articles); + reset(); } } 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 33d949f7..fcca41bb 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 @@ -521,15 +521,9 @@ public class MasterActivity extends OnlineActivity implements HeadlinesEventList super.onActivityResult(requestCode, resultCode, data); if (requestCode == HEADLINES_REQUEST) { - // we add back footers stripped when this was passed to DetailActivity - // Application.getArticles().add(new Article(Article.TYPE_AMR_FOOTER)); - HeadlinesFragment hf = (HeadlinesFragment) getSupportFragmentManager().findFragmentByTag(FRAG_HEADLINES); if (hf != null) { - // articles might've been changed while in detail activity (resync with shared articles is handled in fragment onResume) - //hf.notifyUpdated(); - // data might be null if detailactivity crashed if (data != null) { int activeArticleId = data.getIntExtra("activeArticleId", 0); diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/util/HeadlinesDiffItemCallback.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/util/HeadlinesDiffItemCallback.java new file mode 100644 index 00000000..b652946a --- /dev/null +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/util/HeadlinesDiffItemCallback.java @@ -0,0 +1,23 @@ +package org.fox.ttrss.util; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.DiffUtil; + +import org.fox.ttrss.types.Article; + +public class HeadlinesDiffItemCallback extends DiffUtil.ItemCallback
{ + @Override + public boolean areItemsTheSame(@NonNull Article a1, @NonNull Article a2) { + // Log.d(TAG, "[DIFF] areItemsTheSame a1=" + a1.title + " a2=" + a2.title); + + return a1.id == a2.id; + } + + @Override + public boolean areContentsTheSame(@NonNull Article a1, @NonNull Article a2) { + // Log.d(TAG, "[DIFF] areContentsTheSame a1=" + a1.title + " a2=" + a2.title); + + return a1.id == a2.id && a1.unread == a2.unread && a1.marked == a2.marked + && a1.published == a2.published && a1.note.equals(a2.note); + } +} diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/util/HeadlinesDiffUtilCallback.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/util/HeadlinesDiffUtilCallback.java index e1292f99..084fb9fc 100644 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/util/HeadlinesDiffUtilCallback.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/util/HeadlinesDiffUtilCallback.java @@ -1,7 +1,5 @@ package org.fox.ttrss.util; -import android.util.Log; - import androidx.recyclerview.widget.DiffUtil; import org.fox.ttrss.types.Article; diff --git a/org.fox.ttrss/src/main/res/layout/fragment_headlines.xml b/org.fox.ttrss/src/main/res/layout/fragment_headlines.xml index 2783a1e4..647c3ae9 100755 --- a/org.fox.ttrss/src/main/res/layout/fragment_headlines.xml +++ b/org.fox.ttrss/src/main/res/layout/fragment_headlines.xml @@ -12,7 +12,6 @@ -- cgit v1.2.3-54-g00ecf From f33eecf0755c271bfbcc7c50ff406f5bf84d713a Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Wed, 14 May 2025 14:06:49 +0300 Subject: add variant icon and other fixes for build applicationsuffix --- org.fox.ttrss/build.gradle | 23 ++++++++++-- org.fox.ttrss/src/main/AndroidManifest.xml | 4 +-- .../drawable/ic_launcher_background_variant.xml | 42 ++++++++++++++++++++++ .../res/layout-sw600dp-land/activity_detail.xml | 2 +- .../res/layout-sw600dp-land/activity_master.xml | 2 +- .../src/main/res/layout/layout_detail_phone.xml | 2 +- .../src/main/res/layout/layout_master_phone.xml | 2 +- .../res/mipmap-anydpi-v26/ic_launcher_variant.xml | 5 +++ 8 files changed, 73 insertions(+), 9 deletions(-) create mode 100644 org.fox.ttrss/src/main/res/drawable/ic_launcher_background_variant.xml create mode 100644 org.fox.ttrss/src/main/res/mipmap-anydpi-v26/ic_launcher_variant.xml (limited to 'org.fox.ttrss/src/main/res/layout') diff --git a/org.fox.ttrss/build.gradle b/org.fox.ttrss/build.gradle index cce34e7d..7ffaf523 100755 --- a/org.fox.ttrss/build.gradle +++ b/org.fox.ttrss/build.gradle @@ -16,6 +16,9 @@ android { versionCode getGitVersionCode() versionName getVersion() vectorDrawables.useSupportLibrary = true + manifestPlaceholders = [ + appIcon: "@mipmap/ic_launcher" + ] } signingConfigs { @@ -36,8 +39,20 @@ android { } buildTypes { + debug { + minifyEnabled false + versionNameSuffix "-debug" + applicationIdSuffix ".debug" + debuggable true + resValue "string", "app_name", "Tiny Tiny RSS (debug)" + manifestPlaceholders = [ + appIcon: "@mipmap/ic_launcher_variant" + ] + } + release { minifyEnabled false + versionNameSuffix "-release-unsigned" proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' } @@ -46,16 +61,18 @@ android { versionNameSuffix "-signed" proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' signingConfig signingConfigs.signed - matchingFallbacks = ['release'] } - signedBranch { + branch { minifyEnabled false versionNameSuffix "-signed-branch" proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' signingConfig signingConfigs.signed - matchingFallbacks = ['release'] applicationIdSuffix ".branch" + resValue "string", "app_name", "Tiny Tiny RSS (branch)" + manifestPlaceholders = [ + appIcon: "@mipmap/ic_launcher_variant" + ] } } namespace 'org.fox.ttrss' diff --git a/org.fox.ttrss/src/main/AndroidManifest.xml b/org.fox.ttrss/src/main/AndroidManifest.xml index feb8a2e1..3388d515 100755 --- a/org.fox.ttrss/src/main/AndroidManifest.xml +++ b/org.fox.ttrss/src/main/AndroidManifest.xml @@ -17,7 +17,7 @@ android:name=".Application" android:allowBackup="true" android:hardwareAccelerated="true" - android:icon="@mipmap/ic_launcher" + android:icon="${appIcon}" android:label="@string/app_name" android:networkSecurityConfig="@xml/network_security_config" > @@ -217,7 +217,7 @@ + + + + + + + + diff --git a/org.fox.ttrss/src/main/res/layout-sw600dp-land/activity_detail.xml b/org.fox.ttrss/src/main/res/layout-sw600dp-land/activity_detail.xml index 59c1b086..823afb9b 100644 --- a/org.fox.ttrss/src/main/res/layout-sw600dp-land/activity_detail.xml +++ b/org.fox.ttrss/src/main/res/layout-sw600dp-land/activity_detail.xml @@ -54,7 +54,7 @@ + app:layout_behavior="org.fox.ttrss.util.FabAwareScrollingViewBehavior" /> diff --git a/org.fox.ttrss/src/main/res/layout/layout_master_phone.xml b/org.fox.ttrss/src/main/res/layout/layout_master_phone.xml index b4cb6b59..e32d5fbe 100644 --- a/org.fox.ttrss/src/main/res/layout/layout_master_phone.xml +++ b/org.fox.ttrss/src/main/res/layout/layout_master_phone.xml @@ -29,7 +29,7 @@ diff --git a/org.fox.ttrss/src/main/res/mipmap-anydpi-v26/ic_launcher_variant.xml b/org.fox.ttrss/src/main/res/mipmap-anydpi-v26/ic_launcher_variant.xml new file mode 100644 index 00000000..d49922f9 --- /dev/null +++ b/org.fox.ttrss/src/main/res/mipmap-anydpi-v26/ic_launcher_variant.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file -- cgit v1.2.3-54-g00ecf From 6e1ea990c69f72ac0b3e49f46ce620aa8e873422 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Thu, 15 May 2025 08:58:39 +0300 Subject: add rss_box icon --- .../src/main/java/org/fox/ttrss/FeedsFragment.java | 27 +++++++--------------- .../main/java/org/fox/ttrss/HeadlinesFragment.java | 5 +--- .../main/java/org/fox/ttrss/OnlineActivity.java | 2 +- org.fox.ttrss/src/main/res/drawable/rss.xml | 1 + org.fox.ttrss/src/main/res/drawable/rss_box.xml | 1 + org.fox.ttrss/src/main/res/layout/feeds_row.xml | 2 +- .../src/main/res/layout/feeds_row_selected.xml | 2 +- .../src/main/res/layout/feeds_row_toggle.xml | 2 +- .../src/main/res/layout/headlines_row.xml | 2 +- .../src/main/res/layout/headlines_row_unread.xml | 4 ++-- org.fox.ttrss/src/main/res/values-night/themes.xml | 1 - org.fox.ttrss/src/main/res/values/attrs.xml | 1 - org.fox.ttrss/src/main/res/values/themes.xml | 1 - 13 files changed, 18 insertions(+), 33 deletions(-) create mode 100644 org.fox.ttrss/src/main/res/drawable/rss.xml create mode 100644 org.fox.ttrss/src/main/res/drawable/rss_box.xml (limited to 'org.fox.ttrss/src/main/res/layout') 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 f618b5b1..c198343d 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 @@ -462,34 +462,23 @@ public class FeedsFragment extends BaseFeedlistFragment implements OnItemClickLi ImageView icon = v.findViewById(R.id.icon); if (icon != null) { - TypedValue tv = new TypedValue(); - if (feed.id == 0 && !feed.is_cat) { - m_activity.getTheme().resolveAttribute(R.attr.ic_archive, tv, true); - icon.setImageResource(tv.resourceId); + icon.setImageResource(R.drawable.baseline_archive_24); } else if (feed.id == -1 && !feed.is_cat) { - m_activity.getTheme().resolveAttribute(R.attr.ic_star, tv, true); - icon.setImageResource(tv.resourceId); + icon.setImageResource(R.drawable.baseline_star_24); } else if (feed.id == -2 && !feed.is_cat) { - m_activity.getTheme().resolveAttribute(R.attr.ic_rss_box, tv, true); - icon.setImageResource(tv.resourceId); + icon.setImageResource(R.drawable.rss); } else if (feed.id == -3 && !feed.is_cat) { - m_activity.getTheme().resolveAttribute(R.attr.ic_fresh, tv, true); - icon.setImageResource(tv.resourceId); + icon.setImageResource(R.drawable.baseline_local_fire_department_24); } else if (feed.id == -4 && !feed.is_cat) { - m_activity.getTheme().resolveAttribute(R.attr.ic_inbox, tv, true); - icon.setImageResource(tv.resourceId); + icon.setImageResource(R.drawable.baseline_inbox_24); } else if (feed.id == -6 && !feed.is_cat) { - m_activity.getTheme().resolveAttribute(R.attr.ic_restore, tv, true); - icon.setImageResource(tv.resourceId); + icon.setImageResource(R.drawable.baseline_restore_24); } else if (feed.is_cat) { - m_activity.getTheme().resolveAttribute(R.attr.ic_folder_outline, tv, true); - icon.setImageResource(tv.resourceId); + icon.setImageResource(R.drawable.baseline_folder_open_24); } else { - m_activity.getTheme().resolveAttribute(R.attr.ic_rss_box, tv, true); - icon.setImageResource(tv.resourceId); + icon.setImageResource(R.drawable.rss); } - } TextView tt = v.findViewById(R.id.title); 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 5eebd65f..1e22f711 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 @@ -896,10 +896,7 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment { } if (holder.publishedView != null) { - TypedValue tv = new TypedValue(); - m_activity.getTheme().resolveAttribute(R.attr.ic_rss_box, tv, true); - - holder.publishedView.setIconResource(tv.resourceId); + holder.publishedView.setIconResource(article.published ? R.drawable.rss_box : R.drawable.rss); if (article.published) holder.publishedView.setIconTint(ColorStateList.valueOf(tvTertiary.data)); 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 26dab50d..06503dc5 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 @@ -1184,7 +1184,7 @@ article.score = Integer.parseInt(edit.getText().toString()); m_menu.findItem(R.id.toggle_marked).setIcon(article.marked ? R.drawable.baseline_star_24 : R.drawable.baseline_star_outline_24); - m_menu.findItem(R.id.toggle_published).setIcon(article.published ? R.drawable.baseline_check_box_24 : + m_menu.findItem(R.id.toggle_published).setIcon(article.published ? R.drawable.rss_box : R.drawable.baseline_rss_feed_24); } } diff --git a/org.fox.ttrss/src/main/res/drawable/rss.xml b/org.fox.ttrss/src/main/res/drawable/rss.xml new file mode 100644 index 00000000..f97e14a2 --- /dev/null +++ b/org.fox.ttrss/src/main/res/drawable/rss.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/org.fox.ttrss/src/main/res/drawable/rss_box.xml b/org.fox.ttrss/src/main/res/drawable/rss_box.xml new file mode 100644 index 00000000..45b40cea --- /dev/null +++ b/org.fox.ttrss/src/main/res/drawable/rss_box.xml @@ -0,0 +1 @@ + \ No newline at end of file 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 32e20c26..0f9c4e54 100755 --- a/org.fox.ttrss/src/main/res/layout/feeds_row.xml +++ b/org.fox.ttrss/src/main/res/layout/feeds_row.xml @@ -23,7 +23,7 @@ android:layout_weight="0" android:scaleType="fitXY" app:tint="?colorOnPrimaryContainer" - android:src="?ic_rss_box" /> + android:src="@drawable/rss" /> + android:src="@drawable/rss" /> + android:src="@drawable/rss_box" /> + app:icon="@drawable/rss" /> + app:icon="@drawable/rss" /> + app:icon="@drawable/baseline_more_vert_24" /> diff --git a/org.fox.ttrss/src/main/res/values-night/themes.xml b/org.fox.ttrss/src/main/res/values-night/themes.xml index 7d54a029..5f32a7b3 100644 --- a/org.fox.ttrss/src/main/res/values-night/themes.xml +++ b/org.fox.ttrss/src/main/res/values-night/themes.xml @@ -3,7 +3,6 @@ true @style/AppPreferenceThemeOverlay - @drawable/baseline_rss_feed_24 @drawable/baseline_check_box_24 @drawable/baseline_star_24 @drawable/baseline_star_outline_24 diff --git a/org.fox.ttrss/src/main/res/values/attrs.xml b/org.fox.ttrss/src/main/res/values/attrs.xml index daf2323c..e33d1c8a 100755 --- a/org.fox.ttrss/src/main/res/values/attrs.xml +++ b/org.fox.ttrss/src/main/res/values/attrs.xml @@ -1,6 +1,5 @@ - diff --git a/org.fox.ttrss/src/main/res/values/themes.xml b/org.fox.ttrss/src/main/res/values/themes.xml index 68a57811..9969617c 100644 --- a/org.fox.ttrss/src/main/res/values/themes.xml +++ b/org.fox.ttrss/src/main/res/values/themes.xml @@ -4,7 +4,6 @@ true @style/AppPreferenceThemeOverlay - @drawable/baseline_rss_feed_24 @drawable/baseline_check_box_24 @drawable/baseline_star_24 @drawable/baseline_star_outline_24 -- cgit v1.2.3-54-g00ecf From 2122a9b494feaddd953b276b06d8b4d0515d0f27 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Thu, 15 May 2025 09:05:34 +0300 Subject: drop no longer useful theme attributes in favor of drawable ids --- .../java/org/fox/ttrss/BaseFeedlistFragment.java | 4 +--- .../java/org/fox/ttrss/FeedCategoriesFragment.java | 5 +---- .../main/java/org/fox/ttrss/HeadlinesFragment.java | 17 +++++---------- .../src/main/res/layout/activity_gallery.xml | 2 +- org.fox.ttrss/src/main/res/layout/feeds_goback.xml | 2 +- .../src/main/res/layout/headlines_row.xml | 8 +++---- .../src/main/res/layout/headlines_row_compact.xml | 2 +- .../res/layout/headlines_row_compact_active.xml | 2 +- .../layout/headlines_row_compact_active_unread.xml | 2 +- .../res/layout/headlines_row_compact_unread.xml | 2 +- .../src/main/res/layout/headlines_row_unread.xml | 6 +++--- org.fox.ttrss/src/main/res/values-night/themes.xml | 22 ------------------- org.fox.ttrss/src/main/res/values/attrs.xml | 25 ---------------------- org.fox.ttrss/src/main/res/values/themes.xml | 22 ------------------- 14 files changed, 20 insertions(+), 101 deletions(-) (limited to 'org.fox.ttrss/src/main/res/layout') diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/BaseFeedlistFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/BaseFeedlistFragment.java index def61209..b37f7386 100755 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/BaseFeedlistFragment.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/BaseFeedlistFragment.java @@ -62,9 +62,7 @@ public abstract class BaseFeedlistFragment extends androidx.fragment.app.Fragmen text.setText(R.string.unread_only); ImageView icon = rowToggle.findViewById(R.id.icon); - TypedValue tv = new TypedValue(); - getActivity().getTheme().resolveAttribute(R.attr.ic_filter_variant, tv, true); - icon.setImageResource(tv.resourceId); + icon.setImageResource(R.drawable.baseline_filter_alt_24); final SwitchCompat rowSwitch = rowToggle.findViewById(R.id.row_switch); rowSwitch.setChecked(activity.getUnreadOnly()); diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedCategoriesFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedCategoriesFragment.java index 1d735490..34127013 100755 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedCategoriesFragment.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedCategoriesFragment.java @@ -376,10 +376,7 @@ public class FeedCategoriesFragment extends BaseFeedlistFragment implements OnIt ImageView icon = v.findViewById(R.id.icon); if (icon != null) { - TypedValue tv = new TypedValue(); - - m_activity.getTheme().resolveAttribute(R.attr.ic_folder_outline, tv, true); - icon.setImageResource(tv.resourceId); + icon.setImageResource(R.drawable.baseline_folder_open_24); } 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 1e22f711..b0a3d2d3 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 @@ -830,11 +830,7 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment { m_activity.getTheme().resolveAttribute(R.attr.colorPrimary, tvPrimary, true); if (holder.markedView != null) { - TypedValue tv = new TypedValue(); - m_activity.getTheme().resolveAttribute(article.marked ? R.attr.ic_star : R.attr.ic_star_outline, tv, true); - - holder.markedView.setIconResource(tv.resourceId); - + holder.markedView.setIconResource(article.marked ? R.drawable.baseline_star_24 : R.drawable.baseline_star_outline_24); if (article.marked) holder.markedView.setIconTint(ColorStateList.valueOf(tvTertiary.data)); @@ -851,17 +847,14 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment { } if (holder.scoreView != null) { - TypedValue tv = new TypedValue(); - int scoreAttr = R.attr.ic_action_trending_flat; + int scoreDrawable = R.drawable.baseline_trending_flat_24; if (article.score > 0) - scoreAttr = R.attr.ic_action_trending_up; + scoreDrawable = R.drawable.baseline_trending_up_24; else if (article.score < 0) - scoreAttr = R.attr.ic_action_trending_down; - - m_activity.getTheme().resolveAttribute(scoreAttr, tv, true); + scoreDrawable = R.drawable.baseline_trending_down_24; - holder.scoreView.setIconResource(tv.resourceId); + holder.scoreView.setIconResource(scoreDrawable); if (article.score > Article.SCORE_HIGH) holder.scoreView.setIconTint(ColorStateList.valueOf(tvTertiary.data)); diff --git a/org.fox.ttrss/src/main/res/layout/activity_gallery.xml b/org.fox.ttrss/src/main/res/layout/activity_gallery.xml index f44bb74b..b0f67761 100644 --- a/org.fox.ttrss/src/main/res/layout/activity_gallery.xml +++ b/org.fox.ttrss/src/main/res/layout/activity_gallery.xml @@ -17,7 +17,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="0" - app:icon="?ic_dots_vertical" + app:icon="@drawable/baseline_more_vert_24" android:layout_alignParentRight="true" android:layout_marginTop="48dp" app:iconTint="?colorTertiary" /> diff --git a/org.fox.ttrss/src/main/res/layout/feeds_goback.xml b/org.fox.ttrss/src/main/res/layout/feeds_goback.xml index f4c580a3..75ba8fe1 100755 --- a/org.fox.ttrss/src/main/res/layout/feeds_goback.xml +++ b/org.fox.ttrss/src/main/res/layout/feeds_goback.xml @@ -20,7 +20,7 @@ android:layout_height="21dp" android:layout_weight="0" android:scaleType="fitXY" - android:src="?ic_go_back" + android:src="@drawable/baseline_arrow_back_24" app:tint="?colorTertiary" /> + app:icon="@drawable/baseline_trending_flat_24" /> + app:icon="@drawable/baseline_attachment_24" /> + app:icon="@drawable/baseline_star_outline_24" /> + app:icon="@drawable/baseline_more_vert_24" /> diff --git a/org.fox.ttrss/src/main/res/layout/headlines_row_compact.xml b/org.fox.ttrss/src/main/res/layout/headlines_row_compact.xml index 352aad91..7090668a 100755 --- a/org.fox.ttrss/src/main/res/layout/headlines_row_compact.xml +++ b/org.fox.ttrss/src/main/res/layout/headlines_row_compact.xml @@ -103,6 +103,6 @@ android:layout_gravity="end" android:layout_height="24dp" android:layout_weight="0.5" - app:icon="?ic_star_outline" /> + app:icon="@drawable/baseline_star_outline_24" /> \ No newline at end of file diff --git a/org.fox.ttrss/src/main/res/layout/headlines_row_compact_active.xml b/org.fox.ttrss/src/main/res/layout/headlines_row_compact_active.xml index f6483350..72ae99b8 100755 --- a/org.fox.ttrss/src/main/res/layout/headlines_row_compact_active.xml +++ b/org.fox.ttrss/src/main/res/layout/headlines_row_compact_active.xml @@ -104,6 +104,6 @@ android:layout_gravity="end" android:layout_height="24dp" android:layout_weight="0.5" - app:icon="?ic_star_outline" /> + app:icon="@drawable/baseline_star_outline_24" /> \ No newline at end of file diff --git a/org.fox.ttrss/src/main/res/layout/headlines_row_compact_active_unread.xml b/org.fox.ttrss/src/main/res/layout/headlines_row_compact_active_unread.xml index 06813e04..b2b3a21e 100755 --- a/org.fox.ttrss/src/main/res/layout/headlines_row_compact_active_unread.xml +++ b/org.fox.ttrss/src/main/res/layout/headlines_row_compact_active_unread.xml @@ -105,6 +105,6 @@ android:layout_gravity="end" android:layout_height="24dp" android:layout_weight="0.5" - app:icon="?ic_star_outline" /> + app:icon="@drawable/baseline_star_outline_24" /> \ No newline at end of file diff --git a/org.fox.ttrss/src/main/res/layout/headlines_row_compact_unread.xml b/org.fox.ttrss/src/main/res/layout/headlines_row_compact_unread.xml index 6aa1bdcd..2fbbe062 100755 --- a/org.fox.ttrss/src/main/res/layout/headlines_row_compact_unread.xml +++ b/org.fox.ttrss/src/main/res/layout/headlines_row_compact_unread.xml @@ -105,6 +105,6 @@ android:layout_gravity="end" android:layout_height="24dp" android:layout_weight="0.5" - app:icon="?ic_star_outline" /> + app:icon="@drawable/baseline_star_outline_24" /> \ No newline at end of file diff --git a/org.fox.ttrss/src/main/res/layout/headlines_row_unread.xml b/org.fox.ttrss/src/main/res/layout/headlines_row_unread.xml index 74f73e14..3365f476 100755 --- a/org.fox.ttrss/src/main/res/layout/headlines_row_unread.xml +++ b/org.fox.ttrss/src/main/res/layout/headlines_row_unread.xml @@ -212,7 +212,7 @@ android:layout_weight="0" android:paddingLeft="4dp" android:paddingRight="4dp" - app:icon="?ic_action_trending_flat" /> + app:icon="@drawable/baseline_trending_flat_24" /> + app:icon="@drawable/baseline_attachment_24" /> + app:icon="@drawable/baseline_star_outline_24" /> true @style/AppPreferenceThemeOverlay - @drawable/baseline_check_box_24 - @drawable/baseline_star_24 - @drawable/baseline_star_outline_24 - @drawable/baseline_share_24 - @drawable/baseline_inbox_24 - @drawable/baseline_arrow_back_24 - @drawable/baseline_settings_24 - @drawable/baseline_filter_alt_24 - @drawable/baseline_cloud_download_24 - @drawable/baseline_cloud_upload_24 - @drawable/baseline_archive_24 - @drawable/baseline_local_fire_department_24 - @drawable/baseline_restore_24 - @drawable/baseline_folder_open_24 - @drawable/baseline_more_vert_24 - @drawable/outline_more_24 - @drawable/baseline_attachment_24 - @drawable/baseline_attach_file_24 - @drawable/baseline_trending_up_24 - @drawable/baseline_trending_flat_24 - @drawable/baseline_trending_down_24 - @color/md_theme_primary @color/md_theme_onPrimary @color/md_theme_primaryContainer diff --git a/org.fox.ttrss/src/main/res/values/attrs.xml b/org.fox.ttrss/src/main/res/values/attrs.xml index e33d1c8a..55344e51 100755 --- a/org.fox.ttrss/src/main/res/values/attrs.xml +++ b/org.fox.ttrss/src/main/res/values/attrs.xml @@ -1,28 +1,3 @@ - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/org.fox.ttrss/src/main/res/values/themes.xml b/org.fox.ttrss/src/main/res/values/themes.xml index 9969617c..15be8c17 100644 --- a/org.fox.ttrss/src/main/res/values/themes.xml +++ b/org.fox.ttrss/src/main/res/values/themes.xml @@ -4,28 +4,6 @@ true @style/AppPreferenceThemeOverlay - @drawable/baseline_check_box_24 - @drawable/baseline_star_24 - @drawable/baseline_star_outline_24 - @drawable/baseline_share_24 - @drawable/baseline_inbox_24 - @drawable/baseline_arrow_back_24 - @drawable/baseline_settings_24 - @drawable/baseline_filter_alt_24 - @drawable/baseline_cloud_download_24 - @drawable/baseline_cloud_upload_24 - @drawable/baseline_archive_24 - @drawable/baseline_local_fire_department_24 - @drawable/baseline_restore_24 - @drawable/baseline_folder_open_24 - @drawable/baseline_more_vert_24 - @drawable/outline_more_24 - @drawable/baseline_attachment_24 - @drawable/baseline_attach_file_24 - @drawable/baseline_trending_up_24 - @drawable/baseline_trending_flat_24 - @drawable/baseline_trending_down_24 - @color/md_theme_primary @color/md_theme_onPrimary @color/md_theme_primaryContainer -- cgit v1.2.3-54-g00ecf