mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-24 04:58:45 +00:00
Add migration to fix FREE tier setting.
This commit is contained in:
@@ -87,6 +87,7 @@ import org.thoughtcrime.securesms.migrations.ProfileSharingUpdateMigrationJob;
|
||||
import org.thoughtcrime.securesms.migrations.RebuildMessageSearchIndexMigrationJob;
|
||||
import org.thoughtcrime.securesms.migrations.RecheckPaymentsMigrationJob;
|
||||
import org.thoughtcrime.securesms.migrations.RecipientSearchMigrationJob;
|
||||
import org.thoughtcrime.securesms.migrations.ResetArchiveTierMigrationJob;
|
||||
import org.thoughtcrime.securesms.migrations.SelfRegisteredStateMigrationJob;
|
||||
import org.thoughtcrime.securesms.migrations.StickerAdditionMigrationJob;
|
||||
import org.thoughtcrime.securesms.migrations.StickerDayByDayMigrationJob;
|
||||
@@ -323,6 +324,7 @@ public final class JobManagerFactories {
|
||||
put(RebuildMessageSearchIndexMigrationJob.KEY, new RebuildMessageSearchIndexMigrationJob.Factory());
|
||||
put(RecheckPaymentsMigrationJob.KEY, new RecheckPaymentsMigrationJob.Factory());
|
||||
put(RecipientSearchMigrationJob.KEY, new RecipientSearchMigrationJob.Factory());
|
||||
put(ResetArchiveTierMigrationJob.KEY, new ResetArchiveTierMigrationJob.Factory());
|
||||
put(SelfRegisteredStateMigrationJob.KEY, new SelfRegisteredStateMigrationJob.Factory());
|
||||
put(StickerLaunchMigrationJob.KEY, new StickerLaunchMigrationJob.Factory());
|
||||
put(StickerAdditionMigrationJob.KEY, new StickerAdditionMigrationJob.Factory());
|
||||
|
||||
@@ -230,6 +230,11 @@ class BackupValues(store: KeyValueStore) : SignalStoreValues(store) {
|
||||
return MessageBackupTier.deserialize(getLong(KEY_BACKUP_TIER, -1))
|
||||
}
|
||||
set(value) {
|
||||
// TODO [backup] Remove for launch
|
||||
if (!RemoteConfig.internalUser) {
|
||||
throw IllegalStateException("Setting backup tier is only allowed for internal users!")
|
||||
}
|
||||
|
||||
Log.i(TAG, "Setting backup tier to $value", Throwable(), true)
|
||||
val serializedValue = MessageBackupTier.serialize(value)
|
||||
if (value != null) {
|
||||
|
||||
@@ -185,9 +185,10 @@ public class ApplicationMigrations {
|
||||
static final int E164_FORMATTING_3 = 141;
|
||||
static final int STORAGE_LOCAL_UNKNOWNS_FIX_2 = 142;
|
||||
static final int SVR2_ENCLAVE_UPDATE_4 = 143;
|
||||
static final int RESET_ARCHIVE_TIER = 144;
|
||||
}
|
||||
|
||||
public static final int CURRENT_VERSION = 143;
|
||||
public static final int CURRENT_VERSION = 144;
|
||||
|
||||
/**
|
||||
* This *must* be called after the {@link JobManager} has been instantiated, but *before* the call
|
||||
@@ -854,6 +855,10 @@ public class ApplicationMigrations {
|
||||
jobs.put(Version.SVR2_ENCLAVE_UPDATE_4, new Svr2MirrorMigrationJob());
|
||||
}
|
||||
|
||||
if (lastSeenVersion < Version.RESET_ARCHIVE_TIER) {
|
||||
jobs.put(Version.RESET_ARCHIVE_TIER, new ResetArchiveTierMigrationJob());
|
||||
}
|
||||
|
||||
return jobs;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
package org.thoughtcrime.securesms.migrations
|
||||
|
||||
import org.signal.core.util.logging.Log
|
||||
import org.thoughtcrime.securesms.jobmanager.Job
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore
|
||||
import org.thoughtcrime.securesms.util.RemoteConfig
|
||||
|
||||
/**
|
||||
* There was an old bug that resulted in some users having their backup tier set to FREE.
|
||||
* This fixes that.
|
||||
*/
|
||||
internal class ResetArchiveTierMigrationJob(
|
||||
parameters: Parameters = Parameters.Builder().build()
|
||||
) : MigrationJob(parameters) {
|
||||
|
||||
companion object {
|
||||
val TAG = Log.tag(ResetArchiveTierMigrationJob::class.java)
|
||||
const val KEY = "ResetArchiveTierMigrationJob"
|
||||
}
|
||||
|
||||
override fun getFactoryKey(): String = KEY
|
||||
|
||||
override fun isUiBlocking(): Boolean = false
|
||||
|
||||
override fun performMigration() {
|
||||
if (SignalStore.backup.backupTier == null) {
|
||||
Log.i(TAG, "No backup tier set. Skipping.")
|
||||
return
|
||||
}
|
||||
|
||||
if (RemoteConfig.internalUser) {
|
||||
Log.i(TAG, "Internal user. Skipping.")
|
||||
return
|
||||
}
|
||||
|
||||
Log.w(TAG, "Non-internal user had backup tier set: ${SignalStore.backup.backupTier}. Resetting.")
|
||||
SignalStore.backup.backupTier = null
|
||||
}
|
||||
|
||||
override fun shouldRetry(e: Exception): Boolean = false
|
||||
|
||||
class Factory : Job.Factory<ResetArchiveTierMigrationJob> {
|
||||
override fun create(parameters: Parameters, serializedData: ByteArray?): ResetArchiveTierMigrationJob {
|
||||
return ResetArchiveTierMigrationJob(parameters)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user