Implement #15841213 Search - index Developer Option only and only if they have been activated
- do not index Developer Options if they are not activated
- index them just after their activation
Change-Id: I54fcc6b55a1f29eb6b19d6e14e3158d4a38a6fe6
diff --git a/src/com/android/settings/DevelopmentSettings.java b/src/com/android/settings/DevelopmentSettings.java
index c7d945d..60116da 100644
--- a/src/com/android/settings/DevelopmentSettings.java
+++ b/src/com/android/settings/DevelopmentSettings.java
@@ -1586,9 +1586,22 @@
*/
public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new BaseSearchIndexProvider() {
+
+ private boolean isShowingDeveloperOptions(Context context) {
+ return context.getSharedPreferences(DevelopmentSettings.PREF_FILE,
+ Context.MODE_PRIVATE).getBoolean(
+ DevelopmentSettings.PREF_SHOW,
+ android.os.Build.TYPE.equals("eng"));
+ }
+
@Override
public List<SearchIndexableResource> getXmlResourcesToIndex(
Context context, boolean enabled) {
+
+ if (!isShowingDeveloperOptions(context)) {
+ return null;
+ }
+
final SearchIndexableResource sir = new SearchIndexableResource(context);
sir.xmlResId = R.xml.development_prefs;
return Arrays.asList(sir);
@@ -1596,6 +1609,10 @@
@Override
public List<String> getNonIndexableKeys(Context context) {
+ if (!isShowingDeveloperOptions(context)) {
+ return null;
+ }
+
final List<String> keys = new ArrayList<String>();
if (!showEnableOemUnlockPreference()) {
keys.add(ENABLE_OEM_UNLOCK);
diff --git a/src/com/android/settings/DeviceInfoSettings.java b/src/com/android/settings/DeviceInfoSettings.java
index c26e4ab..b6d8fef 100644
--- a/src/com/android/settings/DeviceInfoSettings.java
+++ b/src/com/android/settings/DeviceInfoSettings.java
@@ -41,6 +41,7 @@
import android.util.Log;
import android.widget.Toast;
import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settings.search.Index;
import com.android.settings.search.Indexable;
import java.io.BufferedReader;
@@ -212,6 +213,11 @@
mDevHitToast = Toast.makeText(getActivity(), R.string.show_dev_on,
Toast.LENGTH_LONG);
mDevHitToast.show();
+ // This is good time to index the Developer Options
+ Index.getInstance(
+ getActivity().getApplicationContext()).updateFromClassNameResource(
+ DevelopmentSettings.class.getName(), true, true);
+
} else if (mDevHitCountdown > 0
&& mDevHitCountdown < (TAPS_TO_BE_A_DEVELOPER-2)) {
if (mDevHitToast != null) {