diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/BackupSubscriptionCheckJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/BackupSubscriptionCheckJob.kt index 0c9b35b371..9fc033af3d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/BackupSubscriptionCheckJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/BackupSubscriptionCheckJob.kt @@ -76,6 +76,12 @@ class BackupSubscriptionCheckJob private constructor(parameters: Parameters) : C return Result.success() } + if (SignalStore.account.isLinkedDevice) { + Log.i(TAG, "Linked device. Clearing mismatch value and exiting.", true) + SignalStore.backup.subscriptionStateMismatchDetected = false + return Result.success() + } + if (!RemoteConfig.messageBackups) { Log.i(TAG, "Message backups feature is not available. Clearing mismatch value and exiting.", true) SignalStore.backup.subscriptionStateMismatchDetected = false diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/InAppPaymentRecurringContextJob.kt b/app/src/main/java/org/thoughtcrime/securesms/jobs/InAppPaymentRecurringContextJob.kt index 9476769174..d6f6e4f86b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/InAppPaymentRecurringContextJob.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/InAppPaymentRecurringContextJob.kt @@ -154,6 +154,11 @@ class InAppPaymentRecurringContextJob private constructor( throw Exception("Unregistered users cannot perform this job.") } + if (SignalStore.account.isLinkedDevice) { + warning("Linked device. Failing.") + throw Exception("Linked devices cannot not perform this job") + } + val (inAppPayment, requestContext) = getAndValidateInAppPayment() val activeSubscription = getActiveSubscription(inAppPayment) val subscription = activeSubscription.activeSubscription diff --git a/app/src/test/java/org/thoughtcrime/securesms/jobs/InAppPaymentRecurringContextJobTest.kt b/app/src/test/java/org/thoughtcrime/securesms/jobs/InAppPaymentRecurringContextJobTest.kt index a59eb735e3..4faafc19e9 100644 --- a/app/src/test/java/org/thoughtcrime/securesms/jobs/InAppPaymentRecurringContextJobTest.kt +++ b/app/src/test/java/org/thoughtcrime/securesms/jobs/InAppPaymentRecurringContextJobTest.kt @@ -67,6 +67,7 @@ class InAppPaymentRecurringContextJobTest { Log.initialize(SystemOutLogger()) every { mockSignalStore.account.isRegistered } returns true + every { mockSignalStore.account.isLinkedDevice } returns false every { mockSignalStore.inAppPayments.setLastEndOfPeriod(any()) } returns Unit recipientTable = mockk(relaxed = true)