That fuck shit the fascists are using
at master 93 lines 3.0 kB view raw
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}