From b226fcc1289179ccc9902369474520d88a314743 Mon Sep 17 00:00:00 2001 From: LucasGGamerM Date: Wed, 14 Jun 2023 20:57:20 -0300 Subject: [PATCH] feat: add pin button to custom local timelines This is now a thing due to the new instance about fragment, where you can see a server's local timeline from there, and from there you should be able to pin it. This commit addresses that --- .../CustomLocalTimelineFragment.java | 23 ++++++++++++++++++- .../main/res/menu/custom_local_timelines.xml | 8 +++++++ 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 mastodon/src/main/res/menu/custom_local_timelines.xml diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/CustomLocalTimelineFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/CustomLocalTimelineFragment.java index 864bdf9b9..b23e9ef8d 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/CustomLocalTimelineFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/CustomLocalTimelineFragment.java @@ -2,21 +2,30 @@ package org.joinmastodon.android.fragments; import android.app.Activity; import android.net.Uri; +import android.view.Menu; +import android.view.MenuInflater; import org.joinmastodon.android.DomainManager; import org.joinmastodon.android.MainActivity; +import org.joinmastodon.android.R; +import org.joinmastodon.android.api.requests.tags.GetHashtag; import org.joinmastodon.android.api.requests.timelines.GetPublicTimeline; import org.joinmastodon.android.model.Filter; +import org.joinmastodon.android.model.Hashtag; import org.joinmastodon.android.model.Status; +import org.joinmastodon.android.model.TimelineDefinition; +import org.joinmastodon.android.ui.utils.UiUtils; import org.joinmastodon.android.utils.ProvidesAssistContent; import org.joinmastodon.android.utils.StatusFilterPredicate; import java.util.List; import java.util.stream.Collectors; +import me.grishka.appkit.api.Callback; +import me.grishka.appkit.api.ErrorResponse; import me.grishka.appkit.api.SimpleCallback; -public class CustomLocalTimelineFragment extends StatusListFragment implements ProvidesAssistContent.ProvidesWebUri { +public class CustomLocalTimelineFragment extends PinnableStatusListFragment implements ProvidesAssistContent.ProvidesWebUri{ // private String name; private String domain; @@ -74,6 +83,13 @@ public class CustomLocalTimelineFragment extends StatusListFragment implements P loadData(); } + @Override + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + inflater.inflate(R.menu.custom_local_timelines, menu); + super.onCreateOptionsMenu(menu, inflater); + UiUtils.enableOptionsMenuIcons(getContext(), menu, R.id.pin); + } + @Override protected Filter.FilterContext getFilterContext() { return null; @@ -83,4 +99,9 @@ public class CustomLocalTimelineFragment extends StatusListFragment implements P public Uri getWebUri(Uri.Builder base) { return Uri.parse(domain); } + + @Override + protected TimelineDefinition makeTimelineDefinition() { + return TimelineDefinition.ofCustomLocalTimeline(domain); + } } diff --git a/mastodon/src/main/res/menu/custom_local_timelines.xml b/mastodon/src/main/res/menu/custom_local_timelines.xml new file mode 100644 index 000000000..0c9655d51 --- /dev/null +++ b/mastodon/src/main/res/menu/custom_local_timelines.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file