summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas <tschneider.ac@gmail.com>2023-07-12 16:33:49 +0200
committerThomas <tschneider.ac@gmail.com>2023-07-12 16:33:49 +0200
commitad178f3cd04740696918148b384346f416fecd14 (patch)
tree74f3a2c3f32eeb3bc0e0d61e2fb5fccee339d3f6
parentcbd1332213d01c55a5df489188bde04832dfb8c0 (diff)
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/client/endpoints/MastodonTimelinesService.java2
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/ui/fragment/timeline/FragmentMastodonTimeline.java13
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/TimelinesVM.java28
3 files changed, 23 insertions, 20 deletions
diff --git a/app/src/main/java/app/fedilab/android/mastodon/client/endpoints/MastodonTimelinesService.java b/app/src/main/java/app/fedilab/android/mastodon/client/endpoints/MastodonTimelinesService.java
index ae4c49c97..6655c8c8d 100644
--- a/app/src/main/java/app/fedilab/android/mastodon/client/endpoints/MastodonTimelinesService.java
+++ b/app/src/main/java/app/fedilab/android/mastodon/client/endpoints/MastodonTimelinesService.java
@@ -231,7 +231,7 @@ public interface MastodonTimelinesService {
Call<List<MisskeyNote>> getMisskey(@Body MisskeyNote.MisskeyParams params);
- @GET("api/v3/post/list")
+ @GET("api/v3/post/list?sort=New")
Call<LemmyPost.LemmyPosts> getLemmyMain(@Query("limit") Integer limit,
@Query("page") String page);
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 b0a0cd7ee..fd4a28fa5 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
@@ -215,7 +215,7 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter.
SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(requireActivity());
rememberPosition = sharedpreferences.getBoolean(getString(R.string.SET_REMEMBER_POSITION), true);
//Inner marker are only for pinned timelines and main timelines, they have isViewInitialized set to false
- if (max_id == null && !isViewInitialized && rememberPosition) {
+ if (max_id == null && !isViewInitialized && rememberPosition && 1 == 2) {
max_id = sharedpreferences.getString(getString(R.string.SET_INNER_MARKER) + BaseMainActivity.currentUserID + BaseMainActivity.currentInstance + slug, null);
}
//Only fragment in main view pager should not have the view initialized
@@ -358,7 +358,7 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter.
SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(requireActivity());
rememberPosition = sharedpreferences.getBoolean(getString(R.string.SET_REMEMBER_POSITION), true);
//Inner marker are only for pinned timelines and main timelines, they have isViewInitialized set to false
- if (max_id == null && !isViewInitialized && rememberPosition) {
+ if (max_id == null && !isViewInitialized && rememberPosition && 1 == 2) {
max_id = sharedpreferences.getString(getString(R.string.SET_INNER_MARKER) + BaseMainActivity.currentUserID + BaseMainActivity.currentInstance + slug, null);
}
if (search != null) {
@@ -535,6 +535,9 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter.
} else if (max_id == null || Helper.compareTo(fetched_statuses.pagination.max_id, max_id) < 0 || timelineType.getValue().startsWith("TREND_")) {
max_id = fetched_statuses.pagination.max_id;
}
+ if (pinnedTimeline != null && pinnedTimeline.remoteInstance != null && pinnedTimeline.remoteInstance.type == RemoteInstance.InstanceType.LEMMY) {
+ max_id = fetched_statuses.pagination.max_id;
+ }
if (min_id == null || (fetched_statuses.pagination.min_id != null && Helper.compareTo(fetched_statuses.pagination.min_id, min_id) > 0)) {
min_id = fetched_statuses.pagination.min_id;
}
@@ -577,7 +580,7 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter.
route(DIRECTION.REFRESH, true);
});
}
- if (statuses == null || statuses.statuses == null || statuses.statuses.size() == 0) {
+ if (initialStatus == null && (statuses == null || statuses.statuses == null || statuses.statuses.size() == 0)) {
binding.noAction.setVisibility(View.VISIBLE);
return;
} else if (timelineType == Timeline.TimeLineEnum.ART) {
@@ -623,6 +626,10 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter.
if (max_id == null || (statuses.pagination.max_id != null && Helper.compareTo(statuses.pagination.max_id, max_id) < 0) || timelineType.getValue().startsWith("TREND_")) {
max_id = statuses.pagination.max_id;
}
+ //For Lemmy pagination
+ if (pinnedTimeline != null && pinnedTimeline.remoteInstance != null && pinnedTimeline.remoteInstance.type == RemoteInstance.InstanceType.LEMMY) {
+ max_id = statuses.pagination.max_id;
+ }
if (min_id == null || (statuses.pagination.min_id != null && Helper.compareTo(statuses.pagination.min_id, min_id) > 0)) {
min_id = statuses.pagination.min_id;
}
diff --git a/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/TimelinesVM.java b/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/TimelinesVM.java
index 3239e6faf..afef54bb8 100644
--- a/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/TimelinesVM.java
+++ b/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/TimelinesVM.java
@@ -350,14 +350,17 @@ public class TimelinesVM extends AndroidViewModel {
Integer limit) {
MastodonTimelinesService mastodonTimelinesService = initInstanceOnly(instance);
statusesMutableLiveData = new MutableLiveData<>();
+ if (page == null) {
+ page = "1";
+ }
+ String finalPage = page;
new Thread(() -> {
-
Call<LemmyPost.LemmyPosts> lemmyPostsCall = null;
Call<LemmyPost.LemmyComments> lemmyCommentsCall = null;
if (post_id == null) {
- lemmyPostsCall = mastodonTimelinesService.getLemmyMain(limit, page);
+ lemmyPostsCall = mastodonTimelinesService.getLemmyMain(limit, finalPage);
} else {
- lemmyCommentsCall = mastodonTimelinesService.getLemmyThread(post_id, limit, page);
+ lemmyCommentsCall = mastodonTimelinesService.getLemmyThread(post_id, limit, finalPage);
}
Statuses statuses = new Statuses();
if (lemmyPostsCall != null) {
@@ -374,16 +377,9 @@ public class TimelinesVM extends AndroidViewModel {
}
statuses.statuses = TimelineHelper.filterStatus(getApplication(), statusList, Timeline.TimeLineEnum.PUBLIC);
statuses.pagination = new Pagination();
- if (page == null) {
- statuses.pagination.min_id = "0";
- statuses.pagination.max_id = "1";
- } else {
- int pageInt = Integer.parseInt(page);
- statuses.pagination.min_id = page;
- statuses.pagination.max_id = String.valueOf((pageInt + 1));
-
- }
-
+ int pageInt = Integer.parseInt(finalPage);
+ statuses.pagination.min_id = finalPage;
+ statuses.pagination.max_id = String.valueOf((pageInt + 1));
}
} catch (Exception e) {
@@ -403,12 +399,12 @@ public class TimelinesVM extends AndroidViewModel {
}
statuses.statuses = TimelineHelper.filterStatus(getApplication(), statusList, Timeline.TimeLineEnum.PUBLIC);
statuses.pagination = new Pagination();
- if (page == null) {
+ if (finalPage == null) {
statuses.pagination.min_id = "0";
statuses.pagination.max_id = "1";
} else {
- int pageInt = Integer.parseInt(page);
- statuses.pagination.min_id = page;
+ int pageInt = Integer.parseInt(finalPage);
+ statuses.pagination.min_id = finalPage;
statuses.pagination.max_id = String.valueOf((pageInt + 1));
}
}