From 938643f9e2d22545d354515976118709b0a8c025 Mon Sep 17 00:00:00 2001 From: FineFindus Date: Wed, 15 May 2024 15:35:30 +0200 Subject: [PATCH] fix(discover): provide WebUri for fragments Fixes an issue, where the discover fragments did not display their URL in the recents overview. --- .../fragments/discover/DiscoverFragment.java | 11 ++++++++++- .../fragments/discover/DiscoverNewsFragment.java | 14 +++++++++++++- .../discover/TrendingHashtagsFragment.java | 14 +++++++++++++- 3 files changed, 36 insertions(+), 3 deletions(-) diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/discover/DiscoverFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/discover/DiscoverFragment.java index b09cadc34..69872bd7a 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/discover/DiscoverFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/discover/DiscoverFragment.java @@ -1,6 +1,7 @@ package org.joinmastodon.android.fragments.discover; import android.app.Fragment; +import android.app.assist.AssistContent; import android.os.Build; import android.os.Bundle; import android.text.TextUtils; @@ -24,6 +25,7 @@ import org.joinmastodon.android.ui.SimpleViewHolder; import org.joinmastodon.android.ui.tabs.TabLayout; import org.joinmastodon.android.ui.tabs.TabLayoutMediator; import org.joinmastodon.android.ui.utils.UiUtils; +import org.joinmastodon.android.utils.ProvidesAssistContent; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -35,7 +37,7 @@ import me.grishka.appkit.fragments.BaseRecyclerFragment; import me.grishka.appkit.fragments.OnBackPressedListener; import me.grishka.appkit.utils.V; -public class DiscoverFragment extends AppKitFragment implements ScrollableToTop, OnBackPressedListener, IsOnTop { +public class DiscoverFragment extends AppKitFragment implements ScrollableToTop, OnBackPressedListener, IsOnTop, ProvidesAssistContent{ private static final int QUERY_RESULT=937; private TabLayout tabLayout; @@ -291,6 +293,13 @@ public class DiscoverFragment extends AppKitFragment implements ScrollableToTop, } } + @Override + public void onProvideAssistContent(AssistContent assistContent) { + callFragmentToProvideAssistContent(searchActive + ? searchFragment + : getFragmentForPage(pager.getCurrentItem()), assistContent); + } + private class DiscoverPagerAdapter extends RecyclerView.Adapter{ @NonNull @Override diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/discover/DiscoverNewsFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/discover/DiscoverNewsFragment.java index b4a8d0950..74ddb63ac 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/discover/DiscoverNewsFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/discover/DiscoverNewsFragment.java @@ -2,6 +2,7 @@ package org.joinmastodon.android.fragments.discover; import android.graphics.Rect; import android.graphics.drawable.Drawable; +import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.view.View; @@ -19,6 +20,7 @@ import org.joinmastodon.android.ui.OutlineProviders; import org.joinmastodon.android.ui.drawables.BlurhashCrossfadeDrawable; import org.joinmastodon.android.ui.utils.DiscoverInfoBannerHelper; import org.joinmastodon.android.ui.utils.UiUtils; +import org.joinmastodon.android.utils.ProvidesAssistContent; import java.util.ArrayList; import java.util.List; @@ -40,7 +42,7 @@ import me.grishka.appkit.utils.SingleViewRecyclerAdapter; import me.grishka.appkit.utils.V; import me.grishka.appkit.views.UsableRecyclerView; -public class DiscoverNewsFragment extends BaseRecyclerFragment implements ScrollableToTop, IsOnTop{ +public class DiscoverNewsFragment extends BaseRecyclerFragment implements ScrollableToTop, IsOnTop, ProvidesAssistContent.ProvidesWebUri{ private String accountID; private DiscoverInfoBannerHelper bannerHelper; private MergeRecyclerAdapter mergeAdapter; @@ -115,6 +117,16 @@ public class DiscoverNewsFragment extends BaseRecyclerFragment im return isRecyclerViewOnTop(list); } + @Override + public String getAccountID() { + return accountID; + } + + @Override + public Uri getWebUri(Uri.Builder base) { + return isInstanceAkkoma() ? null : base.path("/explore/links").build(); + } + private class LinksAdapter extends UsableRecyclerView.Adapter implements ImageLoaderRecyclerAdapter{ private final List data; diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/discover/TrendingHashtagsFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/discover/TrendingHashtagsFragment.java index 9ec45d5f1..65ef86593 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/discover/TrendingHashtagsFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/discover/TrendingHashtagsFragment.java @@ -1,5 +1,6 @@ package org.joinmastodon.android.fragments.discover; +import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.view.View; @@ -13,6 +14,7 @@ import org.joinmastodon.android.fragments.ScrollableToTop; import org.joinmastodon.android.model.Hashtag; import org.joinmastodon.android.ui.utils.UiUtils; import org.joinmastodon.android.ui.views.HashtagChartView; +import org.joinmastodon.android.utils.ProvidesAssistContent; import java.util.List; @@ -23,7 +25,7 @@ import me.grishka.appkit.fragments.BaseRecyclerFragment; import me.grishka.appkit.utils.BindableViewHolder; import me.grishka.appkit.views.UsableRecyclerView; -public class TrendingHashtagsFragment extends BaseRecyclerFragment implements ScrollableToTop, IsOnTop{ +public class TrendingHashtagsFragment extends BaseRecyclerFragment implements ScrollableToTop, IsOnTop, ProvidesAssistContent.ProvidesWebUri{ private String accountID; public TrendingHashtagsFragment(){ @@ -65,6 +67,16 @@ public class TrendingHashtagsFragment extends BaseRecyclerFragment impl return isRecyclerViewOnTop(list); } + @Override + public String getAccountID() { + return accountID; + } + + @Override + public Uri getWebUri(Uri.Builder base) { + return isInstanceAkkoma() ? null : base.path("/explore/tags").build(); + } + private class HashtagsAdapter extends RecyclerView.Adapter{ @NonNull @Override