From ebec547dd0c54a97517dbfb27de1e3630c00f8b4 Mon Sep 17 00:00:00 2001 From: Matthieu <24-artectrex@users.noreply.shinice.net> Date: Sat, 14 Aug 2021 19:40:31 +0200 Subject: [PATCH] Only clear feed from the right user --- .../cachedFeeds/notifications/NotificationsRemoteMediator.kt | 2 +- .../feeds/cachedFeeds/postFeeds/HomeFeedRemoteMediator.kt | 2 +- .../feeds/cachedFeeds/postFeeds/PublicFeedRemoteMediator.kt | 2 +- .../pixeldroid/app/utils/db/dao/feedContent/FeedContentDao.kt | 2 +- .../app/utils/db/dao/feedContent/NotificationDao.kt | 4 ++-- .../app/utils/db/dao/feedContent/posts/HomePostDao.kt | 4 ++-- .../app/utils/db/dao/feedContent/posts/PublicPostDao.kt | 4 ++-- 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/org/pixeldroid/app/posts/feeds/cachedFeeds/notifications/NotificationsRemoteMediator.kt b/app/src/main/java/org/pixeldroid/app/posts/feeds/cachedFeeds/notifications/NotificationsRemoteMediator.kt index 7fbeff26..8ad0e03e 100644 --- a/app/src/main/java/org/pixeldroid/app/posts/feeds/cachedFeeds/notifications/NotificationsRemoteMediator.kt +++ b/app/src/main/java/org/pixeldroid/app/posts/feeds/cachedFeeds/notifications/NotificationsRemoteMediator.kt @@ -73,7 +73,7 @@ class NotificationsRemoteMediator @Inject constructor( db.withTransaction { // clear table in the database if (loadType == LoadType.REFRESH) { - db.notificationDao().clearFeedContent() + db.notificationDao().clearFeedContent(user.user_id, user.instance_uri) } db.notificationDao().insertAll(apiResponse) } diff --git a/app/src/main/java/org/pixeldroid/app/posts/feeds/cachedFeeds/postFeeds/HomeFeedRemoteMediator.kt b/app/src/main/java/org/pixeldroid/app/posts/feeds/cachedFeeds/postFeeds/HomeFeedRemoteMediator.kt index cf6cad08..b5ef519c 100644 --- a/app/src/main/java/org/pixeldroid/app/posts/feeds/cachedFeeds/postFeeds/HomeFeedRemoteMediator.kt +++ b/app/src/main/java/org/pixeldroid/app/posts/feeds/cachedFeeds/postFeeds/HomeFeedRemoteMediator.kt @@ -59,7 +59,7 @@ class HomeFeedRemoteMediator @Inject constructor( db.withTransaction { // clear table in the database if (loadType == LoadType.REFRESH) { - db.homePostDao().clearFeedContent() + db.homePostDao().clearFeedContent(user.user_id, user.instance_uri) } db.homePostDao().insertAll(dbObjects) } diff --git a/app/src/main/java/org/pixeldroid/app/posts/feeds/cachedFeeds/postFeeds/PublicFeedRemoteMediator.kt b/app/src/main/java/org/pixeldroid/app/posts/feeds/cachedFeeds/postFeeds/PublicFeedRemoteMediator.kt index bb68f3df..d832ecbc 100644 --- a/app/src/main/java/org/pixeldroid/app/posts/feeds/cachedFeeds/postFeeds/PublicFeedRemoteMediator.kt +++ b/app/src/main/java/org/pixeldroid/app/posts/feeds/cachedFeeds/postFeeds/PublicFeedRemoteMediator.kt @@ -74,7 +74,7 @@ class PublicFeedRemoteMediator @Inject constructor( db.withTransaction { // clear table in the database if (loadType == LoadType.REFRESH) { - db.publicPostDao().clearFeedContent() + db.publicPostDao().clearFeedContent(user.user_id, user.instance_uri) } db.publicPostDao().insertAll(dbObjects) } diff --git a/app/src/main/java/org/pixeldroid/app/utils/db/dao/feedContent/FeedContentDao.kt b/app/src/main/java/org/pixeldroid/app/utils/db/dao/feedContent/FeedContentDao.kt index d4985b07..31ef8e7d 100644 --- a/app/src/main/java/org/pixeldroid/app/utils/db/dao/feedContent/FeedContentDao.kt +++ b/app/src/main/java/org/pixeldroid/app/utils/db/dao/feedContent/FeedContentDao.kt @@ -9,7 +9,7 @@ interface FeedContentDao{ fun feedContent(userId: String, instanceUri: String): PagingSource - suspend fun clearFeedContent() + suspend fun clearFeedContent(userId: String, instanceUri: String) @Insert(onConflict = OnConflictStrategy.REPLACE) suspend fun insertAll(feedContent: List) diff --git a/app/src/main/java/org/pixeldroid/app/utils/db/dao/feedContent/NotificationDao.kt b/app/src/main/java/org/pixeldroid/app/utils/db/dao/feedContent/NotificationDao.kt index 0a6717df..00d93218 100644 --- a/app/src/main/java/org/pixeldroid/app/utils/db/dao/feedContent/NotificationDao.kt +++ b/app/src/main/java/org/pixeldroid/app/utils/db/dao/feedContent/NotificationDao.kt @@ -8,8 +8,8 @@ import org.pixeldroid.app.utils.api.objects.Notification @Dao interface NotificationDao: FeedContentDao { - @Query("DELETE FROM notifications") - override suspend fun clearFeedContent() + @Query("DELETE FROM notifications WHERE user_id=:userId AND instance_uri=:instanceUri") + override suspend fun clearFeedContent(userId: String, instanceUri: String) @Query("""SELECT * FROM notifications WHERE user_id=:userId AND instance_uri=:instanceUri ORDER BY CAST(created_at AS FLOAT) DESC""") diff --git a/app/src/main/java/org/pixeldroid/app/utils/db/dao/feedContent/posts/HomePostDao.kt b/app/src/main/java/org/pixeldroid/app/utils/db/dao/feedContent/posts/HomePostDao.kt index 2236785a..295d0b2a 100644 --- a/app/src/main/java/org/pixeldroid/app/utils/db/dao/feedContent/posts/HomePostDao.kt +++ b/app/src/main/java/org/pixeldroid/app/utils/db/dao/feedContent/posts/HomePostDao.kt @@ -12,8 +12,8 @@ interface HomePostDao: FeedContentDao { ORDER BY CAST(created_at AS FLOAT)""") override fun feedContent(userId: String, instanceUri: String): PagingSource - @Query("DELETE FROM homePosts") - override suspend fun clearFeedContent() + @Query("DELETE FROM homePosts WHERE user_id=:userId AND instance_uri=:instanceUri") + override suspend fun clearFeedContent(userId: String, instanceUri: String) @Query("DELETE FROM homePosts WHERE user_id=:userId AND instance_uri=:instanceUri AND id=:id") override suspend fun delete(id: String, userId: String, instanceUri: String) diff --git a/app/src/main/java/org/pixeldroid/app/utils/db/dao/feedContent/posts/PublicPostDao.kt b/app/src/main/java/org/pixeldroid/app/utils/db/dao/feedContent/posts/PublicPostDao.kt index 7901f0a1..8335628b 100644 --- a/app/src/main/java/org/pixeldroid/app/utils/db/dao/feedContent/posts/PublicPostDao.kt +++ b/app/src/main/java/org/pixeldroid/app/utils/db/dao/feedContent/posts/PublicPostDao.kt @@ -12,8 +12,8 @@ interface PublicPostDao: FeedContentDao { ORDER BY CAST(created_at AS FLOAT)""") override fun feedContent(userId: String, instanceUri: String): PagingSource - @Query("DELETE FROM publicPosts") - override suspend fun clearFeedContent() + @Query("DELETE FROM publicPosts WHERE user_id=:userId AND instance_uri=:instanceUri") + override suspend fun clearFeedContent(userId: String, instanceUri: String) @Query("DELETE FROM publicPosts WHERE user_id=:userId AND instance_uri=:instanceUri AND id=:id") override suspend fun delete(id: String, userId: String, instanceUri: String)