aboutsummaryrefslogtreecommitdiff
path: root/org.fox.ttrss/src/main/java
diff options
context:
space:
mode:
authorAndrew Dolgov <fox@fakecake.org>2025-05-06 12:13:14 +0300
committerAndrew Dolgov <fox@fakecake.org>2025-05-06 12:13:14 +0300
commit78155e9c3640b5ada6f2c5982db01fb0ea7e768b (patch)
tree7fcc9881645df018110ad0290428f95f882a8c39 /org.fox.ttrss/src/main/java
parente3f504940d98377de3d7eab5e938c806d67fe8e2 (diff)
switch to material3 theme, switch some headline imageviews to material buttons, theme cleanup
Diffstat (limited to 'org.fox.ttrss/src/main/java')
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java37
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineHeadlinesFragment.java25
2 files changed, 37 insertions, 25 deletions
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 d45ff934..c6d4f902 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
@@ -9,6 +9,7 @@ import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.ApplicationInfo;
+import android.content.res.ColorStateList;
import android.content.res.Resources.Theme;
import android.graphics.Paint;
import android.graphics.Point;
@@ -42,6 +43,7 @@ import android.view.ViewGroup;
import android.view.ViewTreeObserver;
import android.view.WindowManager;
import android.widget.AdapterView.AdapterContextMenuInfo;
+import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.ImageView;
@@ -70,6 +72,7 @@ import com.bumptech.glide.request.RequestListener;
import com.bumptech.glide.request.target.GlideDrawableImageViewTarget;
import com.bumptech.glide.request.target.Target;
import com.evernote.android.state.State;
+import com.google.android.material.button.MaterialButton;
import com.google.android.material.snackbar.Snackbar;
import com.google.gson.JsonElement;
@@ -702,16 +705,16 @@ public class HeadlinesFragment extends StateSavedFragment {
public TextView titleView;
public TextView feedTitleView;
- public ImageView markedView;
- public ImageView scoreView;
- public ImageView publishedView;
+ public MaterialButton markedView;
+ public MaterialButton scoreView;
+ public MaterialButton publishedView;
public TextView excerptView;
public ImageView flavorImageView;
public ImageView flavorVideoKindView;
public TextView authorView;
public TextView dateView;
public CheckBox selectionBoxView;
- public ImageView menuButtonView;
+ public MaterialButton menuButtonView;
public ViewGroup flavorImageHolder;
public ProgressBar flavorImageLoadingBar;
public View headlineFooter;
@@ -720,7 +723,7 @@ public class HeadlinesFragment extends StateSavedFragment {
public View headlineHeader;
public View flavorImageOverflow;
public TextureView flavorVideoView;
- public ImageView attachmentsView;
+ public MaterialButton attachmentsView;
//public int position;
public boolean flavorImageEmbedded;
public ProgressTarget<String, GlideDrawable> flavorProgressTarget;
@@ -1002,16 +1005,20 @@ public class HeadlinesFragment extends StateSavedFragment {
TypedValue tvAccent = new TypedValue();
m_activity.getTheme().resolveAttribute(R.attr.colorAccent, tvAccent, true);
+ TypedValue tvPrimary = new TypedValue();
+ 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.setImageResource(tv.resourceId);
+ holder.markedView.setIconResource(tv.resourceId);
+
if (article.marked)
- holder.markedView.setColorFilter(tvAccent.data);
+ holder.markedView.setIconTint(ColorStateList.valueOf(tvAccent.data));
else
- holder.markedView.setColorFilter(null);
+ holder.markedView.setIconTint(ColorStateList.valueOf(tvPrimary.data));
holder.markedView.setOnClickListener(new OnClickListener() {
@@ -1037,12 +1044,12 @@ public class HeadlinesFragment extends StateSavedFragment {
m_activity.getTheme().resolveAttribute(scoreAttr, tv, true);
- holder.scoreView.setImageResource(tv.resourceId);
+ holder.scoreView.setIconResource(tv.resourceId);
if (article.score > Article.SCORE_HIGH)
- holder.scoreView.setColorFilter(titleHighScoreUnreadColor);
+ holder.scoreView.setIconTint(ColorStateList.valueOf(tvAccent.data));
else
- holder.scoreView.setColorFilter(null);
+ holder.scoreView.setIconTint(ColorStateList.valueOf(tvPrimary.data));
if (m_activity.getApiLevel() >= 16) {
holder.scoreView.setOnClickListener(new OnClickListener() {
@@ -1095,14 +1102,14 @@ public class HeadlinesFragment extends StateSavedFragment {
if (holder.publishedView != null) {
TypedValue tv = new TypedValue();
- m_activity.getTheme().resolveAttribute(article.published ? R.attr.ic_checkbox_marked : R.attr.ic_rss_box, tv, true);
+ m_activity.getTheme().resolveAttribute(R.attr.ic_rss_box, tv, true);
- holder.publishedView.setImageResource(tv.resourceId);
+ holder.publishedView.setIconResource(tv.resourceId);
if (article.published)
- holder.publishedView.setColorFilter(tvAccent.data);
+ holder.publishedView.setIconTint(ColorStateList.valueOf(tvAccent.data));
else
- holder.publishedView.setColorFilter(null);
+ holder.publishedView.setIconTint(ColorStateList.valueOf(tvPrimary.data));
holder.publishedView.setOnClickListener(new OnClickListener() {
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineHeadlinesFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineHeadlinesFragment.java
index 669e4115..386af632 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineHeadlinesFragment.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineHeadlinesFragment.java
@@ -7,6 +7,7 @@ import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
+import android.content.res.ColorStateList;
import android.content.res.Resources.Theme;
import android.database.Cursor;
import android.database.sqlite.SQLiteStatement;
@@ -50,6 +51,7 @@ import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.load.resource.drawable.GlideDrawable;
import com.bumptech.glide.request.RequestListener;
import com.bumptech.glide.request.target.Target;
+import com.google.android.material.button.MaterialButton;
import org.fox.ttrss.Application;
import org.fox.ttrss.CommonActivity;
@@ -487,14 +489,14 @@ public class OfflineHeadlinesFragment extends Fragment implements OnItemClickLis
public TextView titleView;
public TextView feedTitleView;
- public ImageView markedView;
- public ImageView publishedView;
+ public MaterialButton markedView;
+ public MaterialButton publishedView;
public TextView excerptView;
public ImageView flavorImageView;
public TextView authorView;
public TextView dateView;
public CheckBox selectionBoxView;
- public ImageView menuButtonView;
+ public MaterialButton menuButtonView;
public ViewGroup flavorImageHolder;
public ProgressBar flavorImageLoadingBar;
public View headlineFooter;
@@ -504,7 +506,7 @@ public class OfflineHeadlinesFragment extends Fragment implements OnItemClickLis
public View flavorImageOverflow;
public View headlineHeader;
public ImageView attachmentsView;
- public ImageView scoreView;
+ public MaterialButton scoreView;
public ArticleViewHolder(View v) {
@@ -791,6 +793,9 @@ public class OfflineHeadlinesFragment extends Fragment implements OnItemClickLis
TypedValue tvAccent = new TypedValue();
m_activity.getTheme().resolveAttribute(R.attr.colorAccent, tvAccent, true);
+ TypedValue tvPrimary = new TypedValue();
+ m_activity.getTheme().resolveAttribute(R.attr.colorPrimary, tvPrimary, true);
+
if (holder.attachmentsView != null) {
holder.attachmentsView.setVisibility(View.GONE);
}
@@ -806,12 +811,12 @@ public class OfflineHeadlinesFragment extends Fragment implements OnItemClickLis
m_activity.getTheme().resolveAttribute(marked ? R.attr.ic_star : R.attr.ic_star_outline, tv, true);
- holder.markedView.setImageResource(tv.resourceId);
+ holder.markedView.setIconResource(tv.resourceId);
if (marked)
- holder.markedView.setColorFilter(tvAccent.data);
+ holder.markedView.setIconTint(ColorStateList.valueOf(tvAccent.data));
else
- holder.markedView.setColorFilter(null);
+ holder.markedView.setIconTint(ColorStateList.valueOf(tvPrimary.data));
holder.markedView.setOnClickListener(new OnClickListener() {
@@ -837,12 +842,12 @@ public class OfflineHeadlinesFragment extends Fragment implements OnItemClickLis
m_activity.getTheme().resolveAttribute(published ? R.attr.ic_checkbox_marked : R.attr.ic_rss_box, tv, true);
- holder.publishedView.setImageResource(tv.resourceId);
+ holder.publishedView.setIconResource(tv.resourceId);
if (published)
- holder.publishedView.setColorFilter(tvAccent.data);
+ holder.publishedView.setIconTint(ColorStateList.valueOf(tvAccent.data));
else
- holder.publishedView.setColorFilter(null);
+ holder.publishedView.setIconTint(ColorStateList.valueOf(tvPrimary.data));
holder.publishedView.setOnClickListener(new OnClickListener() {