diff --git a/app/src/main/java/com/keylesspalace/tusky/MainActivity.java b/app/src/main/java/com/keylesspalace/tusky/MainActivity.java
index dd651af5c..a75e869e4 100644
--- a/app/src/main/java/com/keylesspalace/tusky/MainActivity.java
+++ b/app/src/main/java/com/keylesspalace/tusky/MainActivity.java
@@ -77,6 +77,8 @@ public class MainActivity extends BaseActivity {
@BindView(R.id.tab_layout) TabLayout tabLayout;
@BindView(R.id.pager) ViewPager viewPager;
+ static FloatingActionButton composeBtn;
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -176,6 +178,8 @@ public class MainActivity extends BaseActivity {
// Setup push notifications
if (arePushNotificationsEnabled()) enablePushNotifications();
+
+ composeBtn = floatingBtn;
}
@Override
diff --git a/app/src/main/java/com/keylesspalace/tusky/TimelineFragment.java b/app/src/main/java/com/keylesspalace/tusky/TimelineFragment.java
index 27a96dc87..0bcb2dfb4 100644
--- a/app/src/main/java/com/keylesspalace/tusky/TimelineFragment.java
+++ b/app/src/main/java/com/keylesspalace/tusky/TimelineFragment.java
@@ -16,9 +16,12 @@
package com.keylesspalace.tusky;
import android.content.Context;
+import android.content.SharedPreferences;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
+import android.preference.PreferenceManager;
import android.support.annotation.Nullable;
+import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.TabLayout;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.widget.DividerItemDecoration;
@@ -85,7 +88,7 @@ public class TimelineFragment extends SFragment implements
hashtagOrId = arguments.getString("hashtag_or_id");
}
- View rootView = inflater.inflate(R.layout.fragment_timeline, container, false);
+ final View rootView = inflater.inflate(R.layout.fragment_timeline, container, false);
// Setup the SwipeRefreshLayout.
Context context = getContext();
@@ -103,6 +106,20 @@ public class TimelineFragment extends SFragment implements
divider.setDrawable(drawable);
recyclerView.addItemDecoration(divider);
scrollListener = new EndlessOnScrollListener(layoutManager) {
+ @Override
+ public void onScrolled(RecyclerView view, int dx, int dy) {
+ super.onScrolled(view, dx, dy);
+
+ SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
+
+ if (dy > 0 && prefs.getBoolean("fabHide", false) && MainActivity.composeBtn.isShown()) {
+ MainActivity.composeBtn.hide(); // hides the button if we're scrolling down
+ } else if (dy < 0 && prefs.getBoolean("fabHide", false) && !MainActivity.composeBtn.isShown()) {
+ MainActivity.composeBtn.show(); // shows it if we are scrolling up
+ }
+
+ }
+
@Override
public void onLoadMore(int page, int totalItemsCount, RecyclerView view) {
TimelineAdapter adapter = (TimelineAdapter) view.getAdapter();
diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml
index f17716364..c9adf0e93 100644
--- a/app/src/main/res/xml/preferences.xml
+++ b/app/src/main/res/xml/preferences.xml
@@ -9,6 +9,11 @@
android:title="@string/pref_title_light_theme"
android:defaultValue="false" />
+
+