Commit f6702893 authored by Thomas's avatar Thomas
Browse files

- Fix remote instance hashtag filter not applying

parent 74227a7a
Loading
Loading
Loading
Loading
+38 −13
Original line number Diff line number Diff line
@@ -218,6 +218,21 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter.
    private String publicTrendsDomain;


    //Allow to update pinnedTimeline for remote instance filter
    public void updatePinnedTimeline(PinnedTimeline pinnedTimeline) {
        this.pinnedTimeline = pinnedTimeline;
        // Update ident and slug for the new filter
        if (remoteInstance != null && pinnedTimeline != null && pinnedTimeline.remoteInstance != null) {
            ident = "@R@" + remoteInstance;
            if (pinnedTimeline.remoteInstance.filteredWith != null && !pinnedTimeline.remoteInstance.filteredWith.trim().isEmpty()) {
                ident += "@F@" + pinnedTimeline.remoteInstance.filteredWith.trim();
            }
            if (timelineType != null) {
                slug = timelineType.getValue() + "|" + ident;
            }
        }
    }

    //Allow to recreate data when detaching/attaching fragment
    public void recreate() {
        initialStatuses = null;
@@ -227,6 +242,8 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter.
            timelineStatuses = new ArrayList<>();
            if (statusAdapter != null) {
                statusAdapter.notifyItemRangeRemoved(0, count);
            }
        }
        max_id = statusReport != null ? statusReport.id : null;
        offset = 0;
        SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(requireActivity());
@@ -240,9 +257,6 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter.
        flagLoading = false;
        router(null);
    }
        }

    }

    @Override
    public void onResume() {
@@ -483,6 +497,9 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter.
                ident = "@R@" + pinnedTimeline.remoteInstance.host;
            } else {
                ident = "@R@" + remoteInstance;
                if (pinnedTimeline != null && pinnedTimeline.remoteInstance != null && pinnedTimeline.remoteInstance.filteredWith != null && !pinnedTimeline.remoteInstance.filteredWith.trim().isEmpty()) {
                    ident += "@F@" + pinnedTimeline.remoteInstance.filteredWith.trim();
                }
            }
        } else if (search != null) {
            ident = "@S@" + search;
@@ -885,6 +902,14 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter.
            case REMOTE -> {
                timelineParams.instance = remoteInstance;
                timelineParams.token = null;
                if (pinnedTimeline != null && pinnedTimeline.remoteInstance != null
                        && pinnedTimeline.remoteInstance.filteredWith != null
                        && !pinnedTimeline.remoteInstance.filteredWith.trim().isEmpty()) {
                    timelineParams.hashtagTrim = pinnedTimeline.remoteInstance.filteredWith.trim();
                    if (timelineParams.hashtagTrim.startsWith("#")) {
                        timelineParams.hashtagTrim = timelineParams.hashtagTrim.substring(1);
                    }
                }
            }
        }
        SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(requireActivity());
+6 −0
Original line number Diff line number Diff line
@@ -712,6 +712,12 @@ public class TimelinesVM extends AndroidViewModel {
                    timelineCall = mastodonTimelinesService.getHome(timelineParams.token, timelineParams.maxId, timelineParams.sinceId, timelineParams.minId, timelineParams.limit, timelineParams.local);
                    break;
                case REMOTE:
                    if (timelineParams.hashtagTrim != null && !timelineParams.hashtagTrim.isEmpty()) {
                        timelineCall = mastodonTimelinesService.getHashTag(timelineParams.token, timelineParams.hashtagTrim, true, timelineParams.onlyMedia, null, null, null, timelineParams.maxId, timelineParams.sinceId, timelineParams.minId, timelineParams.limit);
                    } else {
                        timelineCall = mastodonTimelinesService.getPublic(timelineParams.token, true, false, timelineParams.onlyMedia, timelineParams.maxId, timelineParams.sinceId, timelineParams.minId, timelineParams.limit);
                    }
                    break;
                case LOCAL:
                    timelineCall = mastodonTimelinesService.getPublic(timelineParams.token, true, false, timelineParams.onlyMedia, timelineParams.maxId, timelineParams.sinceId, timelineParams.minId, timelineParams.limit);
                    break;