Post preference update logic to main thread

Change-Id: Ic1e1f64446a9aec9da7dce3fd23ae4ba17b25b28
Fix: 36131513
Test: robotests in the same topic
This commit is contained in:
Fan Zhang
2017-07-21 17:01:00 -07:00
parent a17567bd4b
commit d6e51123a4

View 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();
}