From 96fa8abbfac60025b9a15923ba8759e7fd37cf31 Mon Sep 17 00:00:00 2001 From: Thomas Date: Fri, 25 Apr 2025 15:18:49 +0200 Subject: [PATCH] Fix trend messages repeated in the timeline --- app/build.gradle | 2 +- .../fragment/timeline/FragmentMastodonTimeline.java | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 8ad802ab..55faa7b3 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -100,7 +100,7 @@ allprojects { } } dependencies { - implementation 'org.unifiedpush.android:connector:3.0.7' + implementation 'org.unifiedpush.android:connector:3.0.9' playstoreImplementation('org.unifiedpush.android:embedded-fcm-distributor:3.0.0') diff --git a/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/timeline/FragmentMastodonTimeline.java b/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/timeline/FragmentMastodonTimeline.java index 5d0f2459..d2127dd4 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/timeline/FragmentMastodonTimeline.java +++ b/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/timeline/FragmentMastodonTimeline.java @@ -17,6 +17,7 @@ package app.fedilab.android.mastodon.ui.fragment.timeline; import static app.fedilab.android.BaseMainActivity.currentInstance; import static app.fedilab.android.BaseMainActivity.networkAvailable; +import static app.fedilab.android.mastodon.helper.Helper.TAG; import android.content.BroadcastReceiver; import android.content.Context; @@ -26,6 +27,7 @@ import android.content.SharedPreferences; import android.os.Bundle; import android.os.Handler; import android.os.Looper; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -571,9 +573,13 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter. insertedStatus = updateStatusListWith(fetched_statuses.statuses); } else { //Trends cannot be ordered by id insertedStatus = fetched_statuses.statuses.size(); - int fromPosition = timelineStatuses.size(); - timelineStatuses.addAll(fetched_statuses.statuses); - statusAdapter.notifyItemRangeInserted(fromPosition, insertedStatus); + for(Status statusReceived: fetched_statuses.statuses) { + if (!timelineStatuses.contains(statusReceived)) { + timelineStatuses.add(statusReceived); + statusAdapter.notifyItemInserted(timelineStatuses.size() - 1); + insertedStatus++; + } + } } //For these directions, the app will display counters for new messages if (insertedStatus >= 0 && update != null && direction != DIRECTION.FETCH_NEW && !fetchingMissing) {