Save the a copy of the notification marker ID locally (#3672)
Not all servers support the marker API. If they don't the user will potentially get duplicate Android notifications. To resolve this, store a copy of the notification marker ID locally as well. Defer to the remote marker if it exists (and is newer than the local marker). Fixes https://github.com/tuskyapp/Tusky/issues/3671
This commit is contained in:
parent
f69c2646ca
commit
d644f6e6f3
4 changed files with 1037 additions and 7 deletions
|
|
@ -15,6 +15,7 @@
|
|||
|
||||
package com.keylesspalace.tusky.db
|
||||
|
||||
import androidx.room.ColumnInfo
|
||||
import androidx.room.Entity
|
||||
import androidx.room.Index
|
||||
import androidx.room.PrimaryKey
|
||||
|
|
@ -70,7 +71,19 @@ data class AccountEntity(
|
|||
* that media previews are shown as well as downloaded.
|
||||
*/
|
||||
var mediaPreviewEnabled: Boolean = true,
|
||||
/**
|
||||
* ID of the last notification the user read on the Notification, list, and should be restored
|
||||
* to view when the user returns to the list.
|
||||
*
|
||||
* May not be the ID of the most recent notification if the user has scrolled down the list.
|
||||
*/
|
||||
var lastNotificationId: String = "0",
|
||||
/**
|
||||
* ID of the most recent Mastodon notification that Tusky has fetched to show as an
|
||||
* Android notification.
|
||||
*/
|
||||
@ColumnInfo(defaultValue = "0")
|
||||
var notificationMarkerId: String = "0",
|
||||
var emojis: List<Emoji> = emptyList(),
|
||||
var tabPreferences: List<TabData> = defaultTabs(),
|
||||
var notificationsFilter: String = "[\"follow_request\"]",
|
||||
|
|
|
|||
|
|
@ -41,10 +41,11 @@ import java.io.File;
|
|||
TimelineAccountEntity.class,
|
||||
ConversationEntity.class
|
||||
},
|
||||
version = 50,
|
||||
version = 51,
|
||||
autoMigrations = {
|
||||
@AutoMigration(from = 48, to = 49),
|
||||
@AutoMigration(from = 49, to = 50, spec = AppDatabase.MIGRATION_49_50.class)
|
||||
@AutoMigration(from = 49, to = 50, spec = AppDatabase.MIGRATION_49_50.class),
|
||||
@AutoMigration(from = 50, to = 51)
|
||||
}
|
||||
)
|
||||
public abstract class AppDatabase extends RoomDatabase {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue