That fuck shit the fascists are using
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}