From 064655067f8a1e9f9898ba977bbbac055dfe6d0f Mon Sep 17 00:00:00 2001 From: nuclearfog <32868976+nuclearfog@users.noreply.github.com> Date: Tue, 1 Oct 2024 21:40:28 +0200 Subject: [PATCH] fixed timeline loading, gradle dependency update --- app/build.gradle | 8 ++++---- .../twidda/backend/api/mastodon/Mastodon.java | 13 ++++++++++--- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index eb3495cbc..92c8a2ef8 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -58,7 +58,7 @@ android { dependencies { //noinspection GradleDependency - implementation 'androidx.appcompat:appcompat:1.6.1' + implementation 'androidx.appcompat:appcompat:1.7.0' implementation 'androidx.recyclerview:recyclerview:1.3.2' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' implementation 'androidx.cardview:cardview:1.0.0' @@ -76,8 +76,8 @@ dependencies { implementation 'com.kyleduo.switchbutton:library:2.1.0' implementation 'com.github.UnifiedPush:android-connector:2.1.1' //noinspection GradleDependency - implementation 'com.google.android.material:material:1.9.0' + implementation 'com.google.android.material:material:1.12.0' implementation 'jp.wasabeef:picasso-transformations:2.4.0' - implementation 'net.danlew:android.joda:2.12.7' - implementation 'org.jsoup:jsoup:1.17.2' + implementation 'net.danlew:android.joda:2.13.0' + implementation 'org.jsoup:jsoup:1.18.1' } \ No newline at end of file diff --git a/app/src/main/java/org/nuclearfog/twidda/backend/api/mastodon/Mastodon.java b/app/src/main/java/org/nuclearfog/twidda/backend/api/mastodon/Mastodon.java index 020e9994c..bc353037f 100644 --- a/app/src/main/java/org/nuclearfog/twidda/backend/api/mastodon/Mastodon.java +++ b/app/src/main/java/org/nuclearfog/twidda/backend/api/mastodon/Mastodon.java @@ -1592,16 +1592,23 @@ private Statuses getStatuses(String endpoint, long minId, long maxId) throws Mas * @return status timeline */ private Statuses getStatuses(String endpoint, long minId, long maxId, List params) throws MastodonException { - if (minId != 0L) - params.add("min_id=" + minId); if (maxId != 0L) params.add("max_id=" + maxId); params.add("limit=" + settings.getListSize()); try { Statuses result = createStatuses(get(endpoint, params)); // posts from reply endpoint should not be sorted - if (result.size() > 1 && !endpoint.endsWith("/context")) + if (result.size() > 1 && !endpoint.endsWith("/context")) { Collections.sort(result); + // alternative to min_id parameter: filtering all posts below min_id + // to get the most recent posts first, instead of scrolling to top + for (int i = result.size() - 1; i >= 0; i--) { + Status item = result.get(i); + if (item != null && item.getId() <= minId) { + result.remove(i); + } + } + } return result; } catch (IOException e) { throw new MastodonException(e);