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
3 changed files with 27 additions and 1 deletions
|
@ -77,6 +77,8 @@ public class MainActivity extends BaseActivity {
|
||||||
@BindView(R.id.tab_layout) TabLayout tabLayout;
|
@BindView(R.id.tab_layout) TabLayout tabLayout;
|
||||||
@BindView(R.id.pager) ViewPager viewPager;
|
@BindView(R.id.pager) ViewPager viewPager;
|
||||||
|
|
||||||
|
static FloatingActionButton composeBtn;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
@ -176,6 +178,8 @@ public class MainActivity extends BaseActivity {
|
||||||
|
|
||||||
// Setup push notifications
|
// Setup push notifications
|
||||||
if (arePushNotificationsEnabled()) enablePushNotifications();
|
if (arePushNotificationsEnabled()) enablePushNotifications();
|
||||||
|
|
||||||
|
composeBtn = floatingBtn;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -16,9 +16,12 @@
|
||||||
package com.keylesspalace.tusky;
|
package com.keylesspalace.tusky;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.SharedPreferences;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.preference.PreferenceManager;
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
|
import android.support.design.widget.FloatingActionButton;
|
||||||
import android.support.design.widget.TabLayout;
|
import android.support.design.widget.TabLayout;
|
||||||
import android.support.v4.widget.SwipeRefreshLayout;
|
import android.support.v4.widget.SwipeRefreshLayout;
|
||||||
import android.support.v7.widget.DividerItemDecoration;
|
import android.support.v7.widget.DividerItemDecoration;
|
||||||
|
@ -85,7 +88,7 @@ public class TimelineFragment extends SFragment implements
|
||||||
hashtagOrId = arguments.getString("hashtag_or_id");
|
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.
|
// Setup the SwipeRefreshLayout.
|
||||||
Context context = getContext();
|
Context context = getContext();
|
||||||
|
@ -103,6 +106,20 @@ public class TimelineFragment extends SFragment implements
|
||||||
divider.setDrawable(drawable);
|
divider.setDrawable(drawable);
|
||||||
recyclerView.addItemDecoration(divider);
|
recyclerView.addItemDecoration(divider);
|
||||||
scrollListener = new EndlessOnScrollListener(layoutManager) {
|
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
|
@Override
|
||||||
public void onLoadMore(int page, int totalItemsCount, RecyclerView view) {
|
public void onLoadMore(int page, int totalItemsCount, RecyclerView view) {
|
||||||
TimelineAdapter adapter = (TimelineAdapter) view.getAdapter();
|
TimelineAdapter adapter = (TimelineAdapter) view.getAdapter();
|
||||||
|
|
|
@ -9,6 +9,11 @@
|
||||||
android:title="@string/pref_title_light_theme"
|
android:title="@string/pref_title_light_theme"
|
||||||
android:defaultValue="false" />
|
android:defaultValue="false" />
|
||||||
|
|
||||||
|
<CheckBoxPreference
|
||||||
|
android:key="fabHide"
|
||||||
|
android:title="Hide FAB while scrolling"
|
||||||
|
android:defaultValue="false" />
|
||||||
|
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
|
|
||||||
<PreferenceScreen android:title="@string/pref_title_notification_settings">
|
<PreferenceScreen android:title="@string/pref_title_notification_settings">
|
||||||
|
|
Loading…
Reference in a new issue