summaryrefslogtreecommitdiff
path: root/org.fox.ttrss/src/main/java
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2020-10-02 15:16:55 +0300
committerAndrew Dolgov <[email protected]>2020-10-02 15:16:55 +0300
commit39d707061fc481ca8163444f224339fe6b2314b1 (patch)
treed0da14ab032ef09260cd289842320970a2e6d4ac /org.fox.ttrss/src/main/java
parent1a1051caee2eeb2ea265c3db7f033731252c9c49 (diff)
use coordinator layout / appbarlayout to deal with collapsing toolbars and article header
Diffstat (limited to 'org.fox.ttrss/src/main/java')
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/ArticleFragment.java25
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java42
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineArticleFragment.java28
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineHeadlinesFragment.java32
-rw-r--r--org.fox.ttrss/src/main/java/org/fox/ttrss/util/NoChildFocusScrollView.java33
-rw-r--r--org.fox.ttrss/src/main/java/org/fox/ttrss/util/NotifyingScrollView.java45
6 files changed, 26 insertions, 179 deletions
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticleFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticleFragment.java
index 132810b8..cdb424c3 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticleFragment.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticleFragment.java
@@ -25,14 +25,14 @@ import android.webkit.WebView.HitTestResult;
import android.webkit.WebViewClient;
import android.widget.FrameLayout;
import android.widget.ImageView;
-import android.widget.ScrollView;
import android.widget.TextView;
+import androidx.core.widget.NestedScrollView;
+
import com.shamanland.fab.ShowHideOnScroll;
import org.fox.ttrss.types.Article;
import org.fox.ttrss.types.Attachment;
-import org.fox.ttrss.util.NotifyingScrollView;
import java.net.MalformedURLException;
import java.net.URL;
@@ -40,7 +40,6 @@ import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
-import androidx.appcompat.app.ActionBar;
import icepick.State;
public class ArticleFragment extends StateSavedFragment {
@@ -184,27 +183,9 @@ public class ArticleFragment extends StateSavedFragment {
return view;
} */
- NotifyingScrollView scrollView = view.findViewById(R.id.article_scrollview);
+ NestedScrollView scrollView = view.findViewById(R.id.article_scrollview);
m_fab = view.findViewById(R.id.article_fab);
- if (scrollView != null && m_activity.isSmallScreen()) {
- view.findViewById(R.id.article_heading_spacer).setVisibility(View.VISIBLE);
-
- scrollView.setOnScrollChangedListener(new NotifyingScrollView.OnScrollChangedListener() {
- @Override
- public void onScrollChanged(ScrollView who, int l, int t, int oldl, int oldt) {
- ActionBar ab = m_activity.getSupportActionBar();
-
- if (t >= oldt && t >= ab.getHeight()) {
- ab.hide();
- } else if (t <= ab.getHeight() || oldt - t >= 10) {
- ab.show();
- }
-
- }
- });
- }
-
if (scrollView != null && m_fab != null) {
if (m_prefs.getBoolean("enable_article_fab", true)) {
scrollView.setOnTouchListener(new ShowHideOnScroll(m_fab));
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 71fbdd08..6d04096b 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
@@ -50,6 +50,16 @@ import android.widget.ProgressBar;
import android.widget.RelativeLayout;
import android.widget.TextView;
+import androidx.core.app.ActivityCompat;
+import androidx.core.app.ActivityOptionsCompat;
+import androidx.core.view.ViewCompat;
+import androidx.recyclerview.widget.DefaultItemAnimator;
+import androidx.recyclerview.widget.DividerItemDecoration;
+import androidx.recyclerview.widget.ItemTouchHelper;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
+
import com.amulyakhare.textdrawable.TextDrawable;
import com.amulyakhare.textdrawable.util.ColorGenerator;
import com.bumptech.glide.Glide;
@@ -81,16 +91,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.TimeZone;
-import androidx.appcompat.app.ActionBar;
-import androidx.core.app.ActivityCompat;
-import androidx.core.app.ActivityOptionsCompat;
-import androidx.core.view.ViewCompat;
-import androidx.recyclerview.widget.DefaultItemAnimator;
-import androidx.recyclerview.widget.DividerItemDecoration;
-import androidx.recyclerview.widget.ItemTouchHelper;
-import androidx.recyclerview.widget.LinearLayoutManager;
-import androidx.recyclerview.widget.RecyclerView;
-import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import icepick.State;
import jp.wasabeef.glide.transformations.CropCircleTransformation;
@@ -431,18 +431,16 @@ public class HeadlinesFragment extends StateSavedFragment {
fab.setVisibility(View.GONE);
}
- if (m_activity.isSmallScreen()) {
+ /*if (m_activity.isSmallScreen()) {
View layout = inflater.inflate(R.layout.headlines_heading_spacer, m_list, false);
m_adapter.addHeaderView(layout);
m_swipeLayout.setProgressViewOffset(false, 0,
m_activity.getResources().getDimensionPixelSize(R.dimen.abc_action_bar_default_height_material) +
m_activity.getResources().getDimensionPixelSize(R.dimen.abc_action_bar_default_padding_end_material) + 15);
- }
+ }*/
m_list.setOnScrollListener(new RecyclerView.OnScrollListener() {
- boolean m_forcePhoneLayout = m_prefs.getBoolean("force_phone_layout", false);
-
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
@@ -499,22 +497,6 @@ public class HeadlinesFragment extends StateSavedFragment {
}
}
- if ((m_forcePhoneLayout || !m_activity.isTablet()) && m_articles.size() > 0) {
- m_amountScrolled += dy;
- ActionBar bar = m_activity.getSupportActionBar();
-
- if (dy > 0 && m_amountScrolled >= m_scrollToToggleBar) {
- bar.hide();
- m_amountScrolled = 0;
- } else if (dy < 0 && m_amountScrolled <= -m_scrollToToggleBar) {
- bar.show();
- m_amountScrolled = 0;
- }
-
- }
-
- //Log.d(TAG, "onScrolled: " + m_refreshInProgress + " " + m_lazyLoadDisabled + " " + lastVisibleItem + " " + m_articles.size());
-
if (!m_refreshInProgress && !m_lazyLoadDisabled && lastVisibleItem >= m_articles.size() - 5) {
m_refreshInProgress = true;
new Handler().postDelayed(new Runnable() {
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineArticleFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineArticleFragment.java
index eae50dcb..efeb6b71 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineArticleFragment.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineArticleFragment.java
@@ -26,14 +26,15 @@ import android.webkit.WebView.HitTestResult;
import android.webkit.WebViewClient;
import android.widget.FrameLayout;
import android.widget.ImageView;
-import android.widget.ScrollView;
import android.widget.TextView;
+import androidx.core.widget.NestedScrollView;
+import androidx.fragment.app.Fragment;
+
import com.shamanland.fab.ShowHideOnScroll;
import org.fox.ttrss.R;
import org.fox.ttrss.util.ImageCacheService;
-import org.fox.ttrss.util.NotifyingScrollView;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
@@ -46,9 +47,6 @@ import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
-import androidx.appcompat.app.ActionBar;
-import androidx.fragment.app.Fragment;
-
public class OfflineArticleFragment extends Fragment {
private final String TAG = this.getClass().getSimpleName();
@@ -209,27 +207,9 @@ public class OfflineArticleFragment extends Fragment {
final String link = m_cursor.getString(m_cursor.getColumnIndex("link"));
- NotifyingScrollView scrollView = view.findViewById(R.id.article_scrollview);
+ NestedScrollView scrollView = view.findViewById(R.id.article_scrollview);
m_fab = view.findViewById(R.id.article_fab);
- if (scrollView != null && m_activity.isSmallScreen()) {
- view.findViewById(R.id.article_heading_spacer).setVisibility(View.VISIBLE);
-
- scrollView.setOnScrollChangedListener(new NotifyingScrollView.OnScrollChangedListener() {
- @Override
- public void onScrollChanged(ScrollView who, int l, int t, int oldl, int oldt) {
- ActionBar ab = m_activity.getSupportActionBar();
-
- if (t >= oldt && t >= ab.getHeight()) {
- ab.hide();
- } else if (t <= ab.getHeight() || oldt - t >= 10) {
- ab.show();
- }
-
- }
- });
- }
-
if (scrollView != null && m_fab != null) {
if (m_prefs.getBoolean("enable_article_fab", true)) {
scrollView.setOnTouchListener(new ShowHideOnScroll(m_fab));
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 811cc015..d488a42b 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
@@ -43,6 +43,13 @@ import android.widget.ProgressBar;
import android.widget.RelativeLayout;
import android.widget.TextView;
+import androidx.core.app.ActivityCompat;
+import androidx.core.app.ActivityOptionsCompat;
+import androidx.core.view.ViewCompat;
+import androidx.cursoradapter.widget.SimpleCursorAdapter;
+import androidx.fragment.app.Fragment;
+import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
+
import com.amulyakhare.textdrawable.TextDrawable;
import com.amulyakhare.textdrawable.util.ColorGenerator;
import com.bumptech.glide.Glide;
@@ -70,12 +77,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.TimeZone;
-import androidx.core.app.ActivityCompat;
-import androidx.core.app.ActivityOptionsCompat;
-import androidx.core.view.ViewCompat;
-import androidx.cursoradapter.widget.SimpleCursorAdapter;
-import androidx.fragment.app.Fragment;
-import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import jp.wasabeef.glide.transformations.CropCircleTransformation;
public class OfflineHeadlinesFragment extends Fragment implements OnItemClickListener, AbsListView.OnScrollListener {
@@ -105,9 +106,6 @@ public class OfflineHeadlinesFragment extends Fragment implements OnItemClickLis
private boolean m_compactLayoutMode = false;
private ListView m_list;
- private int m_listPreviousVisibleItem;
-
- boolean m_forcePhoneLayout;
public void initialize(int feedId, boolean isCat, boolean compactMode) {
m_feedId = feedId;
@@ -358,8 +356,6 @@ public class OfflineHeadlinesFragment extends Fragment implements OnItemClickLis
m_list = view.findViewById(R.id.headlines_list);
- m_forcePhoneLayout = m_prefs.getBoolean("force_phone_layout", false);
-
FloatingActionButton fab = view.findViewById(R.id.headlines_fab);
fab.setVisibility(View.GONE);
@@ -1323,20 +1319,6 @@ public class OfflineHeadlinesFragment extends Fragment implements OnItemClickLis
}
}
}
-
- if (m_forcePhoneLayout || !m_activity.isTablet()) {
- if (m_adapter.getCount() > 0) {
- if (firstVisibleItem > m_listPreviousVisibleItem) {
- m_activity.getSupportActionBar().hide();
- } else if (firstVisibleItem < m_listPreviousVisibleItem) {
- m_activity.getSupportActionBar().show();
- }
- } else {
- m_activity.getSupportActionBar().show();
- }
-
- m_listPreviousVisibleItem = firstVisibleItem;
- }
}
@Override
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/util/NoChildFocusScrollView.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/util/NoChildFocusScrollView.java
deleted file mode 100644
index d7fafc80..00000000
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/util/NoChildFocusScrollView.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package org.fox.ttrss.util;
-
-import android.content.Context;
-import android.util.AttributeSet;
-import android.view.View;
-import android.webkit.WebView;
-
-public class NoChildFocusScrollView extends NotifyingScrollView {
-
- public NoChildFocusScrollView(Context context) {
- super(context);
- // TODO Auto-generated constructor stub
- }
-
-
- public NoChildFocusScrollView(Context context, AttributeSet attrs) {
- super(context, attrs);
- // TODO Auto-generated constructor stub
- }
-
- public NoChildFocusScrollView(Context context, AttributeSet attrs,
- int defStyle) {
- super(context, attrs, defStyle);
- // TODO Auto-generated constructor stub
- }
-
- @Override
- public void requestChildFocus(View child, View focused) {
- if (focused instanceof WebView )
- return;
- super.requestChildFocus(child, focused);
- }
-}
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/util/NotifyingScrollView.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/util/NotifyingScrollView.java
deleted file mode 100644
index e128856f..00000000
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/util/NotifyingScrollView.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package org.fox.ttrss.util;
-
-import android.content.Context;
-import android.util.AttributeSet;
-import android.widget.ScrollView;
-
-/**
- * @author Cyril Mottier
- */
-public class NotifyingScrollView extends ScrollView {
-
- /**
- * @author Cyril Mottier
- */
- public interface OnScrollChangedListener {
- void onScrollChanged(ScrollView who, int l, int t, int oldl, int oldt);
- }
-
- private OnScrollChangedListener mOnScrollChangedListener;
-
- public NotifyingScrollView(Context context) {
- super(context);
- }
-
- public NotifyingScrollView(Context context, AttributeSet attrs) {
- super(context, attrs);
- }
-
- public NotifyingScrollView(Context context, AttributeSet attrs, int defStyle) {
- super(context, attrs, defStyle);
- }
-
- @Override
- protected void onScrollChanged(int l, int t, int oldl, int oldt) {
- super.onScrollChanged(l, t, oldl, oldt);
- if (mOnScrollChangedListener != null) {
- mOnScrollChangedListener.onScrollChanged(this, l, t, oldl, oldt);
- }
- }
-
- public void setOnScrollChangedListener(OnScrollChangedListener listener) {
- mOnScrollChangedListener = listener;
- }
-
-} \ No newline at end of file