Fix some PNI-related issues around change number.

This commit is contained in:
Greyson Parrelli
2022-08-29 18:06:08 -04:00
parent 29869c93b2
commit f6e000ab97
8 changed files with 52 additions and 49 deletions

View File

@@ -107,9 +107,10 @@ public class ApplicationMigrations {
static final int EMOJI_SEARCH_INDEX_10 = 63;
static final int REFRESH_PNI_REGISTRATION_ID = 64;
static final int KBS_MIGRATION_2 = 65;
static final int PNI_2 = 66;
}
public static final int CURRENT_VERSION = 65;
public static final int CURRENT_VERSION = 66;
/**
* This *must* be called after the {@link JobManager} has been instantiated, but *before* the call
@@ -471,6 +472,10 @@ public class ApplicationMigrations {
jobs.put(Version.KBS_MIGRATION_2, new KbsEnclaveMigrationJob());
}
if (lastSeenVersion < Version.PNI_2) {
jobs.put(Version.PNI_2, new PniMigrationJob());
}
return jobs;
}

View File

@@ -49,14 +49,13 @@ public class PniMigrationJob extends MigrationJob {
return;
}
RecipientId self = Recipient.self().getId();
PNI pni = PNI.parseOrNull(ApplicationDependencies.getSignalServiceAccountManager().getWhoAmI().getPni());
PNI pni = PNI.parseOrNull(ApplicationDependencies.getSignalServiceAccountManager().getWhoAmI().getPni());
if (pni == null) {
throw new IOException("Invalid PNI!");
}
SignalDatabase.recipients().setPni(self, pni);
SignalDatabase.recipients().linkIdsForSelf(SignalStore.account().requireAci(), pni, SignalStore.account().requireE164());
SignalStore.account().setPni(pni);
}