That fuck shit the fascists are using
1package org.tm.archive.migrations;
2
3import androidx.annotation.NonNull;
4import androidx.annotation.Nullable;
5
6import org.signal.core.util.logging.Log;
7import org.tm.archive.database.RecipientTable;
8import org.tm.archive.database.SignalDatabase;
9import org.tm.archive.database.model.RecipientRecord;
10import org.tm.archive.jobmanager.Job;
11import org.tm.archive.keyvalue.SignalStore;
12import org.tm.archive.recipients.Recipient;
13import org.tm.archive.storage.StorageSyncHelper;
14import org.whispersystems.signalservice.api.storage.SignalAccountRecord;
15import org.whispersystems.signalservice.api.storage.StorageId;
16import org.whispersystems.signalservice.internal.storage.protos.AccountRecord;
17
18import java.io.IOException;
19
20/**
21 * Check for unknown fields stored on self and attempt to apply them.
22 */
23public class ApplyUnknownFieldsToSelfMigrationJob extends MigrationJob {
24
25 private static final String TAG = Log.tag(ApplyUnknownFieldsToSelfMigrationJob.class);
26
27 public static final String KEY = "ApplyUnknownFieldsToSelfMigrationJob";
28
29 ApplyUnknownFieldsToSelfMigrationJob() {
30 this(new Parameters.Builder().build());
31 }
32
33 private ApplyUnknownFieldsToSelfMigrationJob(@NonNull Parameters parameters) {
34 super(parameters);
35 }
36
37 @Override
38 public boolean isUiBlocking() {
39 return false;
40 }
41
42 @Override
43 public @NonNull String getFactoryKey() {
44 return KEY;
45 }
46
47 @Override
48 public void performMigration() {
49 if (!SignalStore.account().isRegistered() || SignalStore.account().getAci() == null) {
50 Log.w(TAG, "Not registered!");
51 return;
52 }
53
54 Recipient self;
55 RecipientRecord settings;
56
57 try {
58 self = Recipient.self();
59 settings = SignalDatabase.recipients().getRecordForSync(self.getId());
60 } catch (RecipientTable.MissingRecipientException e) {
61 Log.w(TAG, "Unable to find self");
62 return;
63 }
64
65 if (settings == null || settings.getSyncExtras().getStorageProto() == null) {
66 Log.d(TAG, "No unknowns to apply");
67 return;
68 }
69
70 try {
71 StorageId storageId = StorageId.forAccount(self.getStorageServiceId());
72 AccountRecord accountRecord = AccountRecord.ADAPTER.decode(settings.getSyncExtras().getStorageProto());
73 SignalAccountRecord signalAccountRecord = new SignalAccountRecord(storageId, accountRecord);
74
75 Log.d(TAG, "Applying potentially now known unknowns");
76 StorageSyncHelper.applyAccountStorageSyncUpdates(context, self, signalAccountRecord, false);
77 } catch (IOException e) {
78 Log.w(TAG, e);
79 }
80 }
81
82 @Override
83 boolean shouldRetry(@NonNull Exception e) {
84 return false;
85 }
86
87 public static class Factory implements Job.Factory<ApplyUnknownFieldsToSelfMigrationJob> {
88 @Override
89 public @NonNull ApplyUnknownFieldsToSelfMigrationJob create(@NonNull Parameters parameters, @Nullable byte[] serializedData) {
90 return new ApplyUnknownFieldsToSelfMigrationJob(parameters);
91 }
92 }
93}