Schedule jobs with WorkManager.

Should help solve most of our pressing targetSdk=26 migration issues.
This commit is contained in:
Greyson Parrelli
2018-08-09 10:15:43 -04:00
parent d10a44f8eb
commit 87e6aa48bb
55 changed files with 1442 additions and 1192 deletions

View File

@@ -25,6 +25,11 @@ import android.database.Cursor;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.preference.PreferenceManager;
import org.thoughtcrime.securesms.jobmanager.Job;
import org.thoughtcrime.securesms.jobmanager.JobManager;
import org.thoughtcrime.securesms.jobmanager.persistence.JavaJobSerializer;
import org.thoughtcrime.securesms.jobmanager.persistence.PersistentStorage;
import org.thoughtcrime.securesms.logging.Log;
import android.view.View;
import android.widget.ProgressBar;
@@ -85,6 +90,7 @@ public class DatabaseUpgradeActivity extends BaseActivity {
public static final int FULL_TEXT_SEARCH = 358;
public static final int BAD_IMPORT_CLEANUP = 373;
public static final int IMAGE_CACHE_CLEANUP = 406;
public static final int WORKMANAGER_MIGRATION = 408;
private static final SortedSet<Integer> UPGRADE_VERSIONS = new TreeSet<Integer>() {{
add(NO_MORE_KEY_EXCHANGE_PREFIX_VERSION);
@@ -108,6 +114,7 @@ public class DatabaseUpgradeActivity extends BaseActivity {
add(FULL_TEXT_SEARCH);
add(BAD_IMPORT_CLEANUP);
add(IMAGE_CACHE_CLEANUP);
add(WORKMANAGER_MIGRATION);
}};
private MasterSecret masterSecret;
@@ -318,6 +325,18 @@ public class DatabaseUpgradeActivity extends BaseActivity {
}
}
if (params[0] < WORKMANAGER_MIGRATION) {
Log.i(TAG, "Beginning migration of existing jobs to WorkManager");
JobManager jobManager = ApplicationContext.getInstance(getApplicationContext()).getJobManager();
PersistentStorage storage = new PersistentStorage(getApplicationContext(), "TextSecureJobs", new JavaJobSerializer());
for (Job job : storage.getAllUnencrypted()) {
jobManager.add(job);
Log.i(TAG, "Migrated job with class '" + job.getClass().getSimpleName() + "' to run on new JobManager.");
}
}
return null;
}