From e3891419b38bf87f2568c382a6de8bcdb739439a Mon Sep 17 00:00:00 2001 From: cooltey Date: Tue, 10 Sep 2024 13:32:46 -0700 Subject: [PATCH] Fix: clear notifications from the db after logging out --- app/src/main/java/org/wikipedia/WikipediaApp.kt | 2 ++ .../org/wikipedia/notifications/db/NotificationDao.kt | 10 +++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/wikipedia/WikipediaApp.kt b/app/src/main/java/org/wikipedia/WikipediaApp.kt index c19ab134a97..fad5c55adac 100644 --- a/app/src/main/java/org/wikipedia/WikipediaApp.kt +++ b/app/src/main/java/org/wikipedia/WikipediaApp.kt @@ -19,6 +19,7 @@ import org.wikipedia.appshortcuts.AppShortcuts import org.wikipedia.auth.AccountUtil import org.wikipedia.concurrency.FlowEventBus import org.wikipedia.connectivity.ConnectionStateMonitor +import org.wikipedia.database.AppDatabase import org.wikipedia.dataclient.ServiceFactory import org.wikipedia.dataclient.SharedPreferenceCookieManager import org.wikipedia.dataclient.WikiSite @@ -251,6 +252,7 @@ class WikipediaApp : Application() { ServiceFactory.get(wikiSite).postLogout(token) }.invokeOnCompletion { SharedPreferenceCookieManager.instance.clearAllCookies() + AppDatabase.instance.notificationDao().deleteAll() L.d("Logout complete.") } } diff --git a/app/src/main/java/org/wikipedia/notifications/db/NotificationDao.kt b/app/src/main/java/org/wikipedia/notifications/db/NotificationDao.kt index 18bf76838f7..33cb76a6278 100644 --- a/app/src/main/java/org/wikipedia/notifications/db/NotificationDao.kt +++ b/app/src/main/java/org/wikipedia/notifications/db/NotificationDao.kt @@ -1,6 +1,11 @@ package org.wikipedia.notifications.db -import androidx.room.* +import androidx.room.Dao +import androidx.room.Delete +import androidx.room.Insert +import androidx.room.OnConflictStrategy +import androidx.room.Query +import androidx.room.Update import kotlinx.coroutines.flow.Flow @Dao @@ -14,6 +19,9 @@ interface NotificationDao { @Delete suspend fun deleteNotification(notification: Notification) + @Query("DELETE FROM Notification") + fun deleteAll() + @Query("SELECT * FROM Notification") fun getAllNotifications(): List