From aa3aa8a5f922bd73be424f0a000a7a5f26750c49 Mon Sep 17 00:00:00 2001 From: Grishka Date: Wed, 18 Jan 2023 14:29:49 -0300 Subject: [PATCH] Save last seen home timeline post via markers API --- .../fragments/HomeTimelineFragment.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) 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 0b2e43884..aba00edd3 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/HomeTimelineFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/HomeTimelineFragment.java @@ -8,6 +8,9 @@ import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import org.joinmastodon.android.GlobalUserPreferences; +import org.joinmastodon.android.E; +import org.joinmastodon.android.R; +import org.joinmastodon.android.api.requests.markers.SaveMarkers; import org.joinmastodon.android.api.requests.timelines.GetHomeTimeline; import org.joinmastodon.android.api.session.AccountSessionManager; import org.joinmastodon.android.events.StatusCreatedEvent; @@ -91,6 +94,29 @@ public class HomeTimelineFragment extends FabStatusListFragment { } } + @Override + protected void onHidden(){ + super.onHidden(); + if(!data.isEmpty()){ + String topPostID=displayItems.get(list.getChildAdapterPosition(list.getChildAt(0))-getMainAdapterOffset()).parentID; + if(!topPostID.equals(lastSavedMarkerID)){ + lastSavedMarkerID=topPostID; + new SaveMarkers(topPostID, null) + .setCallback(new Callback<>(){ + @Override + public void onSuccess(SaveMarkers.Response result){ + } + + @Override + public void onError(ErrorResponse error){ + lastSavedMarkerID=null; + } + }) + .exec(accountID); + } + } + } + public void onStatusCreated(StatusCreatedEvent ev){ prependItems(Collections.singletonList(ev.status), true); }