summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <fox@fakecake.org>2025-05-13 10:47:11 +0300
committerAndrew Dolgov <fox@fakecake.org>2025-05-13 10:47:11 +0300
commit589825304449c841f577845e37dfca64fe054396 (patch)
treed57f37960db3c580978ee4c68dd5cc493bbab38c
parente6fd2328815465869f11cec6e62a19ccaf9bcd36 (diff)
let's try setting active article when going back from detail mode, also stop forced lazy updates on return
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java24
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/MasterActivity.java7
2 files changed, 14 insertions, 17 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 92131da5..aa7cdddf 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
@@ -99,6 +99,7 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment implements
Log.d(TAG, "onLoadFinished loader=" + loader + " size=" + (data != null ? data.size() : "N/A (null)"));
HeadlinesLoader headlinesLoader = (HeadlinesLoader) loader;
+ ArticleList sharedArticles = Application.getArticles();
// successful update
if (data != null) {
@@ -112,8 +113,6 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment implements
data.add(new Article(Article.TYPE_AMR_FOOTER));
}
- ArticleList sharedArticles = Application.getArticles();
-
DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(new HeadlinesDiffutilCallback(sharedArticles, data));
sharedArticles.clear();
@@ -121,12 +120,12 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment implements
diffResult.dispatchUpdatesTo(m_adapter);
- if (headlinesLoader.getFirstIdChanged()) {
- //if (m_activity.isSmallScreen() || !m_activity.isPortrait()) {
- Snackbar.make(getView(), R.string.headlines_row_top_changed, Snackbar.LENGTH_LONG)
- .setAction(R.string.reload, v -> refresh(false)).show();
- //}
- }
+ 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());
@@ -754,12 +753,13 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment implements
holder.view.setOnClickListener(v -> {
m_listener.onArticleSelected(article);
+ setActiveArticleId(article.id);
// only set active article when it makes sense (in DetailActivity)
- if (getActivity() instanceof DetailActivity) {
- m_activeArticleId = article.id;
- m_adapter.notifyDataSetChanged();
- }
+ //if (getActivity() instanceof DetailActivity) {
+ //m_activeArticleId = article.id;
+ //m_adapter.notifyDataSetChanged();
+ //}
});
// block footer clicks to make button/selection clicking easier
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 fac3c0c0..d74a58a3 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
@@ -528,7 +528,6 @@ public class MasterActivity extends OnlineActivity implements HeadlinesEventList
HeadlinesFragment hf = (HeadlinesFragment) getSupportFragmentManager().findFragmentByTag(FRAG_HEADLINES);
if (hf != null) {
-
// articles might've been changed while in detail activity
hf.notifyUpdated();
@@ -537,12 +536,10 @@ public class MasterActivity extends OnlineActivity implements HeadlinesEventList
int activeArticleId = data.getIntExtra("activeArticleId", 0);
Log.d(TAG, "got back from detail activity, scrolling to id=" + activeArticleId);
- hf.scrollToArticleId(activeArticleId);
+ hf.setActiveArticleId(activeArticleId);
+ //hf.scrollToArticleId(activeArticleId);
}
}
-
- // just in case
- new Handler().postDelayed((Runnable) () -> hf.refresh(true), 250);
}
}