Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e8e927a2 authored by Song Chun Fan's avatar Song Chun Fan Committed by Android (Google) Code Review
Browse files

Merge "[SettingsProvider] use JobScheduler.forNamespace to avoid conflicting jobs" into main

parents e637245e b125801b
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -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;
+3 −1
Original line number Diff line number Diff line
@@ -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<String> settingsFiles = new ArrayList<>();