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.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}