That fuck shit the fascists are using
at master 68 lines 2.1 kB view raw
1package org.tm.archive.migrations; 2 3import android.os.Build; 4 5import androidx.annotation.NonNull; 6import androidx.annotation.Nullable; 7 8import org.signal.core.util.logging.Log; 9import org.tm.archive.backup.BackupFileIOError; 10import org.tm.archive.jobmanager.Job; 11import org.tm.archive.keyvalue.SignalStore; 12import org.tm.archive.util.BackupUtil; 13 14import java.io.IOException; 15import java.util.Locale; 16 17/** 18 * Handles showing a notification if we think backups were unintentionally disabled. 19 */ 20public final class BackupNotificationMigrationJob extends MigrationJob { 21 22 private static final String TAG = Log.tag(BackupNotificationMigrationJob.class); 23 24 public static final String KEY = "BackupNotificationMigrationJob"; 25 26 BackupNotificationMigrationJob() { 27 this(new Parameters.Builder().build()); 28 } 29 30 private BackupNotificationMigrationJob(@NonNull Parameters parameters) { 31 super(parameters); 32 } 33 34 @Override 35 public boolean isUiBlocking() { 36 return false; 37 } 38 39 @Override 40 public @NonNull String getFactoryKey() { 41 return KEY; 42 } 43 44 @Override 45 public void performMigration() { 46 if (Build.VERSION.SDK_INT >= 29 && !SignalStore.settings().isBackupEnabled() && BackupUtil.hasBackupFiles(context)) { 47 Log.w(TAG, "Stranded backup! Notifying."); 48 BackupFileIOError.UNKNOWN.postNotification(context); 49 } else { 50 Log.w(TAG, String.format(Locale.US, "Does not meet criteria. API: %d, BackupsEnabled: %s, HasFiles: %s", 51 Build.VERSION.SDK_INT, 52 SignalStore.settings().isBackupEnabled(), 53 BackupUtil.hasBackupFiles(context))); 54 } 55 } 56 57 @Override 58 boolean shouldRetry(@NonNull Exception e) { 59 return e instanceof IOException; 60 } 61 62 public static class Factory implements Job.Factory<BackupNotificationMigrationJob> { 63 @Override 64 public @NonNull BackupNotificationMigrationJob create(@NonNull Parameters parameters, @Nullable byte[] serializedData) { 65 return new BackupNotificationMigrationJob(parameters); 66 } 67 } 68}