From 482985517963ba89d60b02e29fe9de7f66be2efa Mon Sep 17 00:00:00 2001 From: Docile-Alligator <25734209+Docile-Alligator@users.noreply.github.com> Date: Sat, 30 Aug 2025 18:08:38 -0400 Subject: [PATCH] Fix issues when deleting the oldest read posts for users. No more app hangs. --- .../adapters/PostRecyclerViewAdapter.java | 4 ---- .../infinityforreddit/fragments/PostFragment.java | 8 -------- .../infinityforreddit/fragments/PostFragmentBase.java | 4 ---- .../infinityforreddit/readpost/InsertReadPost.java | 2 +- .../infinityforreddit/readpost/ReadPostDao.java | 2 +- 5 files changed, 2 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/PostRecyclerViewAdapter.java b/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/PostRecyclerViewAdapter.java index f7a3ac2e..7061f8dc 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/PostRecyclerViewAdapter.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/PostRecyclerViewAdapter.java @@ -3112,7 +3112,6 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter { ReadPostDao readPostDao = redditDataRoomDatabase.readPostDao(); - int limit = Math.max(readPostsLimit, 500); + int limit = Math.max(readPostsLimit, 100); boolean isReadPostLimit = readPostsLimit != -1; while (readPostDao.getReadPostsCount(username) > limit && isReadPostLimit) { readPostDao.deleteOldestReadPosts(username); diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/readpost/ReadPostDao.java b/app/src/main/java/ml/docilealligator/infinityforreddit/readpost/ReadPostDao.java index db5253a3..1d9d4aea 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/readpost/ReadPostDao.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/readpost/ReadPostDao.java @@ -26,7 +26,7 @@ public interface ReadPostDao { @Query("SELECT COUNT(id) FROM read_posts WHERE username = :username") int getReadPostsCount(String username); - @Query("DELETE FROM read_posts WHERE rowid IN (SELECT rowid FROM read_posts ORDER BY time ASC LIMIT 100) AND username = :username") + @Query("DELETE FROM read_posts WHERE rowid IN (SELECT rowid FROM read_posts WHERE username = :username ORDER BY time ASC LIMIT 100)") void deleteOldestReadPosts(String username); @Query("DELETE FROM read_posts")