Signal-Android/app/src/main/java/org/thoughtcrime/securesms/migrations/StoryViewedReceiptsStateMig...

43 wiersze
1.5 KiB
Kotlin

package org.thoughtcrime.securesms.migrations
import org.thoughtcrime.securesms.database.SignalDatabase.Companion.recipients
import org.thoughtcrime.securesms.jobmanager.Data
import org.thoughtcrime.securesms.jobmanager.Job
import org.thoughtcrime.securesms.keyvalue.SignalStore
import org.thoughtcrime.securesms.recipients.Recipient
import org.thoughtcrime.securesms.storage.StorageSyncHelper
import org.thoughtcrime.securesms.util.TextSecurePreferences
/**
* Added as a way to initialize the story viewed receipts setting.
*/
internal class StoryViewedReceiptsStateMigrationJob(
parameters: Parameters = Parameters.Builder().build()
) : MigrationJob(parameters) {
companion object {
const val KEY = "StoryViewedReceiptsStateMigrationJob"
}
override fun getFactoryKey(): String = KEY
override fun isUiBlocking(): Boolean = false
override fun performMigration() {
if (!SignalStore.storyValues().isViewedReceiptsStateSet()) {
SignalStore.storyValues().viewedReceiptsEnabled = TextSecurePreferences.isReadReceiptsEnabled(context)
if (SignalStore.account().isRegistered) {
recipients.markNeedsSync(Recipient.self().id)
StorageSyncHelper.scheduleSyncForDataChange()
}
}
}
override fun shouldRetry(e: Exception): Boolean = false
class Factory : Job.Factory<StoryViewedReceiptsStateMigrationJob> {
override fun create(parameters: Parameters, data: Data): StoryViewedReceiptsStateMigrationJob {
return StoryViewedReceiptsStateMigrationJob(parameters)
}
}
}