Search in sources :

Example 1 with PreferenceChangedEvent

use of com.keylesspalace.tusky.appstore.PreferenceChangedEvent in project Tusky by Vavassor.

the class NotificationsFragment method onActivityCreated.

@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    Activity activity = getActivity();
    if (activity == null)
        throw new AssertionError("Activity is null");
    /* This is delayed until onActivityCreated solely because MainActivity.composeButton isn't
         * guaranteed to be set until then.
         * Use a modified scroll listener that both loads more notificationsEnabled as it goes, and hides
         * the compose button on down-scroll. */
    SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(activity);
    hideFab = preferences.getBoolean("fabHide", false);
    scrollListener = new EndlessOnScrollListener(layoutManager) {

        @Override
        public void onScrolled(@NonNull RecyclerView view, int dx, int dy) {
            super.onScrolled(view, dx, dy);
            ActionButtonActivity activity = (ActionButtonActivity) getActivity();
            FloatingActionButton composeButton = activity.getActionButton();
            if (composeButton != null) {
                if (hideFab) {
                    if (dy > 0 && composeButton.isShown()) {
                        // hides the button if we're scrolling down
                        composeButton.hide();
                    } else if (dy < 0 && !composeButton.isShown()) {
                        // shows it if we are scrolling up
                        composeButton.show();
                    }
                } else if (!composeButton.isShown()) {
                    composeButton.show();
                }
            }
        }

        @Override
        public void onLoadMore(int totalItemsCount, RecyclerView view) {
            NotificationsFragment.this.onLoadMore();
        }
    };
    recyclerView.addOnScrollListener(scrollListener);
    eventHub.getEvents().observeOn(AndroidSchedulers.mainThread()).to(autoDisposable(from(this, Lifecycle.Event.ON_DESTROY))).subscribe(event -> {
        if (event instanceof FavoriteEvent) {
            setFavouriteForStatus(((FavoriteEvent) event).getStatusId(), ((FavoriteEvent) event).getFavourite());
        } else if (event instanceof BookmarkEvent) {
            setBookmarkForStatus(((BookmarkEvent) event).getStatusId(), ((BookmarkEvent) event).getBookmark());
        } else if (event instanceof ReblogEvent) {
            setReblogForStatus(((ReblogEvent) event).getStatusId(), ((ReblogEvent) event).getReblog());
        } else if (event instanceof PinEvent) {
            setPinForStatus(((PinEvent) event).getStatusId(), ((PinEvent) event).getPinned());
        } else if (event instanceof BlockEvent) {
            removeAllByAccountId(((BlockEvent) event).getAccountId());
        } else if (event instanceof PreferenceChangedEvent) {
            onPreferenceChanged(((PreferenceChangedEvent) event).getPreferenceKey());
        }
    });
}
Also used : PinEvent(com.keylesspalace.tusky.appstore.PinEvent) ReblogEvent(com.keylesspalace.tusky.appstore.ReblogEvent) SharedPreferences(android.content.SharedPreferences) ActionButtonActivity(com.keylesspalace.tusky.interfaces.ActionButtonActivity) Activity(android.app.Activity) ActionButtonActivity(com.keylesspalace.tusky.interfaces.ActionButtonActivity) EndlessOnScrollListener(com.keylesspalace.tusky.view.EndlessOnScrollListener) FavoriteEvent(com.keylesspalace.tusky.appstore.FavoriteEvent) FloatingActionButton(com.google.android.material.floatingactionbutton.FloatingActionButton) RecyclerView(androidx.recyclerview.widget.RecyclerView) BookmarkEvent(com.keylesspalace.tusky.appstore.BookmarkEvent) PreferenceChangedEvent(com.keylesspalace.tusky.appstore.PreferenceChangedEvent) BlockEvent(com.keylesspalace.tusky.appstore.BlockEvent)

Aggregations

Activity (android.app.Activity)1 SharedPreferences (android.content.SharedPreferences)1 RecyclerView (androidx.recyclerview.widget.RecyclerView)1 FloatingActionButton (com.google.android.material.floatingactionbutton.FloatingActionButton)1 BlockEvent (com.keylesspalace.tusky.appstore.BlockEvent)1 BookmarkEvent (com.keylesspalace.tusky.appstore.BookmarkEvent)1 FavoriteEvent (com.keylesspalace.tusky.appstore.FavoriteEvent)1 PinEvent (com.keylesspalace.tusky.appstore.PinEvent)1 PreferenceChangedEvent (com.keylesspalace.tusky.appstore.PreferenceChangedEvent)1 ReblogEvent (com.keylesspalace.tusky.appstore.ReblogEvent)1 ActionButtonActivity (com.keylesspalace.tusky.interfaces.ActionButtonActivity)1 EndlessOnScrollListener (com.keylesspalace.tusky.view.EndlessOnScrollListener)1