summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <fox@fakecake.org>2025-05-14 15:07:55 +0300
committerAndrew Dolgov <fox@fakecake.org>2025-05-14 15:07:55 +0300
commitf632cb913aebfcc647db0165552eab330bb75a30 (patch)
tree2284803a048c329c0ac55bb95b6cb0c4eb073dd6
parentb37c1c4cf08ebb3f66375f136626c9a30bd54d96 (diff)
add some onclick workarounds for viewholder, drop articlelist from onArticleListSelectionChange because its not used anywhere and gathering it for the callback is pointless
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/DetailActivity.java2
-rw-r--r--org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesEventListener.java2
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java56
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/MasterActivity.java2
4 files changed, 32 insertions, 30 deletions
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/DetailActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/DetailActivity.java
index ed237fed..3995014b 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/DetailActivity.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/DetailActivity.java
@@ -259,7 +259,7 @@ public class DetailActivity extends OnlineActivity implements HeadlinesEventList
}
@Override
- public void onArticleListSelectionChange(ArticleList m_selectedArticles) {
+ public void onArticleListSelectionChange() {
invalidateOptionsMenu();
}
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesEventListener.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesEventListener.java
index 5494bb2b..27e00bbf 100644
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesEventListener.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesEventListener.java
@@ -4,7 +4,7 @@ import org.fox.ttrss.types.Article;
import org.fox.ttrss.types.ArticleList;
public interface HeadlinesEventListener {
- void onArticleListSelectionChange(ArticleList m_selectedArticles);
+ void onArticleListSelectionChange();
void onArticleSelected(Article article);
void onArticleSelected(Article article, boolean open);
void onHeadlinesLoaded(boolean appended);
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 5431eb70..8f15272c 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
@@ -121,13 +121,10 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment {
private MediaPlayer m_mediaPlayer;
private TextureView m_activeTexture;
- public @NonNull ArticleList getSelectedArticles() {
- if (m_adapter != null)
- return m_adapter.getCurrentList()
- .stream()
- .filter(a -> a.selected).collect(Collectors.toCollection(ArticleList::new));
- else
- return new ArticleList();
+ public ArticleList getSelectedArticles() {
+ return Application.getArticles()
+ .stream()
+ .filter(a -> a.selected).collect(Collectors.toCollection(ArticleList::new));
}
public void initialize(Feed feed) {
@@ -559,7 +556,6 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment {
static class ArticleViewHolder extends RecyclerView.ViewHolder {
public View view;
- public Article article;
public TextView titleView;
public TextView feedTitleView;
@@ -584,6 +580,8 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment {
public MaterialButton attachmentsView;
public ProgressTarget<String, GlideDrawable> flavorProgressTarget;
+ int flavorViewHeight;
+
public ArticleViewHolder(View v) {
super(v);
@@ -593,7 +591,7 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment {
View flavorImage = view.findViewById(R.id.flavor_image);
if (flavorImage != null) {
- article.flavorViewHeight = flavorImage.getMeasuredHeight();
+ flavorViewHeight = flavorImage.getMeasuredHeight();
}
return true;
@@ -624,6 +622,7 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment {
if (flavorImageView != null && flavorImageLoadingBar != null) {
flavorProgressTarget = new FlavorProgressTarget<>(new GlideDrawableImageViewTarget(flavorImageView), flavorImageLoadingBar);
}
+
}
public void clearAnimation() {
@@ -738,12 +737,10 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment {
@Override
public void onBindViewHolder(final ArticleViewHolder holder, int 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));
- final Article article = holder.article;
+ Article article = getItem(position);
if (article.id == Article.TYPE_AMR_FOOTER && m_prefs.getBoolean("headlines_mark_read_scroll", false)) {
WindowManager wm = (WindowManager) m_activity.getSystemService(Context.WINDOW_SERVICE);
@@ -780,18 +777,18 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment {
}
if (holder.textImage != null) {
- updateTextCheckedState(holder, article);
+ updateTextCheckedState(holder, position);
holder.textImage.setOnClickListener(view -> {
- Log.d(TAG, "textImage : onclicked");
+ Article selectedArticle = getItem(position);
- article.selected = !article.selected;
+ Log.d(TAG, "textImage onClick pos=" + position + " article=" + article);
- updateTextCheckedState(holder, article);
+ selectedArticle.selected = !selectedArticle.selected;
- m_listener.onArticleListSelectionChange(getSelectedArticles());
+ updateTextCheckedState(holder, position);
- Log.d(TAG, "num selected: " + getSelectedArticles().size());
+ m_listener.onArticleListSelectionChange();
});
ViewCompat.setTransitionName(holder.textImage, "gallery:" + article.flavorImageUri);
@@ -1042,9 +1039,10 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment {
holder.flavorImageHolder.setVisibility(View.VISIBLE);
// prevent lower listiew entries from jumping around if this row is modified
- if (article.flavorViewHeight > 0) {
+ // TODO this doesn't work right now
+ if (holder.flavorViewHeight > 0) {
FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) holder.flavorImageView.getLayoutParams();
- lp.height = article.flavorViewHeight;
+ lp.height = holder.flavorViewHeight;
}
holder.flavorProgressTarget.setModel(article.flavorImageUri);
@@ -1237,18 +1235,19 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment {
if (holder.selectionBoxView != null) {
holder.selectionBoxView.setChecked(article.selected);
holder.selectionBoxView.setOnClickListener(view -> {
- CheckBox cb = (CheckBox)view;
+ Article currentArticle = getItem(position);
- article.selected = cb.isChecked();
+ Log.d(TAG, "selectionCb onClick pos=" + position + " article=" + article);
- m_listener.onArticleListSelectionChange(getSelectedArticles());
+ CheckBox cb = (CheckBox)view;
+
+ currentArticle.selected = cb.isChecked();
- Log.d(TAG, "num selected: " + getSelectedArticles().size());
+ m_listener.onArticleListSelectionChange();
});
}
if (holder.menuButtonView != null) {
-
holder.menuButtonView.setOnClickListener(v -> {
PopupMenu popup = new PopupMenu(getActivity(), v);
@@ -1258,7 +1257,8 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment {
popup.getMenu().findItem(R.id.article_set_labels).setEnabled(m_activity.getApiLevel() >= 1);
popup.getMenu().findItem(R.id.article_edit_note).setEnabled(m_activity.getApiLevel() >= 1);
- popup.setOnMenuItemClickListener(item -> onArticleMenuItemSelected(item, article,
+ popup.setOnMenuItemClickListener(item -> onArticleMenuItemSelected(item,
+ getItem(position),
m_list.getChildAdapterPosition(holder.view)));
popup.show();
@@ -1283,7 +1283,9 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment {
}
}
- private void updateTextCheckedState(final ArticleViewHolder holder, final Article article) {
+ private void updateTextCheckedState(final ArticleViewHolder holder, int position) {
+ Article article = getItem(position);
+
String tmp = !article.title.isEmpty() ? article.title.substring(0, 1).toUpperCase() : "?";
if (article.selected) {
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 452c720b..e63234cd 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
@@ -445,7 +445,7 @@ public class MasterActivity extends OnlineActivity implements HeadlinesEventList
}
@Override
- public void onArticleListSelectionChange(ArticleList m_selectedArticles) {
+ public void onArticleListSelectionChange() {
invalidateOptionsMenu();
}