added new option in preferences.xml
modified MainActivity so that the "compose new toot" button is exposed as a static (had to copy its reference into a new variable so as to not upset BindView) modified TimelineFragment so that when the RecycleView is instantiated we overload the onScroll so that we can hide the FAB
This commit is contained in:
parent
632cb0d6e3
commit
de0f1b7ab0
|
@ -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
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -9,6 +9,11 @@
|
|||
android:title="@string/pref_title_light_theme"
|
||||
android:defaultValue="false" />
|
||||
|
||||
<CheckBoxPreference
|
||||
android:key="fabHide"
|
||||
android:title="Hide FAB while scrolling"
|
||||
android:defaultValue="false" />
|
||||
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceScreen android:title="@string/pref_title_notification_settings">
|
||||
|
|
Loading…
Reference in New Issue