summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2020-10-03 09:01:59 +0300
committerAndrew Dolgov <[email protected]>2020-10-03 09:01:59 +0300
commit839f09b06e9175397b8f241fed8f5005eb064dd8 (patch)
tree0e6ebccc444c6e86abe97a371587aa3f84f31b53
parent4dcb992ce68f5ca050749cc9dfacd857a2f5c282 (diff)
move fab to activity view out of specific fragments
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/ArticleFragment.java33
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/DetailActivity.java17
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java23
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/MasterActivity.java18
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineArticleFragment.java41
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineDetailActivity.java32
-rw-r--r--org.fox.ttrss/src/main/java/org/fox/ttrss/util/DetailActivityScrollingViewBehavior.java71
-rw-r--r--org.fox.ttrss/src/main/res/layout-sw600dp-land/activity_master.xml25
-rw-r--r--org.fox.ttrss/src/main/res/layout-sw600dp-port/activity_detail.xml43
-rw-r--r--org.fox.ttrss/src/main/res/layout-sw600dp/activity_detail.xml (renamed from org.fox.ttrss/src/main/res/layout-sw600dp-land/activity_detail.xml)26
-rw-r--r--org.fox.ttrss/src/main/res/layout/activity_detail.xml8
-rw-r--r--org.fox.ttrss/src/main/res/layout/activity_detail_phone.xml11
-rw-r--r--org.fox.ttrss/src/main/res/layout/activity_master_phone.xml27
-rwxr-xr-xorg.fox.ttrss/src/main/res/layout/fragment_article.xml12
-rwxr-xr-xorg.fox.ttrss/src/main/res/layout/fragment_headlines.xml19
15 files changed, 216 insertions, 190 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 40250046..3a5c52a5 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
@@ -27,8 +27,6 @@ import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.TextView;
-import androidx.core.widget.NestedScrollView;
-
import org.fox.ttrss.types.Article;
import org.fox.ttrss.types.Attachment;
@@ -51,7 +49,7 @@ public class ArticleFragment extends StateSavedFragment {
protected FrameLayout m_customViewContainer;
protected View m_contentView;
protected FSVideoChromeClient m_chromeClient;
- protected View m_fab;
+ //protected View m_fab;
protected int m_articleFontSize;
protected int m_articleSmallFontSize;
protected boolean m_acceleratedWebview = true;
@@ -85,7 +83,7 @@ public class ArticleFragment extends StateSavedFragment {
m_customViewContainer.setVisibility(View.VISIBLE);
m_customViewContainer.addView(view);
- if (m_fab != null) m_fab.setVisibility(View.GONE);
+ //if (m_fab != null) m_fab.setVisibility(View.GONE);
m_activity.showSidebar(false);
@@ -111,8 +109,8 @@ public class ArticleFragment extends StateSavedFragment {
m_customViewContainer.removeView(m_customView);
m_callback.onCustomViewHidden();
- if (m_fab != null && m_prefs.getBoolean("enable_article_fab", true))
- m_fab.setVisibility(View.VISIBLE);
+ /*if (m_fab != null && m_prefs.getBoolean("enable_article_fab", true))
+ m_fab.setVisibility(View.VISIBLE);*/
m_customView = null;
@@ -181,29 +179,6 @@ public class ArticleFragment extends StateSavedFragment {
return view;
} */
- NestedScrollView scrollView = view.findViewById(R.id.article_scrollview);
- m_fab = view.findViewById(R.id.article_fab);
-
- if (scrollView != null && m_fab != null) {
- if (m_prefs.getBoolean("enable_article_fab", true)) {
- //scrollView.setOnTouchListener(new ShowHideOnScroll(m_fab));
-
- m_fab.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View view) {
- try {
- m_activity.openUri(Uri.parse(m_article.link));
- } catch (Exception e) {
- e.printStackTrace();
- m_activity.toast(R.string.error_other_error);
- }
- }
- });
- } else {
- m_fab.setVisibility(View.GONE);
- }
- }
-
m_articleFontSize = Integer.parseInt(m_prefs.getString("article_font_size_sp", "16"));
m_articleSmallFontSize = Math.max(10, Math.min(18, m_articleFontSize - 2));
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 3452ffa8..3144fc74 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
@@ -13,6 +13,8 @@ import android.util.Log;
import android.view.MenuItem;
import android.view.View;
+import com.google.android.material.floatingactionbutton.FloatingActionButton;
+
import org.fox.ttrss.types.Article;
import org.fox.ttrss.types.ArticleList;
import org.fox.ttrss.types.Feed;
@@ -60,6 +62,21 @@ public class DetailActivity extends OnlineActivity implements HeadlinesEventList
findViewById(R.id.headlines_fragment).setVisibility(View.GONE);
}
+ FloatingActionButton fab = findViewById(R.id.detail_fab);
+
+ if (fab != null && m_prefs.getBoolean("enable_article_fab", true)) {
+ fab.show();
+
+ fab.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ if (m_activeArticle != null) {
+ openUri(Uri.parse(m_activeArticle.link));
+ }
+ }
+ });
+ }
+
if (savedInstanceState == null) {
Intent i = getIntent();
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 9f17abb7..b060871b 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
@@ -58,7 +58,6 @@ import com.bumptech.glide.load.resource.drawable.GlideDrawable;
import com.bumptech.glide.request.RequestListener;
import com.bumptech.glide.request.target.GlideDrawableImageViewTarget;
import com.bumptech.glide.request.target.Target;
-import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.snackbar.Snackbar;
import com.google.gson.JsonElement;
@@ -122,7 +121,6 @@ public class HeadlinesFragment extends StateSavedFragment {
@State boolean m_compactLayoutMode = false;
private RecyclerView m_list;
private LinearLayoutManager m_layoutManager;
- private FloatingActionButton m_fab;
private MediaPlayer m_mediaPlayer;
private TextureView m_activeTexture;
@@ -337,8 +335,6 @@ public class HeadlinesFragment extends StateSavedFragment {
m_list.setAdapter(m_adapter);
- m_fab = view.findViewById(R.id.headlines_fab);
-
if (m_prefs.getBoolean("headlines_swipe_to_dismiss", true) && !m_prefs.getBoolean("headlines_mark_read_scroll", false) ) {
ItemTouchHelper swipeHelper = new ItemTouchHelper(new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.RIGHT) {
@@ -412,17 +408,6 @@ public class HeadlinesFragment extends StateSavedFragment {
}
- if (! (getActivity() instanceof DetailActivity)) {
- m_fab.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- refresh(false);
- }
- });
- } else {
- m_fab.hide();
- }
-
m_list.setOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
@@ -459,14 +444,6 @@ public class HeadlinesFragment extends StateSavedFragment {
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
- if (! (getActivity() instanceof DetailActivity)) {
- if (dy > 0) {
- m_fab.hide();
- } else if (dy < 0) {
- m_fab.show();
- }
- }
-
int firstVisibleItem = m_layoutManager.findFirstVisibleItemPosition();
int lastVisibleItem = m_layoutManager.findLastVisibleItemPosition();
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 44a9a7c3..e4f11757 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
@@ -16,6 +16,7 @@ import android.view.Gravity;
import android.view.MenuItem;
import android.view.View;
+import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.gson.JsonElement;
import org.fox.ttrss.types.Article;
@@ -205,6 +206,23 @@ public class MasterActivity extends OnlineActivity implements HeadlinesEventList
m_drawerLayout.openDrawer(Gravity.START);
}
}
+
+ FloatingActionButton fab = findViewById(R.id.master_fab);
+
+ if (fab != null) {
+ fab.show();
+
+ fab.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ HeadlinesFragment hf = (HeadlinesFragment) getSupportFragmentManager().findFragmentByTag(FRAG_HEADLINES);
+
+ if (hf != null && hf.isAdded()) {
+ hf.refresh(false);
+ }
+ }
+ });
+ }
}
protected void onPostCreate(Bundle savedInstanceState) {
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 f34449f5..4f328bcb 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
@@ -28,9 +28,6 @@ import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.TextView;
-import androidx.core.widget.NestedScrollView;
-import androidx.fragment.app.Fragment;
-
import org.fox.ttrss.R;
import org.fox.ttrss.util.ImageCacheService;
import org.jsoup.Jsoup;
@@ -39,12 +36,13 @@ import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.net.MalformedURLException;
-import java.net.URI;
import java.net.URL;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
+import androidx.fragment.app.Fragment;
+
public class OfflineArticleFragment extends Fragment {
private final String TAG = this.getClass().getSimpleName();
@@ -59,7 +57,7 @@ public class OfflineArticleFragment extends Fragment {
protected FrameLayout m_customViewContainer;
protected View m_contentView;
protected FSVideoChromeClient m_chromeClient;
- protected View m_fab;
+ //protected View m_fab;
public void initialize(int articleId) {
m_articleId = articleId;
@@ -90,7 +88,7 @@ public class OfflineArticleFragment extends Fragment {
m_customViewContainer.setVisibility(View.VISIBLE);
m_customViewContainer.addView(view);
- if (m_fab != null) m_fab.setVisibility(View.GONE);
+ //if (m_fab != null) m_fab.setVisibility(View.GONE);
m_activity.showSidebar(false);
@@ -116,8 +114,8 @@ public class OfflineArticleFragment extends Fragment {
m_customViewContainer.removeView(m_customView);
m_callback.onCustomViewHidden();
- if (m_fab != null && m_prefs.getBoolean("enable_article_fab", true))
- m_fab.setVisibility(View.VISIBLE);
+ /*if (m_fab != null && m_prefs.getBoolean("enable_article_fab", true))
+ m_fab.setVisibility(View.VISIBLE);*/
m_customView = null;
@@ -205,33 +203,6 @@ public class OfflineArticleFragment extends Fragment {
final String link = m_cursor.getString(m_cursor.getColumnIndex("link"));
- NestedScrollView scrollView = view.findViewById(R.id.article_scrollview);
- m_fab = view.findViewById(R.id.article_fab);
-
- if (scrollView != null && m_fab != null) {
- if (m_prefs.getBoolean("enable_article_fab", true)) {
- //scrollView.setOnTouchListener(new ShowHideOnScroll(m_fab));
-
- m_fab.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View view) {
- try {
- URL url = new URL(link.trim());
- String uri = new URI(url.getProtocol(), url.getUserInfo(), url.getHost(),
- url.getPort(), url.getPath(), url.getQuery(), url.getRef()).toString();
-
- m_activity.openUri(Uri.parse(uri));
- } catch (Exception e) {
- e.printStackTrace();
- m_activity.toast(R.string.error_other_error);
- }
- }
- });
- } else {
- m_fab.setVisibility(View.GONE);
- }
- }
-
int articleFontSize = Integer.parseInt(m_prefs.getString("article_font_size_sp", "16"));
int articleSmallFontSize = Math.max(10, Math.min(18, articleFontSize - 2));
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineDetailActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineDetailActivity.java
index 9fcf6072..22d7e362 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineDetailActivity.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineDetailActivity.java
@@ -5,6 +5,7 @@ import android.content.Intent;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.database.sqlite.SQLiteStatement;
+import android.net.Uri;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.provider.BaseColumns;
@@ -12,6 +13,8 @@ import android.util.Log;
import android.view.MenuItem;
import android.view.View;
+import com.google.android.material.floatingactionbutton.FloatingActionButton;
+
import org.fox.ttrss.Application;
import org.fox.ttrss.R;
@@ -28,7 +31,8 @@ public class OfflineDetailActivity extends OfflineActivity implements OfflineHea
private ActionBarDrawerToggle m_drawerToggle;
private DrawerLayout m_drawerLayout;
-
+ private int m_activeArticleId;
+
@SuppressLint("NewApi")
@Override
public void onCreate(Bundle savedInstanceState) {
@@ -125,7 +129,29 @@ public class OfflineDetailActivity extends OfflineActivity implements OfflineHea
}
}
- }
+ }
+
+ FloatingActionButton fab = findViewById(R.id.detail_fab);
+
+ if (fab != null && m_prefs.getBoolean("enable_article_fab", true)) {
+ fab.show();
+
+ fab.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ if (m_activeArticleId != 0) {
+ Cursor article = getArticleById(m_activeArticleId);
+
+ if (article != null) {
+ openUri(Uri.parse(article.getString(article.getColumnIndex("link"))));
+
+ article.close();
+ }
+ }
+ }
+ });
+ }
+
}
protected void onPostCreate(Bundle savedInstanceState) {
@@ -153,6 +179,8 @@ public class OfflineDetailActivity extends OfflineActivity implements OfflineHea
@Override
public void onArticleSelected(int articleId, boolean open) {
+ m_activeArticleId = articleId;
+
if (!open) {
SQLiteStatement stmt = getDatabase().compileStatement(
"UPDATE articles SET modified = 1, unread = 0 " + "WHERE " + BaseColumns._ID
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/util/DetailActivityScrollingViewBehavior.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/util/DetailActivityScrollingViewBehavior.java
new file mode 100644
index 00000000..85e8ae4b
--- /dev/null
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/util/DetailActivityScrollingViewBehavior.java
@@ -0,0 +1,71 @@
+package org.fox.ttrss.util;
+
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.preference.PreferenceManager;
+import android.util.AttributeSet;
+import android.view.View;
+
+import com.google.android.material.appbar.AppBarLayout;
+import com.google.android.material.floatingactionbutton.FloatingActionButton;
+
+import java.util.List;
+
+import androidx.annotation.NonNull;
+import androidx.coordinatorlayout.widget.CoordinatorLayout;
+import androidx.core.view.ViewCompat;
+
+public class DetailActivityScrollingViewBehavior extends AppBarLayout.ScrollingViewBehavior {
+
+ private SharedPreferences m_prefs;
+
+ public DetailActivityScrollingViewBehavior(Context context, AttributeSet attrs) {
+ super(context, attrs);
+
+ m_prefs = PreferenceManager
+ .getDefaultSharedPreferences(context);
+ }
+
+ @Override
+ public boolean layoutDependsOn(CoordinatorLayout parent, View child, View dependency) {
+ return super.layoutDependsOn(parent, child, dependency) ||
+ dependency instanceof FloatingActionButton;
+ }
+
+ @Override
+ public boolean onStartNestedScroll(@NonNull CoordinatorLayout coordinatorLayout,
+ @NonNull View child, @NonNull View directTargetChild,
+ @NonNull View target, int axes, int type) {
+ // Ensure we react to vertical scrolling
+ return axes == ViewCompat.SCROLL_AXIS_VERTICAL ||
+ super.onStartNestedScroll(coordinatorLayout, child, directTargetChild, target, axes, type);
+ }
+
+ @Override
+ public void onNestedPreScroll(@NonNull CoordinatorLayout coordinatorLayout,
+ @NonNull View child, @NonNull View target, int dx, int dy,
+ @NonNull int[] consumed, int type) {
+ super.onNestedPreScroll(coordinatorLayout, child, target, dx, dy, consumed, type);
+
+ if (m_prefs.getBoolean("enable_article_fab", true)) {
+ if (dy > 0) {
+ // User scrolled down -> hide the FAB
+ List<View> dependencies = coordinatorLayout.getDependencies(child);
+ for (View view : dependencies) {
+ if (view instanceof FloatingActionButton) {
+ ((FloatingActionButton) view).hide();
+ }
+ }
+ } else if (dy < 0) {
+ // User scrolled up -> show the FAB
+ List<View> dependencies = coordinatorLayout.getDependencies(child);
+ for (View view : dependencies) {
+ if (view instanceof FloatingActionButton) {
+ ((FloatingActionButton) view).show();
+ }
+ }
+ }
+ }
+
+ }
+} \ No newline at end of file
diff --git a/org.fox.ttrss/src/main/res/layout-sw600dp-land/activity_master.xml b/org.fox.ttrss/src/main/res/layout-sw600dp-land/activity_master.xml
index c89f3baa..9ba663f6 100644
--- a/org.fox.ttrss/src/main/res/layout-sw600dp-land/activity_master.xml
+++ b/org.fox.ttrss/src/main/res/layout-sw600dp-land/activity_master.xml
@@ -2,6 +2,7 @@
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fitsSystemWindows="true"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<include layout="@layout/toolbar" android:id="@+id/toolbar" />
@@ -29,16 +30,30 @@
android:background="?feedlistBackground" >
</FrameLayout>
- <FrameLayout
+ <androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_width="0dp"
android:layout_weight="0.75"
- android:id="@+id/headlines_fragment"
- android:background="?headlinesBackground"
android:elevation="4dp"
+ android:background="?headlinesBackground"
android:layout_height="match_parent">
- </FrameLayout>
- </LinearLayout>
+ <FrameLayout
+ android:layout_width="match_parent"
+ android:id="@+id/headlines_fragment"
+ app:layout_behavior=".util.FabAwareScrollingViewBehavior"
+ android:layout_height="match_parent"/>
+
+ <com.google.android.material.floatingactionbutton.FloatingActionButton
+ android:id="@+id/master_fab"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="end|bottom"
+ android:visibility="gone"
+ android:src="@drawable/ic_refresh"
+ android:layout_margin="16dp" />
+ </androidx.coordinatorlayout.widget.CoordinatorLayout>
+
+ </LinearLayout>
</RelativeLayout>
diff --git a/org.fox.ttrss/src/main/res/layout-sw600dp-port/activity_detail.xml b/org.fox.ttrss/src/main/res/layout-sw600dp-port/activity_detail.xml
deleted file mode 100644
index 47c84639..00000000
--- a/org.fox.ttrss/src/main/res/layout-sw600dp-port/activity_detail.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/headlines"
- android:fitsSystemWindows="true"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
-
- <include layout="@layout/toolbar" android:id="@+id/toolbar" />
-
- <FrameLayout
- android:id="@+id/sw600dp_anchor"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:visibility="gone" >
- </FrameLayout>
-
- <LinearLayout
- android:id="@+id/fragment_container"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:baselineAligned="false"
- android:orientation="horizontal"
- android:layout_below="@+id/toolbar">
-
- <FrameLayout
- android:paddingRight="4dp"
- android:id="@+id/headlines_fragment"
- android:layout_width="0dp"
- android:layout_height="match_parent"
- android:layout_weight="0.4"
- android:background="?headlinesBackground" >
- </FrameLayout>
-
- <FrameLayout
- android:id="@+id/article_fragment"
- android:layout_width="0dp"
- android:layout_height="match_parent"
- android:layout_weight="0.6"
- android:elevation="4dp"
- android:background="?articleBackground" >
- </FrameLayout>
- </LinearLayout>
-
-</RelativeLayout> \ No newline at end of file
diff --git a/org.fox.ttrss/src/main/res/layout-sw600dp-land/activity_detail.xml b/org.fox.ttrss/src/main/res/layout-sw600dp/activity_detail.xml
index 0e904edc..95215992 100644
--- a/org.fox.ttrss/src/main/res/layout-sw600dp-land/activity_detail.xml
+++ b/org.fox.ttrss/src/main/res/layout-sw600dp/activity_detail.xml
@@ -30,14 +30,30 @@
android:background="?headlinesBackground" >
</FrameLayout>
- <FrameLayout
- android:id="@+id/article_fragment"
+ <androidx.coordinatorlayout.widget.CoordinatorLayout
+ xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="0dp"
- android:layout_height="match_parent"
android:layout_weight="0.7"
android:elevation="4dp"
- android:background="?articleBackground" >
- </FrameLayout>
+ android:background="?articleBackground"
+ android:layout_height="match_parent">
+
+ <FrameLayout
+ android:layout_width="match_parent"
+ android:id="@+id/article_fragment"
+ app:layout_behavior=".util.DetailActivityScrollingViewBehavior"
+ android:layout_height="match_parent"/>
+
+ <com.google.android.material.floatingactionbutton.FloatingActionButton
+ android:id="@+id/detail_fab"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="end|bottom"
+ android:visibility="gone"
+ android:src="@drawable/ic_action_web_site"
+ android:layout_margin="16dp" />
+
+ </androidx.coordinatorlayout.widget.CoordinatorLayout>
</LinearLayout>
</LinearLayout> \ No newline at end of file
diff --git a/org.fox.ttrss/src/main/res/layout/activity_detail.xml b/org.fox.ttrss/src/main/res/layout/activity_detail.xml
index c35ab296..8f36bbd6 100644
--- a/org.fox.ttrss/src/main/res/layout/activity_detail.xml
+++ b/org.fox.ttrss/src/main/res/layout/activity_detail.xml
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent">
+xmlns:android="http://schemas.android.com/apk/res/android"
+android:layout_width="match_parent"
+android:layout_height="match_parent">
- <include layout="@layout/activity_detail_phone" />
+<include layout="@layout/activity_detail_phone" />
</FrameLayout> \ No newline at end of file
diff --git a/org.fox.ttrss/src/main/res/layout/activity_detail_phone.xml b/org.fox.ttrss/src/main/res/layout/activity_detail_phone.xml
index 157ad794..6d9a8dbd 100644
--- a/org.fox.ttrss/src/main/res/layout/activity_detail_phone.xml
+++ b/org.fox.ttrss/src/main/res/layout/activity_detail_phone.xml
@@ -10,6 +10,15 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
+ <com.google.android.material.floatingactionbutton.FloatingActionButton
+ android:id="@+id/detail_fab"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="end|bottom"
+ android:visibility="gone"
+ android:src="@drawable/ic_action_web_site"
+ android:layout_margin="16dp" />
+
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
@@ -20,7 +29,7 @@
<FrameLayout
android:id="@+id/article_fragment"
- app:layout_behavior="@string/appbar_scrolling_view_behavior"
+ app:layout_behavior=".util.DetailActivityScrollingViewBehavior"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?articleBackground">
diff --git a/org.fox.ttrss/src/main/res/layout/activity_master_phone.xml b/org.fox.ttrss/src/main/res/layout/activity_master_phone.xml
index d63d9fb9..6ae5064f 100644
--- a/org.fox.ttrss/src/main/res/layout/activity_master_phone.xml
+++ b/org.fox.ttrss/src/main/res/layout/activity_master_phone.xml
@@ -10,6 +10,15 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
+ <com.google.android.material.floatingactionbutton.FloatingActionButton
+ android:id="@+id/master_fab"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="end|bottom"
+ android:visibility="gone"
+ android:src="@drawable/ic_refresh"
+ android:layout_margin="16dp" />
+
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
@@ -20,29 +29,13 @@
<FrameLayout
android:id="@+id/headlines_fragment"
- app:layout_behavior="@string/appbar_scrolling_view_behavior"
+ app:layout_behavior=".util.FabAwareScrollingViewBehavior"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?headlinesBackground" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
- <!-- <FrameLayout
- android:fitsSystemWindows="true"
- android:animateLayoutChanges="true"
- android:layout_width="match_parent"
- android:layout_height="match_parent">
-
- <FrameLayout
- android:id="@+id/headlines_fragment"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:background="?headlinesBackground" />
-
- <include layout="@layout/toolbar" android:id="@+id/toolbar" />
-
- </FrameLayout> -->
-
<org.fox.ttrss.util.ScrimInsetsFrameLayout
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/scrimInsetsFrameLayout"
diff --git a/org.fox.ttrss/src/main/res/layout/fragment_article.xml b/org.fox.ttrss/src/main/res/layout/fragment_article.xml
index d14f6d88..2226cffe 100755
--- a/org.fox.ttrss/src/main/res/layout/fragment_article.xml
+++ b/org.fox.ttrss/src/main/res/layout/fragment_article.xml
@@ -15,16 +15,6 @@
android:layout_width="match_parent"
android:layout_height="wrap_content">
- <com.google.android.material.floatingactionbutton.FloatingActionButton
- android:id="@+id/article_fab"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="end|bottom"
- android:layout_marginBottom="72dp"
- android:layout_marginRight="16dp"
- android:src="@drawable/ic_action_web_site"
- />
-
<com.google.android.material.appbar.AppBarLayout
android:background="?articleHeader"
android:elevation="0dp"
@@ -133,7 +123,7 @@
<androidx.core.widget.NestedScrollView
android:id="@+id/article_scrollview"
android:scrollbars="vertical|horizontal"
- app:layout_behavior=".util.FabAwareScrollingViewBehavior"
+ app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:layout_width="match_parent"
android:layout_height="match_parent">
diff --git a/org.fox.ttrss/src/main/res/layout/fragment_headlines.xml b/org.fox.ttrss/src/main/res/layout/fragment_headlines.xml
index 647afce8..9f09290f 100755
--- a/org.fox.ttrss/src/main/res/layout/fragment_headlines.xml
+++ b/org.fox.ttrss/src/main/res/layout/fragment_headlines.xml
@@ -1,10 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- android:id="@+id/headlines_fragment"
- android:background="?android:colorBackground"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
+ android:id="@+id/headlines_fragment"
+ android:background="?android:colorBackground"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent">
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android:id="@+id/headlines_swipe_container"
@@ -19,14 +18,4 @@
android:layout_height="match_parent" />
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
- <com.google.android.material.floatingactionbutton.FloatingActionButton
- android:id="@+id/headlines_fab"
- app:layout_anchor="@id/headlines_fragment"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="end|bottom"
- android:src="@drawable/ic_refresh"
- android:layout_marginBottom="72dp"
- android:layout_marginRight="16dp" />
-
</FrameLayout> \ No newline at end of file