diff --git a/app/src/main/java/app/fedilab/android/client/entities/app/StatusCache.java b/app/src/main/java/app/fedilab/android/client/entities/app/StatusCache.java index 0ef274f0c..2a5b75e7c 100644 --- a/app/src/main/java/app/fedilab/android/client/entities/app/StatusCache.java +++ b/app/src/main/java/app/fedilab/android/client/entities/app/StatusCache.java @@ -409,6 +409,26 @@ public class StatusCache { } } + /** + * delete all cached notification for an account + * + * @return long - db id + * @throws DBException exception with database + */ + public long deleteNotifications() throws DBException { + if (db == null) { + throw new DBException("db is null. Wrong initialization."); + } + try { + return db.delete(Sqlite.TABLE_STATUS_CACHE, + Sqlite.COL_USER_ID + " = ? AND " + Sqlite.COL_INSTANCE + " =? AND " + Sqlite.COL_TYPE + "=?", + new String[]{MainActivity.currentUserID, MainActivity.currentInstance, Timeline.TimeLineEnum.NOTIFICATION.getValue()}); + } catch (Exception e) { + e.printStackTrace(); + return -1; + } + } + /** * delete all cache for an account * diff --git a/app/src/main/java/app/fedilab/android/ui/drawer/ComposeAdapter.java b/app/src/main/java/app/fedilab/android/ui/drawer/ComposeAdapter.java index 43f9d8438..e16fdacd2 100644 --- a/app/src/main/java/app/fedilab/android/ui/drawer/ComposeAdapter.java +++ b/app/src/main/java/app/fedilab/android/ui/drawer/ComposeAdapter.java @@ -420,6 +420,9 @@ public class ComposeAdapter extends RecyclerView.Adapter 0) { diff --git a/app/src/main/java/app/fedilab/android/viewmodel/mastodon/NotificationsVM.java b/app/src/main/java/app/fedilab/android/viewmodel/mastodon/NotificationsVM.java index b10ecf537..ca3d7252e 100644 --- a/app/src/main/java/app/fedilab/android/viewmodel/mastodon/NotificationsVM.java +++ b/app/src/main/java/app/fedilab/android/viewmodel/mastodon/NotificationsVM.java @@ -231,6 +231,10 @@ public class NotificationsVM extends AndroidViewModel { MastodonNotificationsService mastodonNotificationsService = init(instance); new Thread(() -> { Call voidCall = mastodonNotificationsService.clearAllNotifications(token); + try { + new StatusCache(getApplication().getApplicationContext()).deleteNotifications(); + } catch (Exception ignored) { + } if (voidCall != null) { try { voidCall.execute();