Persist the JobFactory key after job migrations.

This commit is contained in:
Greyson Parrelli 2019-09-27 14:18:15 -04:00
parent 5805539deb
commit b03eccec33
5 changed files with 21 additions and 4 deletions

View File

@ -33,7 +33,7 @@ public class JobManager implements ConstraintObserver.Notifier {
private static final String TAG = JobManager.class.getSimpleName(); private static final String TAG = JobManager.class.getSimpleName();
public static final int CURRENT_VERSION = 3; public static final int CURRENT_VERSION = 4;
private final Application application; private final Application application;
private final Configuration configuration; private final Configuration configuration;

View File

@ -65,7 +65,7 @@ public class JobMigrator {
JobData originalJobData = new JobData(jobSpec.getFactoryKey(), jobSpec.getQueueKey(), data); JobData originalJobData = new JobData(jobSpec.getFactoryKey(), jobSpec.getQueueKey(), data);
JobData updatedJobData = migration.migrate(originalJobData); JobData updatedJobData = migration.migrate(originalJobData);
JobSpec updatedJobSpec = new JobSpec(jobSpec.getId(), JobSpec updatedJobSpec = new JobSpec(jobSpec.getId(),
jobSpec.getFactoryKey(), updatedJobData.getFactoryKey(),
updatedJobData.getQueueKey(), updatedJobData.getQueueKey(),
jobSpec.getCreateTime(), jobSpec.getCreateTime(),
jobSpec.getNextRunAttemptTime(), jobSpec.getNextRunAttemptTime(),

View File

@ -13,7 +13,11 @@ import org.thoughtcrime.securesms.jobmanager.JobMigration;
public class RecipientIdFollowUpJobMigration extends JobMigration { public class RecipientIdFollowUpJobMigration extends JobMigration {
public RecipientIdFollowUpJobMigration() { public RecipientIdFollowUpJobMigration() {
super(3); this(3);
}
RecipientIdFollowUpJobMigration(int endVersion) {
super(endVersion);
} }
@Override @Override

View File

@ -0,0 +1,11 @@
package org.thoughtcrime.securesms.jobmanager.migrations;
/**
* Unfortunately there was a bug in {@link RecipientIdFollowUpJobMigration} that requires it to be
* run again.
*/
public class RecipientIdFollowUpJobMigration2 extends RecipientIdFollowUpJobMigration {
public RecipientIdFollowUpJobMigration2() {
super(4);
}
}

View File

@ -15,6 +15,7 @@ import org.thoughtcrime.securesms.jobmanager.impl.NetworkOrCellServiceConstraint
import org.thoughtcrime.securesms.jobmanager.impl.SqlCipherMigrationConstraint; import org.thoughtcrime.securesms.jobmanager.impl.SqlCipherMigrationConstraint;
import org.thoughtcrime.securesms.jobmanager.impl.SqlCipherMigrationConstraintObserver; import org.thoughtcrime.securesms.jobmanager.impl.SqlCipherMigrationConstraintObserver;
import org.thoughtcrime.securesms.jobmanager.migrations.RecipientIdFollowUpJobMigration; import org.thoughtcrime.securesms.jobmanager.migrations.RecipientIdFollowUpJobMigration;
import org.thoughtcrime.securesms.jobmanager.migrations.RecipientIdFollowUpJobMigration2;
import org.thoughtcrime.securesms.jobmanager.migrations.RecipientIdJobMigration; import org.thoughtcrime.securesms.jobmanager.migrations.RecipientIdJobMigration;
import org.thoughtcrime.securesms.migrations.DatabaseMigrationJob; import org.thoughtcrime.securesms.migrations.DatabaseMigrationJob;
import org.thoughtcrime.securesms.migrations.LegacyMigrationJob; import org.thoughtcrime.securesms.migrations.LegacyMigrationJob;
@ -110,6 +111,7 @@ public final class JobManagerFactories {
public static List<JobMigration> getJobMigrations(@NonNull Application application) { public static List<JobMigration> getJobMigrations(@NonNull Application application) {
return Arrays.asList(new RecipientIdJobMigration(application), return Arrays.asList(new RecipientIdJobMigration(application),
new RecipientIdFollowUpJobMigration()); new RecipientIdFollowUpJobMigration(),
new RecipientIdFollowUpJobMigration2());
} }
} }