From: Fan Zhang Date: Sat, 22 Jul 2017 00:01:00 +0000 (-0700) Subject: Post preference update logic to main thread X-Git-Tag: android-x86-9.0-r1~348^2 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=d6e51123a479478c1f7a7553b54bf2bf97417ba2;p=android-x86%2Fpackages-apps-Settings.git Post preference update logic to main thread Change-Id: Ic1e1f64446a9aec9da7dce3fd23ae4ba17b25b28 Fix: 36131513 Test: robotests in the same topic --- diff --git a/src/com/android/settings/applications/assist/AssistSettingObserver.java b/src/com/android/settings/applications/assist/AssistSettingObserver.java index e4941d1ba4..01a3a7a8bd 100644 --- a/src/com/android/settings/applications/assist/AssistSettingObserver.java +++ b/src/com/android/settings/applications/assist/AssistSettingObserver.java @@ -19,8 +19,10 @@ package com.android.settings.applications.assist; import android.content.ContentResolver; import android.database.ContentObserver; import android.net.Uri; -import android.os.Handler; import android.provider.Settings; +import android.support.annotation.MainThread; + +import com.android.settingslib.utils.ThreadUtils; import java.util.List; @@ -38,8 +40,9 @@ public abstract class AssistSettingObserver extends ContentObserver { cr.registerContentObserver(ASSIST_URI, false, this); final List settingUri = getSettingUris(); if (settingUri != null) { - for (Uri uri : settingUri) - cr.registerContentObserver(uri, false, this); + for (Uri uri : settingUri) { + cr.registerContentObserver(uri, false, this); + } } } else { cr.unregisterContentObserver(this); @@ -55,11 +58,15 @@ public abstract class AssistSettingObserver extends ContentObserver { shouldUpdatePreference = true; } if (shouldUpdatePreference) { - onSettingChange(); + ThreadUtils.postOnMainThread(() -> { + onSettingChange(); + }); + } } protected abstract List getSettingUris(); + @MainThread public abstract void onSettingChange(); }