Fix blocking bugs for internal link and sync testing.

This commit is contained in:
Cody Henthorne
2025-10-08 16:09:01 -04:00
parent 33a7f55fa3
commit f8eaa96412
27 changed files with 212 additions and 124 deletions

View File

@@ -171,6 +171,11 @@ object RegistrationRepository {
suspend fun registerAccountLocally(context: Context, data: LocalRegistrationMetadata) =
withContext(Dispatchers.IO) {
Log.v(TAG, "registerAccountLocally()")
if (data.linkedDeviceInfo != null) {
SignalStore.account.deviceId = data.linkedDeviceInfo.deviceId
SignalStore.account.deviceName = data.linkedDeviceInfo.deviceName
}
val aciIdentityKeyPair = data.getAciIdentityKeyPair()
val pniIdentityKeyPair = data.getPniIdentityKeyPair()
SignalStore.account.restoreAciIdentityKeyFromBackup(aciIdentityKeyPair.publicKey.serialize(), aciIdentityKeyPair.privateKey.serialize())
@@ -219,9 +224,6 @@ object RegistrationRepository {
saveOwnIdentityKey(selfId, pni, pniProtocolStore, now)
if (data.linkedDeviceInfo != null) {
SignalStore.account.deviceId = data.linkedDeviceInfo.deviceId
SignalStore.account.deviceName = data.linkedDeviceInfo.deviceName
if (data.linkedDeviceInfo.accountEntropyPool != null) {
SignalStore.account.setAccountEntropyPoolFromPrimaryDevice(AccountEntropyPool(data.linkedDeviceInfo.accountEntropyPool))
}
@@ -254,7 +256,6 @@ object RegistrationRepository {
RotateSignedPreKeyListener.schedule(context)
} else {
SignalStore.account.isMultiDevice = true
SignalStore.registration.hasUploadedProfile = true
jobManager.runJobBlocking(RefreshOwnProfileJob(), 30.seconds)
jobManager.add(RotateCertificateJob())

View File

@@ -51,7 +51,7 @@ object StorageServiceRestore {
val isMissingProfileData = RegistrationRepository.isMissingProfileData()
RegistrationUtil.maybeMarkRegistrationComplete()
if (!isMissingProfileData) {
if (!isMissingProfileData && SignalStore.account.isPrimaryDevice) {
AppDependencies.jobManager.add(ProfileUploadJob())
}
}

View File

@@ -36,7 +36,7 @@ public final class RegistrationUtil {
if (!SignalStore.registration().isRegistrationComplete() &&
SignalStore.account().isRegistered() &&
!Recipient.self().getProfileName().isEmpty() &&
(SignalStore.svr().hasPin() || SignalStore.svr().hasOptedOut()) &&
(SignalStore.svr().hasPin() || SignalStore.svr().hasOptedOut() || SignalStore.account().isLinkedDevice()) &&
RestoreDecisionStateUtil.isTerminal(SignalStore.registration().getRestoreDecisionState()))
{
Log.i(TAG, "Marking registration completed.", new Throwable());