That fuck shit the fascists are using
at master 71 lines 2.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.SignalDatabase; 8import org.tm.archive.dependencies.ApplicationDependencies; 9import org.tm.archive.jobmanager.Job; 10import org.tm.archive.jobmanager.impl.NetworkConstraint; 11import org.tm.archive.keyvalue.SignalStore; 12import org.whispersystems.signalservice.api.push.ServiceId.PNI; 13 14import java.io.IOException; 15 16/** 17 * Migration to fetch our own PNI from the service. 18 */ 19public class PniMigrationJob extends MigrationJob { 20 21 public static final String KEY = "PniMigrationJob"; 22 23 private static final String TAG = Log.tag(PniMigrationJob.class); 24 25 PniMigrationJob() { 26 this(new Parameters.Builder().addConstraint(NetworkConstraint.KEY).build()); 27 } 28 29 private PniMigrationJob(@NonNull Parameters parameters) { 30 super(parameters); 31 } 32 33 @Override 34 public @NonNull String getFactoryKey() { 35 return KEY; 36 } 37 38 @Override 39 boolean isUiBlocking() { 40 return false; 41 } 42 43 @Override 44 void performMigration() throws Exception { 45 if (!SignalStore.account().isRegistered() || SignalStore.account().getAci() == null) { 46 Log.w(TAG, "Not registered! Skipping migration, as it wouldn't do anything."); 47 return; 48 } 49 50 PNI pni = PNI.parseOrNull(ApplicationDependencies.getSignalServiceAccountManager().getWhoAmI().getPni()); 51 52 if (pni == null) { 53 throw new IOException("Invalid PNI!"); 54 } 55 56 SignalDatabase.recipients().linkIdsForSelf(SignalStore.account().requireAci(), pni, SignalStore.account().requireE164()); 57 SignalStore.account().setPni(pni); 58 } 59 60 @Override 61 boolean shouldRetry(@NonNull Exception e) { 62 return e instanceof IOException; 63 } 64 65 public static class Factory implements Job.Factory<PniMigrationJob> { 66 @Override 67 public @NonNull PniMigrationJob create(@NonNull Parameters parameters, @Nullable byte[] serializedData) { 68 return new PniMigrationJob(parameters); 69 } 70 } 71}