diff options
-rw-r--r-- | src/com/android/settings/DisplaySettings.java | 39 | ||||
-rw-r--r-- | src/com/android/settings/search/BaseSearchIndexProvider.java | 4 | ||||
-rw-r--r-- | src/com/android/settings/search/Index.java | 12 | ||||
-rw-r--r-- | src/com/android/settings/search/Indexable.java | 5 |
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(); } } |