From b03eccec3379e8470e00ec6b7b179b59c8ad9468 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Fri, 27 Sep 2019 14:18:15 -0400 Subject: [PATCH] Persist the JobFactory key after job migrations. --- .../thoughtcrime/securesms/jobmanager/JobManager.java | 2 +- .../securesms/jobmanager/JobMigrator.java | 2 +- .../migrations/RecipientIdFollowUpJobMigration.java | 6 +++++- .../migrations/RecipientIdFollowUpJobMigration2.java | 11 +++++++++++ .../securesms/jobs/JobManagerFactories.java | 4 +++- 5 files changed, 21 insertions(+), 4 deletions(-) create mode 100644 src/org/thoughtcrime/securesms/jobmanager/migrations/RecipientIdFollowUpJobMigration2.java diff --git a/src/org/thoughtcrime/securesms/jobmanager/JobManager.java b/src/org/thoughtcrime/securesms/jobmanager/JobManager.java index e6bd64e20f..e8cd81b0f1 100644 --- a/src/org/thoughtcrime/securesms/jobmanager/JobManager.java +++ b/src/org/thoughtcrime/securesms/jobmanager/JobManager.java @@ -33,7 +33,7 @@ public class JobManager implements ConstraintObserver.Notifier { 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 Configuration configuration; diff --git a/src/org/thoughtcrime/securesms/jobmanager/JobMigrator.java b/src/org/thoughtcrime/securesms/jobmanager/JobMigrator.java index 58646bf662..459afbc8c0 100644 --- a/src/org/thoughtcrime/securesms/jobmanager/JobMigrator.java +++ b/src/org/thoughtcrime/securesms/jobmanager/JobMigrator.java @@ -65,7 +65,7 @@ public class JobMigrator { JobData originalJobData = new JobData(jobSpec.getFactoryKey(), jobSpec.getQueueKey(), data); JobData updatedJobData = migration.migrate(originalJobData); JobSpec updatedJobSpec = new JobSpec(jobSpec.getId(), - jobSpec.getFactoryKey(), + updatedJobData.getFactoryKey(), updatedJobData.getQueueKey(), jobSpec.getCreateTime(), jobSpec.getNextRunAttemptTime(), diff --git a/src/org/thoughtcrime/securesms/jobmanager/migrations/RecipientIdFollowUpJobMigration.java b/src/org/thoughtcrime/securesms/jobmanager/migrations/RecipientIdFollowUpJobMigration.java index 4207c6da0a..948517cec1 100644 --- a/src/org/thoughtcrime/securesms/jobmanager/migrations/RecipientIdFollowUpJobMigration.java +++ b/src/org/thoughtcrime/securesms/jobmanager/migrations/RecipientIdFollowUpJobMigration.java @@ -13,7 +13,11 @@ import org.thoughtcrime.securesms.jobmanager.JobMigration; public class RecipientIdFollowUpJobMigration extends JobMigration { public RecipientIdFollowUpJobMigration() { - super(3); + this(3); + } + + RecipientIdFollowUpJobMigration(int endVersion) { + super(endVersion); } @Override diff --git a/src/org/thoughtcrime/securesms/jobmanager/migrations/RecipientIdFollowUpJobMigration2.java b/src/org/thoughtcrime/securesms/jobmanager/migrations/RecipientIdFollowUpJobMigration2.java new file mode 100644 index 0000000000..cb463ddf3f --- /dev/null +++ b/src/org/thoughtcrime/securesms/jobmanager/migrations/RecipientIdFollowUpJobMigration2.java @@ -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); + } +} diff --git a/src/org/thoughtcrime/securesms/jobs/JobManagerFactories.java b/src/org/thoughtcrime/securesms/jobs/JobManagerFactories.java index 643b789e0c..e062e2f796 100644 --- a/src/org/thoughtcrime/securesms/jobs/JobManagerFactories.java +++ b/src/org/thoughtcrime/securesms/jobs/JobManagerFactories.java @@ -15,6 +15,7 @@ import org.thoughtcrime.securesms.jobmanager.impl.NetworkOrCellServiceConstraint import org.thoughtcrime.securesms.jobmanager.impl.SqlCipherMigrationConstraint; import org.thoughtcrime.securesms.jobmanager.impl.SqlCipherMigrationConstraintObserver; 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.migrations.DatabaseMigrationJob; import org.thoughtcrime.securesms.migrations.LegacyMigrationJob; @@ -110,6 +111,7 @@ public final class JobManagerFactories { public static List getJobMigrations(@NonNull Application application) { return Arrays.asList(new RecipientIdJobMigration(application), - new RecipientIdFollowUpJobMigration()); + new RecipientIdFollowUpJobMigration(), + new RecipientIdFollowUpJobMigration2()); } }