diff options
| author | Andrew Dolgov <fox@fakecake.org> | 2025-05-13 10:47:11 +0300 |
|---|---|---|
| committer | Andrew Dolgov <fox@fakecake.org> | 2025-05-13 10:47:11 +0300 |
| commit | 589825304449c841f577845e37dfca64fe054396 (patch) | |
| tree | d57f37960db3c580978ee4c68dd5cc493bbab38c | |
| parent | e6fd2328815465869f11cec6e62a19ccaf9bcd36 (diff) | |
let's try setting active article when going back from detail mode, also stop forced lazy updates on return
| -rwxr-xr-x | org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java | 24 | ||||
| -rwxr-xr-x | org.fox.ttrss/src/main/java/org/fox/ttrss/MasterActivity.java | 7 |
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); } } |