summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDanny Baumann <dannybaumann@web.de>2015-02-11 11:31:32 +0100
committerAdnan Begovic <adnan@cyngn.com>2015-10-29 17:36:29 -0700
commitcf72f6d3554bcf937b0fe05d3728fad34a34b877 (patch)
treeec2ab3722582935cdc50953056674c83e3084b54
parent853513841512a0fbf15dc22c7164a98d0a2de80b (diff)
downloadpackages_apps_Settings-cf72f6d3554bcf937b0fe05d3728fad34a34b877.zip
packages_apps_Settings-cf72f6d3554bcf937b0fe05d3728fad34a34b877.tar.gz
packages_apps_Settings-cf72f6d3554bcf937b0fe05d3728fad34a34b877.tar.bz2
Only access CMHW from main thread.
Some CMHW classes might expect that they're created in the main thread, e.g. if they want to use Handlers. Change-Id: I319709a423547368b3c4f047c2efbfab4c191953
-rw-r--r--src/com/android/settings/DisplaySettings.java39
-rw-r--r--src/com/android/settings/search/BaseSearchIndexProvider.java4
-rw-r--r--src/com/android/settings/search/Index.java12
-rw-r--r--src/com/android/settings/search/Indexable.java5
4 files changed, 58 insertions, 2 deletions
diff --git a/src/com/android/settings/DisplaySettings.java b/src/com/android/settings/DisplaySettings.java
index 6bc46cb..66f9136 100644
--- a/src/com/android/settings/DisplaySettings.java
+++ b/src/com/android/settings/DisplaySettings.java
@@ -684,9 +684,9 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
}
}
- private boolean isPostProcessingSupported() {
+ private static boolean isPostProcessingSupported(Context context) {
boolean ret = true;
- final PackageManager pm = getPackageManager();
+ final PackageManager pm = context.getPackageManager();
try {
pm.getPackageInfo("com.qualcomm.display", PackageManager.GET_META_DATA);
} catch (NameNotFoundException e) {
@@ -724,6 +724,19 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new BaseSearchIndexProvider() {
+ private boolean mHasTapToWake;
+ private boolean mHasSunlightEnhancement, mHasColorEnhancement;
+ private boolean mHasDisplayGamma, mHasDisplayColor;
+
+ @Override
+ public void prepare() {
+ mHasTapToWake = isTapToWakeSupported();
+ mHasSunlightEnhancement = isSunlightEnhancementSupported();
+ mHasColorEnhancement = isColorEnhancementSupported();
+ mHasDisplayGamma = DisplayGamma.isSupported();
+ mHasDisplayColor = DisplayColor.isSupported();
+ }
+
@Override
public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
boolean enabled) {
@@ -744,6 +757,28 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
com.android.internal.R.bool.config_dreamsSupported)) {
result.add(KEY_SCREEN_SAVER);
}
+ if (!context.getResources().getBoolean(
+ com.android.internal.R.bool.config_proximityCheckOnWake)) {
+ result.add(KEY_PROXIMITY_WAKE);
+ }
+ if (!mHasTapToWake) {
+ result.add(KEY_TAP_TO_WAKE);
+ }
+ if (!mHasSunlightEnhancement) {
+ result.add(KEY_SUNLIGHT_ENHANCEMENT);
+ }
+ if (!mHasColorEnhancement) {
+ result.add(KEY_COLOR_ENHANCEMENT);
+ }
+ if (!isPostProcessingSupported(context)) {
+ result.add(KEY_SCREEN_COLOR_SETTINGS);
+ }
+ if (!mHasDisplayColor) {
+ result.add(KEY_DISPLAY_COLOR);
+ }
+ if (!mHasDisplayGamma) {
+ result.add(KEY_DISPLAY_GAMMA);
+ }
if (!isAutomaticBrightnessAvailable(context.getResources())) {
result.add(KEY_AUTO_BRIGHTNESS);
}
diff --git a/src/com/android/settings/search/BaseSearchIndexProvider.java b/src/com/android/settings/search/BaseSearchIndexProvider.java
index 0fe1944..49e2803 100644
--- a/src/com/android/settings/search/BaseSearchIndexProvider.java
+++ b/src/com/android/settings/search/BaseSearchIndexProvider.java
@@ -33,6 +33,10 @@ public class BaseSearchIndexProvider implements Indexable.SearchIndexProvider {
}
@Override
+ public void prepare() {
+ }
+
+ @Override
public List<SearchIndexableResource> getXmlResourcesToIndex(Context context, boolean enabled) {
return null;
}
diff --git a/src/com/android/settings/search/Index.java b/src/com/android/settings/search/Index.java
index 267c6c0..c58923f 100644
--- a/src/com/android/settings/search/Index.java
+++ b/src/com/android/settings/search/Index.java
@@ -529,6 +529,18 @@ public class Index {
synchronized (mDataToProcess) {
final UpdateIndexTask task = new UpdateIndexTask();
UpdateData copy = mDataToProcess.copy();
+ for (SearchIndexableData data : copy.dataToUpdate) {
+ if (data instanceof SearchIndexableResource) {
+ SearchIndexableResource sir = (SearchIndexableResource) data;
+ final Class<?> clazz = sir.className != null
+ ? getIndexableClass(sir.className) : null;
+ final Indexable.SearchIndexProvider provider = clazz != null
+ ? getSearchIndexProvider(clazz) : null;
+ if (provider != null) {
+ provider.prepare();
+ }
+ }
+ }
task.execute(copy);
mDataToProcess.clear();
}
diff --git a/src/com/android/settings/search/Indexable.java b/src/com/android/settings/search/Indexable.java
index 19f88ae..c1c5b08 100644
--- a/src/com/android/settings/search/Indexable.java
+++ b/src/com/android/settings/search/Indexable.java
@@ -65,5 +65,10 @@ public interface Indexable {
* @return a list of {@link SearchIndexableRaw} references. Can be null.
*/
List<String> getNonIndexableKeys(Context context);
+
+ /**
+ * Prepare for indexing. Guaranteed to be called from the main thread.
+ */
+ void prepare();
}
}