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) {