Remove fix group left incorrectly migration job.
This commit is contained in:
parent
e9d80f4379
commit
6a210b4f9d
3 changed files with 5 additions and 73 deletions
|
@ -14,8 +14,8 @@ import org.thoughtcrime.securesms.jobmanager.impl.BatteryNotLowConstraint;
|
|||
import org.thoughtcrime.securesms.jobmanager.impl.CellServiceConstraintObserver;
|
||||
import org.thoughtcrime.securesms.jobmanager.impl.ChangeNumberConstraint;
|
||||
import org.thoughtcrime.securesms.jobmanager.impl.ChangeNumberConstraintObserver;
|
||||
import org.thoughtcrime.securesms.jobmanager.impl.ChargingConstraint;
|
||||
import org.thoughtcrime.securesms.jobmanager.impl.ChargingAndBatteryIsNotLowConstraintObserver;
|
||||
import org.thoughtcrime.securesms.jobmanager.impl.ChargingConstraint;
|
||||
import org.thoughtcrime.securesms.jobmanager.impl.DataRestoreConstraint;
|
||||
import org.thoughtcrime.securesms.jobmanager.impl.DataRestoreConstraintObserver;
|
||||
import org.thoughtcrime.securesms.jobmanager.impl.DecryptionsDrainedConstraint;
|
||||
|
@ -67,7 +67,6 @@ import org.thoughtcrime.securesms.migrations.EmojiDownloadMigrationJob;
|
|||
import org.thoughtcrime.securesms.migrations.EmojiSearchIndexCheckMigrationJob;
|
||||
import org.thoughtcrime.securesms.migrations.GooglePlayBillingPurchaseTokenMigrationJob;
|
||||
import org.thoughtcrime.securesms.migrations.IdentityTableCleanupMigrationJob;
|
||||
import org.thoughtcrime.securesms.migrations.InactiveGroupCheckMigrationJob;
|
||||
import org.thoughtcrime.securesms.migrations.LegacyMigrationJob;
|
||||
import org.thoughtcrime.securesms.migrations.MigrationCompleteJob;
|
||||
import org.thoughtcrime.securesms.migrations.OptimizeMessageSearchIndexMigrationJob;
|
||||
|
@ -294,7 +293,6 @@ public final class JobManagerFactories {
|
|||
put(EmojiSearchIndexCheckMigrationJob.KEY, new EmojiSearchIndexCheckMigrationJob.Factory());
|
||||
put(GooglePlayBillingPurchaseTokenMigrationJob.KEY, new GooglePlayBillingPurchaseTokenMigrationJob.Factory());
|
||||
put(IdentityTableCleanupMigrationJob.KEY, new IdentityTableCleanupMigrationJob.Factory());
|
||||
put(InactiveGroupCheckMigrationJob.KEY, new InactiveGroupCheckMigrationJob.Factory());
|
||||
put(LegacyMigrationJob.KEY, new LegacyMigrationJob.Factory());
|
||||
put(MigrationCompleteJob.KEY, new MigrationCompleteJob.Factory());
|
||||
put(OptimizeMessageSearchIndexMigrationJob.KEY, new OptimizeMessageSearchIndexMigrationJob.Factory());
|
||||
|
@ -378,6 +376,7 @@ public final class JobManagerFactories {
|
|||
put("SubscriptionReceiptCredentialsSubmissionJob", new FailingJob.Factory());
|
||||
put("DonationReceiptRedemptionJob", new FailingJob.Factory());
|
||||
put("SendGiftJob", new FailingJob.Factory());
|
||||
put("InactiveGroupCheckMigrationJob", new PassingMigrationJob.Factory());
|
||||
}};
|
||||
}
|
||||
|
||||
|
|
|
@ -774,9 +774,9 @@ public class ApplicationMigrations {
|
|||
jobs.put(Version.SSRE2_CAPABILITY, new AttributesMigrationJob());
|
||||
}
|
||||
|
||||
if (lastSeenVersion < Version.FIX_INACTIVE_GROUPS) {
|
||||
jobs.put(Version.FIX_INACTIVE_GROUPS, new InactiveGroupCheckMigrationJob());
|
||||
}
|
||||
// if (lastSeenVersion < Version.FIX_INACTIVE_GROUPS) {
|
||||
// jobs.put(Version.FIX_INACTIVE_GROUPS, new InactiveGroupCheckMigrationJob());
|
||||
// }
|
||||
|
||||
return jobs;
|
||||
}
|
||||
|
|
|
@ -1,67 +0,0 @@
|
|||
package org.thoughtcrime.securesms.migrations
|
||||
|
||||
import org.signal.core.util.logging.Log
|
||||
import org.signal.storageservice.protos.groups.local.DecryptedGroup
|
||||
import org.thoughtcrime.securesms.database.SignalDatabase
|
||||
import org.thoughtcrime.securesms.dependencies.AppDependencies
|
||||
import org.thoughtcrime.securesms.jobmanager.Job
|
||||
import org.thoughtcrime.securesms.jobs.RequestGroupV2InfoJob
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore
|
||||
import org.whispersystems.signalservice.api.push.ServiceId
|
||||
import org.whispersystems.signalservice.api.push.ServiceIds
|
||||
|
||||
/**
|
||||
* Migration to fix groups that we locally marked as inactive because of the server
|
||||
* but may not actually be left.
|
||||
*/
|
||||
internal class InactiveGroupCheckMigrationJob(
|
||||
parameters: Parameters = Parameters.Builder().build()
|
||||
) : MigrationJob(parameters) {
|
||||
|
||||
companion object {
|
||||
val TAG = Log.tag(InactiveGroupCheckMigrationJob::class.java)
|
||||
const val KEY = "InactiveGroupCheckMigrationJob"
|
||||
}
|
||||
|
||||
override fun getFactoryKey(): String = KEY
|
||||
|
||||
override fun isUiBlocking(): Boolean = false
|
||||
|
||||
override fun performMigration() {
|
||||
if (SignalStore.account.aci == null) {
|
||||
Log.w(TAG, "ACI missing, abort")
|
||||
return
|
||||
}
|
||||
|
||||
val serviceIds = SignalStore.account.getServiceIds()
|
||||
|
||||
SignalDatabase
|
||||
.groups
|
||||
.getInactiveGroups()
|
||||
.use { reader ->
|
||||
reader
|
||||
.asSequence()
|
||||
.filter { it.isV2Group }
|
||||
.filter { it.requireV2GroupProperties().decryptedGroup.isMember(serviceIds) }
|
||||
.forEach {
|
||||
AppDependencies.jobManager.add(RequestGroupV2InfoJob(it.id.requireV2()))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun DecryptedGroup.isMember(serviceIds: ServiceIds): Boolean {
|
||||
return this
|
||||
.members
|
||||
.asSequence()
|
||||
.mapNotNull { ServiceId.ACI.Companion.parseOrNull(it.aciBytes) }
|
||||
.any { serviceIds.matches(it) }
|
||||
}
|
||||
|
||||
override fun shouldRetry(e: Exception): Boolean = false
|
||||
|
||||
class Factory : Job.Factory<InactiveGroupCheckMigrationJob> {
|
||||
override fun create(parameters: Parameters, serializedData: ByteArray?): InactiveGroupCheckMigrationJob {
|
||||
return InactiveGroupCheckMigrationJob(parameters)
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue