diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java index 61ec0e76c8d4c..d1d745fe2b937 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java @@ -246,6 +246,7 @@ public class SettingsProvider extends ContentProvider { public static final String RESULT_ROWS_DELETED = "result_rows_deleted"; public static final String RESULT_SETTINGS_LIST = "result_settings_list"; + public static final String SETTINGS_PROVIDER_JOBS_NS = "SettingsProviderJobsNamespace"; // Used for scheduling jobs to make a copy for the settings files public static final int WRITE_FALLBACK_SETTINGS_FILES_JOB_ID = 1; public static final long ONE_DAY_INTERVAL_MILLIS = 24 * 60 * 60 * 1000L; @@ -2785,12 +2786,13 @@ public class SettingsProvider extends ContentProvider { */ public void scheduleWriteFallbackFilesJob() { final Context context = getContext(); - final JobScheduler jobScheduler = + JobScheduler jobScheduler = (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE); if (jobScheduler == null) { // Might happen: SettingsProvider is created before JobSchedulerService in system server return; } + jobScheduler = jobScheduler.forNamespace(SETTINGS_PROVIDER_JOBS_NS); // Check if the job is already scheduled. If so, skip scheduling another one if (jobScheduler.getPendingJob(WRITE_FALLBACK_SETTINGS_FILES_JOB_ID) != null) { return; diff --git a/packages/SettingsProvider/src/com/android/providers/settings/WriteFallbackSettingsFilesJobService.java b/packages/SettingsProvider/src/com/android/providers/settings/WriteFallbackSettingsFilesJobService.java index 66aa7baa3b51b..91e8bf83b4fa0 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/WriteFallbackSettingsFilesJobService.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/WriteFallbackSettingsFilesJobService.java @@ -16,6 +16,7 @@ package com.android.providers.settings; +import static com.android.providers.settings.SettingsProvider.SETTINGS_PROVIDER_JOBS_NS; import static com.android.providers.settings.SettingsProvider.TABLE_CONFIG; import static com.android.providers.settings.SettingsProvider.TABLE_GLOBAL; import static com.android.providers.settings.SettingsProvider.TABLE_SECURE; @@ -35,7 +36,8 @@ import java.util.List; public class WriteFallbackSettingsFilesJobService extends JobService { @Override public boolean onStartJob(final JobParameters params) { - if (params.getJobId() != WRITE_FALLBACK_SETTINGS_FILES_JOB_ID) { + if (!SETTINGS_PROVIDER_JOBS_NS.equals(params.getJobNamespace()) + || params.getJobId() != WRITE_FALLBACK_SETTINGS_FILES_JOB_ID) { return false; } final List settingsFiles = new ArrayList<>();