Initial pass to properly check multi-device environment in various spots.

This commit is contained in:
Cody Henthorne
2025-07-25 12:19:59 -04:00
committed by GitHub
parent e458a5fdb3
commit 3b028d49a5
44 changed files with 93 additions and 66 deletions

View File

@@ -30,8 +30,13 @@ internal class AepMigrationJob(
return
}
if (SignalStore.account.isLinkedDevice) {
Log.i(TAG, "Not primary, skipping.")
return
}
AppDependencies.jobManager.add(Svr2MirrorJob())
if (SignalStore.account.hasLinkedDevices) {
if (SignalStore.account.isMultiDevice) {
AppDependencies.jobManager.add(MultiDeviceKeysUpdateJob())
}
AppDependencies.jobManager.add(StorageForcePushJob())

View File

@@ -59,7 +59,7 @@ public class StickerLaunchMigrationJob extends MigrationJob {
jobManager.add(StickerPackDownloadJob.forInstall(pack.getPackId(), pack.getPackKey(), false));
if (SignalStore.account().hasLinkedDevices()) {
if (SignalStore.account().isMultiDevice()) {
jobManager.add(new MultiDeviceStickerPackOperationJob(pack.getPackId(), pack.getPackKey(), MultiDeviceStickerPackOperationJob.Type.INSTALL));
}
}

View File

@@ -50,11 +50,15 @@ public class StorageCapabilityMigrationJob extends MigrationJob {
@Override
public void performMigration() {
if (SignalStore.account().isLinkedDevice()) {
return;
}
JobManager jobManager = AppDependencies.getJobManager();
jobManager.startChain(new RefreshAttributesJob()).then(new RefreshOwnProfileJob()).enqueue();
if (SignalStore.account().hasLinkedDevices()) {
if (SignalStore.account().isMultiDevice()) {
Log.i(TAG, "Multi-device.");
jobManager.startChain(new StorageForcePushJob())
.then(new MultiDeviceKeysUpdateJob())

View File

@@ -5,7 +5,7 @@ import org.signal.core.util.withinTransaction
import org.thoughtcrime.securesms.database.SignalDatabase
import org.thoughtcrime.securesms.dependencies.AppDependencies
import org.thoughtcrime.securesms.jobmanager.Job
import org.thoughtcrime.securesms.jobs.MultiDeviceKeysUpdateJob
import org.thoughtcrime.securesms.jobs.MultiDeviceStorageSyncRequestJob
import org.thoughtcrime.securesms.jobs.StorageSyncJob
import org.thoughtcrime.securesms.keyvalue.SignalStore
@@ -43,10 +43,10 @@ internal class StorageFixLocalUnknownMigrationJob(
val jobManager = AppDependencies.jobManager
if (SignalStore.account.hasLinkedDevices) {
if (SignalStore.account.isMultiDevice) {
Log.i(TAG, "Multi-device.")
jobManager.startChain(StorageSyncJob.forLocalChange())
.then(MultiDeviceKeysUpdateJob())
.then(MultiDeviceStorageSyncRequestJob())
.enqueue()
} else {
Log.i(TAG, "Single-device.")

View File

@@ -9,6 +9,7 @@ import org.thoughtcrime.securesms.dependencies.AppDependencies;
import org.thoughtcrime.securesms.jobmanager.Job;
import org.thoughtcrime.securesms.jobmanager.JobManager;
import org.thoughtcrime.securesms.jobs.MultiDeviceKeysUpdateJob;
import org.thoughtcrime.securesms.jobs.MultiDeviceStorageSyncRequestJob;
import org.thoughtcrime.securesms.jobs.StorageSyncJob;
import org.thoughtcrime.securesms.keyvalue.SignalStore;
import org.thoughtcrime.securesms.recipients.Recipient;
@@ -52,10 +53,10 @@ public class StorageServiceMigrationJob extends MigrationJob {
JobManager jobManager = AppDependencies.getJobManager();
if (SignalStore.account().hasLinkedDevices()) {
if (SignalStore.account().isMultiDevice()) {
Log.i(TAG, "Multi-device.");
jobManager.startChain(StorageSyncJob.forLocalChange())
.then(new MultiDeviceKeysUpdateJob())
.then(new MultiDeviceStorageSyncRequestJob())
.enqueue();
} else {
Log.i(TAG, "Single-device.");

View File

@@ -21,7 +21,11 @@ internal class SyncKeysMigrationJob(
override fun isUiBlocking(): Boolean = false
override fun performMigration() {
if (SignalStore.account.hasLinkedDevices) {
if (SignalStore.account.isLinkedDevice) {
return
}
if (SignalStore.account.isMultiDevice) {
AppDependencies.jobManager.add(MultiDeviceKeysUpdateJob())
}
}