From a683c2cb11e0734e1c047fc0ddcc2b8d9aea6167 Mon Sep 17 00:00:00 2001 From: sk Date: Sat, 22 Apr 2023 22:20:40 +0200 Subject: [PATCH] hide fab in notifications --- .../android/fragments/BaseStatusListFragment.java | 11 ++++------- .../org/joinmastodon/android/fragments/HasFab.java | 7 +++++++ .../android/fragments/HashtagTimelineFragment.java | 2 +- .../android/fragments/HomeTabFragment.java | 3 ++- .../android/fragments/HomeTimelineFragment.java | 2 +- .../android/fragments/ListTimelineFragment.java | 2 +- .../android/fragments/NotificationsListFragment.java | 5 ++--- .../fragments/ScheduledStatusListFragment.java | 2 +- .../fragments/discover/FederatedTimelineFragment.java | 2 +- .../fragments/discover/LocalTimelineFragment.java | 2 +- 10 files changed, 21 insertions(+), 17 deletions(-) create mode 100644 mastodon/src/main/java/org/joinmastodon/android/fragments/HasFab.java diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/BaseStatusListFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/BaseStatusListFragment.java index 671b7b8d5..935fa0b39 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/BaseStatusListFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/BaseStatusListFragment.java @@ -45,7 +45,6 @@ import org.joinmastodon.android.ui.photoviewer.PhotoViewer; import org.joinmastodon.android.ui.photoviewer.PhotoViewerHost; import org.joinmastodon.android.ui.utils.MediaAttachmentViewController; import org.joinmastodon.android.ui.utils.UiUtils; -import org.joinmastodon.android.ui.views.MediaGridLayout; import org.joinmastodon.android.utils.TypedObjectPool; import java.util.ArrayList; @@ -80,14 +79,13 @@ public abstract class BaseStatusListFragment exten protected HashMap relationships=new HashMap<>(); protected Rect tmpRect=new Rect(); protected TypedObjectPool attachmentViewsPool=new TypedObjectPool<>(this::makeNewMediaAttachmentView); - protected boolean fabDisabled; public BaseStatusListFragment(){ super(20); - if (withComposeButton()) setListLayoutId(R.layout.recycler_fragment_with_fab); + if (wantsComposeButton()) setListLayoutId(R.layout.recycler_fragment_with_fab); } - protected boolean withComposeButton() { + protected boolean wantsComposeButton() { return false; } @@ -271,7 +269,7 @@ public abstract class BaseStatusListFragment exten } public @Nullable View getFab() { - if (getParentFragment() instanceof HomeTabFragment home) return home.getFab(); + if (getParentFragment() instanceof HasFab l) return l.getFab(); else return fab; } @@ -304,7 +302,6 @@ public abstract class BaseStatusListFragment exten public void onViewCreated(View view, Bundle savedInstanceState){ super.onViewCreated(view, savedInstanceState); fab=view.findViewById(R.id.fab); - fabDisabled = getArguments().getBoolean("__is_tab", false); list.addOnScrollListener(new RecyclerView.OnScrollListener(){ @Override @@ -361,7 +358,7 @@ public abstract class BaseStatusListFragment exten ((UsableRecyclerView) list).setIncludeMarginsInItemHitbox(true); updateToolbar(); - if (withComposeButton() && !fabDisabled) { + if (wantsComposeButton() && !getArguments().getBoolean("__disable_fab", false)) { fab.setVisibility(View.VISIBLE); fab.setOnClickListener(this::onFabClick); fab.setOnLongClickListener(this::onFabLongClick); diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/HasFab.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/HasFab.java new file mode 100644 index 000000000..9245eafcd --- /dev/null +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/HasFab.java @@ -0,0 +1,7 @@ +package org.joinmastodon.android.fragments; + +import android.view.View; + +public interface HasFab { + View getFab(); +} diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/HashtagTimelineFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/HashtagTimelineFragment.java index 726fc380f..91cf498b7 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/HashtagTimelineFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/HashtagTimelineFragment.java @@ -39,7 +39,7 @@ public class HashtagTimelineFragment extends PinnableStatusListFragment { private MenuItem followButton; @Override - protected boolean withComposeButton() { + protected boolean wantsComposeButton() { return true; } diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/HomeTabFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/HomeTabFragment.java index 2a5b0dd42..44a7bb4f9 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/HomeTabFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/HomeTabFragment.java @@ -71,7 +71,7 @@ import me.grishka.appkit.fragments.OnBackPressedListener; import me.grishka.appkit.utils.CubicBezierInterpolator; import me.grishka.appkit.utils.V; -public class HomeTabFragment extends MastodonToolbarFragment implements ScrollableToTop, OnBackPressedListener { +public class HomeTabFragment extends MastodonToolbarFragment implements ScrollableToTop, OnBackPressedListener, HasFab { private static final int ANNOUNCEMENTS_RESULT = 654; private String accountID; @@ -135,6 +135,7 @@ public class HomeTabFragment extends MastodonToolbarFragment implements Scrollab Bundle args = new Bundle(); args.putString("account", accountID); args.putBoolean("__is_tab", true); + args.putBoolean("__disable_fab", true); args.putBoolean("onlyPosts", true); for (int i = 0; i < timelineDefinitions.size(); i++) { diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/HomeTimelineFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/HomeTimelineFragment.java index a77acd5f6..8b1babae1 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/HomeTimelineFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/HomeTimelineFragment.java @@ -38,7 +38,7 @@ public class HomeTimelineFragment extends StatusListFragment { private String lastSavedMarkerID; @Override - protected boolean withComposeButton() { + protected boolean wantsComposeButton() { return true; } diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/ListTimelineFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/ListTimelineFragment.java index 3aa514e3b..fd2155b54 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/ListTimelineFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/ListTimelineFragment.java @@ -44,7 +44,7 @@ public class ListTimelineFragment extends PinnableStatusListFragment { private ListTimeline.RepliesPolicy repliesPolicy; @Override - protected boolean withComposeButton() { + protected boolean wantsComposeButton() { return true; } diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/NotificationsListFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/NotificationsListFragment.java index 1fb2ff6b4..d7bf53691 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/NotificationsListFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/NotificationsListFragment.java @@ -49,8 +49,8 @@ public class NotificationsListFragment extends BaseStatusListFragment