diff options
| author | Andrew Dolgov <fox@fakecake.org> | 2025-05-13 09:40:01 +0300 |
|---|---|---|
| committer | Andrew Dolgov <fox@fakecake.org> | 2025-05-13 09:40:01 +0300 |
| commit | 5c3026d6c1b4a4e70b2e8ab0e93bc1731e1104d4 (patch) | |
| tree | 15472c72994b3341c0465f0ca69c48b2b53d8786 | |
| parent | f42eccb9cabde4bb8db1541626150fcdeaefdbcc (diff) | |
cleanup refresh code from article pager, drop uri preload stuff
6 files changed, 8 insertions, 204 deletions
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticlePager.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticlePager.java index 3cd73734..eba87ab9 100755 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticlePager.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticlePager.java @@ -27,12 +27,8 @@ public class ArticlePager extends androidx.fragment.app.Fragment { private HeadlinesEventListener m_listener; private int m_articleId; private OnlineActivity m_activity; - private String m_searchQuery = ""; private Feed m_feed; - private SharedPreferences m_prefs; private int m_firstId = 0; - private boolean m_refreshInProgress; - private boolean m_lazyLoadDisabled; private ViewPager2 m_pager; private static class PagerAdapter extends FragmentStateAdapter { @@ -72,10 +68,6 @@ public class ArticlePager extends androidx.fragment.app.Fragment { m_feed = feed; } - public void setSearchQuery(String searchQuery) { - m_searchQuery = searchQuery; - } - @Override public void onSaveInstanceState(Bundle out) { super.onSaveInstanceState(out); @@ -124,15 +116,7 @@ public class ArticlePager extends androidx.fragment.app.Fragment { if (article != null) { m_articleId = article.id; - new Handler().postDelayed(() -> m_listener.onArticleSelected(article, false), 250); - - //Log.d(TAG, "Page #" + position + "/" + m_adapter.getCount()); - - if (!m_refreshInProgress && !m_lazyLoadDisabled && (m_activity.isSmallScreen() || m_activity.isPortrait()) && position >= m_adapter.getItemCount() - 5) { - Log.d(TAG, "loading more articles..."); - - new Handler().postDelayed(() -> refresh(true), 100); - } + m_listener.onArticleSelected(article, false); } } }); @@ -140,164 +124,12 @@ public class ArticlePager extends androidx.fragment.app.Fragment { return view; } - protected void refresh(final boolean append) { - // - } - - /* protected void refresh(final boolean append) { - - if (!append) { - m_lazyLoadDisabled = false; - } - - m_refreshInProgress = true; - - @SuppressLint("StaticFieldLeak") HeadlinesRequest req = new HeadlinesRequest(getActivity().getApplicationContext(), m_activity, Application.getArticles()) { - @Override - protected void onPostExecute(JsonElement result) { - if (isDetached() || !isAdded()) return; - - if (!append) { - m_pager.setCurrentItem(0, false); - Application.getArticles().clear(); - } - - super.onPostExecute(result); - - m_refreshInProgress = false; - - if (result != null) { - - if (m_firstIdChanged) { - m_lazyLoadDisabled = true; - } - - if (m_firstIdChanged && !(m_activity instanceof DetailActivity && !m_activity.isPortrait())) { - //m_activity.toast(R.string.headlines_row_top_changed); - - Snackbar.make(getView(), R.string.headlines_row_top_changed, Snackbar.LENGTH_LONG) - .setAction(R.string.reload, v -> refresh(false)).show(); - } - - if (m_amountLoaded < Integer.parseInt(m_prefs.getString("headlines_request_size", "15"))) { - m_lazyLoadDisabled = true; - } - - ArticlePager.this.m_firstId = m_firstId; - - try { - m_adapter.notifyDataSetChanged(); - } catch (BadParcelableException e) { - if (getActivity() != null) { - getActivity().finish(); - return; - } - } - - if (!Application.getArticles().isEmpty()) { - if (Application.getArticles().getById(m_articleId) == null) { - Article article = Application.getArticles().get(0); - - m_articleId = article.id; - m_listener.onArticleSelected(article, false); - } - } - - } else { - m_lazyLoadDisabled = true; - - if (m_lastError == ApiCommon.ApiError.LOGIN_FAILED) { - m_activity.login(true); - } else { - m_activity.toast(getErrorMessage()); - } - } - } - }; - - final Feed feed = m_feed; - - final String sessionId = m_activity.getSessionId(); - int skip = 0; - - if (append) { - // adaptive, all_articles, marked, published, unread - String viewMode = m_activity.getViewMode(); - int numUnread = 0; - int numAll = Application.getArticles().size(); - - for (Article a : Application.getArticles()) { - if (a.unread) ++numUnread; - } - - if ("marked".equals(viewMode)) { - skip = numAll; - } else if ("published".equals(viewMode)) { - skip = numAll; - } else if ("unread".equals(viewMode)) { - skip = numUnread; - } else if (m_searchQuery != null && !m_searchQuery.isEmpty()) { - skip = numAll; - } else if ("adaptive".equals(viewMode)) { - skip = numUnread > 0 ? numUnread : numAll; - } else { - skip = numAll; - } - } - - final int fskip = skip; - - req.setOffset(skip); - - HashMap<String,String> map = new HashMap<>(); - map.put("op", "getHeadlines"); - map.put("sid", sessionId); - map.put("feed_id", String.valueOf(feed.id)); - map.put("show_excerpt", "true"); - map.put("excerpt_length", String.valueOf(CommonActivity.EXCERPT_MAX_LENGTH)); - map.put("show_content", "true"); - map.put("include_attachments", "true"); - map.put("limit", m_prefs.getString("headlines_request_size", "15")); - map.put("offset", String.valueOf(0)); - map.put("view_mode", m_activity.getViewMode()); - map.put("skip", String.valueOf(fskip)); - map.put("include_nested", "true"); - map.put("has_sandbox", "true"); - map.put("order_by", m_activity.getSortMode()); - - if (feed.is_cat) map.put("is_cat", "true"); - - if (m_searchQuery != null && !m_searchQuery.isEmpty()) { - map.put("search", m_searchQuery); - map.put("search_mode", ""); - map.put("match_on", "both"); - } - - if (m_firstId > 0) map.put("check_first_id", String.valueOf(m_firstId)); - - if (m_activity.getApiLevel() >= 12) { - map.put("include_header", "true"); - } - - if (m_prefs.getBoolean("enable_image_downsampling", false)) { - if (m_prefs.getBoolean("always_downsample_images", false) || !m_activity.isWifiConnected()) { - map.put("resize_width", String.valueOf(m_activity.getResizeWidth())); - } - } - - Log.d(TAG, "[AP] request more headlines, firstId=" + m_firstId); - - req.execute(map); - } */ - @Override public void onAttach(@NonNull Activity activity) { super.onAttach(activity); m_listener = (HeadlinesEventListener)activity; m_activity = (OnlineActivity)activity; - - m_prefs = PreferenceManager.getDefaultSharedPreferences(getActivity().getApplicationContext()); } @SuppressLint("NewApi") diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/CommonActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/CommonActivity.java index cdc261b7..5fac1f5b 100755 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/CommonActivity.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/CommonActivity.java @@ -330,22 +330,6 @@ public class CommonActivity extends AppCompatActivity implements SharedPreferenc }); } - protected void preloadUriIfAllowed(Uri uri) { - boolean enableCustomTabs = m_prefs.getBoolean("enable_custom_tabs", true); - - if (m_customTabClient != null && enableCustomTabs) { - ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); - NetworkInfo info = cm.getActiveNetworkInfo(); - - if (info != null && info.isConnected() && info.getType() == ConnectivityManager.TYPE_WIFI) { - CustomTabsSession session = getCustomTabSession(); - session.mayLaunchUrl(uri, null, null); - - //toast("Preloading: " + uri.toString()); - } - } - } - protected Intent getShareIntent(String text, String subject) { Intent shareIntent = new Intent(Intent.ACTION_SEND); shareIntent.setType("text/plain"); 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 048156ce..f0716443 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 @@ -157,7 +157,6 @@ public class DetailActivity extends OnlineActivity implements HeadlinesEventList ArticlePager ap = new ArticlePager(); ap.initialize(openedArticleId, feed); - ap.setSearchQuery(searchQuery); ft.replace(R.id.article_fragment, ap, FRAG_ARTICLE); @@ -280,12 +279,6 @@ public class DetailActivity extends OnlineActivity implements HeadlinesEventList saveArticleUnread(article); } - try { - preloadUriIfAllowed(Uri.parse(article.link)); - } catch (Exception e) { - e.printStackTrace(); - } - if (!getSupportActionBar().isShowing()) getSupportActionBar().show(); if (open) { 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 b98aa6c8..52fe39c9 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 @@ -459,11 +459,11 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment implements new Handler().postDelayed(() -> m_activity.refresh(false), 100); } - /* int lastVisibleItem = m_layoutManager.findLastVisibleItemPosition(); + int lastVisibleItem = m_layoutManager.findLastVisibleItemPosition(); if (lastVisibleItem >= Application.getArticles().size() - 5) { refresh(true); - } */ + } } } @@ -493,8 +493,8 @@ public class HeadlinesFragment extends androidx.fragment.app.Fragment implements } } - if (lastVisibleItem >= Application.getArticles().size() - 5) - new Handler().postDelayed(() -> refresh(true), 1000); + /* if (lastVisibleItem >= Application.getArticles().size() - 5) + new Handler().postDelayed(() -> refresh(true), 1000); */ } }); 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 911d8ed7..fac3c0c0 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,14 +528,15 @@ 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(); // data might be null if detailactivity crashed - if (data != null && data.getExtras() != null) { + if (data != null) { int activeArticleId = data.getIntExtra("activeArticleId", 0); Log.d(TAG, "got back from detail activity, scrolling to id=" + activeArticleId); - hf.scrollToArticleId(activeArticleId); } } 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 ec51cc98..22c23ea1 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 @@ -1190,12 +1190,6 @@ article.score = Integer.parseInt(edit.getText().toString()); if (hf != null) { hf.refresh(false); } - - ArticlePager af = (ArticlePager) getSupportFragmentManager().findFragmentByTag(FRAG_ARTICLE); - - if (af != null) { - af.refresh(false); - } } } |