diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/discover/DiscoverPostsFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/discover/DiscoverPostsFragment.java index f7f0fef07..999515878 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/discover/DiscoverPostsFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/discover/DiscoverPostsFragment.java @@ -18,6 +18,7 @@ import me.grishka.appkit.utils.MergeRecyclerAdapter; public class DiscoverPostsFragment extends StatusListFragment{ private DiscoverInfoBannerHelper bannerHelper; + private int offset; @Override public void onCreate(Bundle savedInstanceState){ @@ -26,13 +27,15 @@ public class DiscoverPostsFragment extends StatusListFragment{ } @Override - protected void doLoadData(int offset, int count){ + protected void doLoadData(int o, int count){ + if(refreshing) offset=0; currentRequest=new GetTrendingStatuses(offset, count) .setCallback(new SimpleCallback<>(this){ @Override public void onSuccess(List result){ if(getActivity()==null) return; boolean empty=result.isEmpty(); + offset+=result.size(); AccountSessionManager.get(accountID).filterStatuses(result, getFilterContext()); onDataLoaded(result, !empty); bannerHelper.onBannerBecameVisible(); diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/discover/FederatedTimelineFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/discover/FederatedTimelineFragment.java index c3318ae3e..5ff063738 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/discover/FederatedTimelineFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/discover/FederatedTimelineFragment.java @@ -29,15 +29,14 @@ public class FederatedTimelineFragment extends StatusListFragment{ @Override protected void doLoadData(int offset, int count){ - currentRequest=new GetPublicTimeline(false, false, refreshing ? null : maxID, count, getLocalPrefs().timelineReplyVisibility) + currentRequest=new GetPublicTimeline(false, false, getMaxID(), count, getLocalPrefs().timelineReplyVisibility) .setCallback(new SimpleCallback<>(this){ @Override public void onSuccess(List result){ if(getActivity()==null) return; - boolean empty=result.isEmpty(); - if(!empty) maxID=result.get(result.size()-1).id; + boolean more=applyMaxID(result); AccountSessionManager.get(accountID).filterStatuses(result, getFilterContext()); - onDataLoaded(result, !empty); + onDataLoaded(result, more); bannerHelper.onBannerBecameVisible(); } }) diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/discover/LocalTimelineFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/discover/LocalTimelineFragment.java index c4979d1ab..aae59908c 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/discover/LocalTimelineFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/discover/LocalTimelineFragment.java @@ -29,15 +29,14 @@ public class LocalTimelineFragment extends StatusListFragment{ @Override protected void doLoadData(int offset, int count){ - currentRequest=new GetPublicTimeline(true, false, refreshing ? null : maxID, count, getLocalPrefs().timelineReplyVisibility) + currentRequest=new GetPublicTimeline(true, false, getMaxID(), count, getLocalPrefs().timelineReplyVisibility) .setCallback(new SimpleCallback<>(this){ @Override public void onSuccess(List result){ if(getActivity()==null) return; - boolean empty=result.isEmpty(); - if(!empty) maxID=result.get(result.size()-1).id; + boolean more=applyMaxID(result); AccountSessionManager.get(accountID).filterStatuses(result, getFilterContext()); - onDataLoaded(result, !empty); + onDataLoaded(result, more); bannerHelper.onBannerBecameVisible(); } })