OSDN Git Service

Post preference update logic to main thread
authorFan Zhang <zhfan@google.com>
Sat, 22 Jul 2017 00:01:00 +0000 (17:01 -0700)
committerFan Zhang <zhfan@google.com>
Sat, 22 Jul 2017 00:04:42 +0000 (17:04 -0700)
Change-Id: Ic1e1f64446a9aec9da7dce3fd23ae4ba17b25b28
Fix: 36131513
Test: robotests in the same topic

src/com/android/settings/applications/assist/AssistSettingObserver.java

index e4941d1..01a3a7a 100644 (file)
@@ -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<Uri> 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<Uri> getSettingUris();
 
+    @MainThread
     public abstract void onSettingChange();
 }