Add external Preferences indexing
- define SettingsSearchIndexablesProvider as an internal
SearchIndexablesProvider
- protect access thru using android.permission.READ_SEARCH_INDEXABLES
- update WallpaperTypeSettings and WifiSettings for taking care of
the new model
- update the Dashboard for taking care about external Icons for the
search result
- update sqlite model/version for taking care about Intents
(enable launching external applications for showing the settings)
Change-Id: I2e38599327e6480f1754f52666becce0884cee9d
diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java
index e49d827..0e6128c 100644
--- a/src/com/android/settings/SettingsActivity.java
+++ b/src/com/android/settings/SettingsActivity.java
@@ -94,14 +94,12 @@
import com.android.settings.deviceinfo.Memory;
import com.android.settings.deviceinfo.UsbSettings;
import com.android.settings.fuelgauge.PowerUsageSummary;
-import com.android.settings.indexer.Index;
-import com.android.settings.indexer.IndexableRef;
+import com.android.settings.search.Index;
import com.android.settings.inputmethod.InputMethodAndLanguageSettings;
import com.android.settings.inputmethod.KeyboardLayoutPickerFragment;
import com.android.settings.inputmethod.SpellCheckersSettings;
import com.android.settings.inputmethod.UserDictionaryList;
import com.android.settings.location.LocationSettings;
-import com.android.settings.net.DataUsageMeteredSettings;
import com.android.settings.nfc.AndroidBeam;
import com.android.settings.nfc.PaymentSettings;
import com.android.settings.print.PrintJobSettingsFragment;
@@ -342,76 +340,6 @@
}
};
- private static int NO_DATA_RES_ID = 0;
-
- /**
- * Indexable data description.
- *
- * Known restriction: we are only searching (for now) the first level of Settings.
- */
- private static IndexableRef[] INDEXABLE_REFS = new IndexableRef[] {
- new IndexableRef(1, NO_DATA_RES_ID,
- WifiSettings.class.getName(),
- R.drawable.ic_settings_wireless),
- new IndexableRef(2, R.xml.bluetooth_settings,
- BluetoothSettings.class.getName(),
- R.drawable.ic_settings_bluetooth2),
- new IndexableRef(3, R.xml.data_usage_metered_prefs,
- DataUsageMeteredSettings.class.getName(),
- R.drawable.ic_settings_data_usage),
- new IndexableRef(4, R.xml.wireless_settings,
- WirelessSettings.class.getName(),
- R.drawable.empty_icon),
- new IndexableRef(5, R.xml.home_selection,
- HomeSettings.class.getName(),
- R.drawable.ic_settings_home),
- new IndexableRef(6, R.xml.sound_settings,
- SoundSettings.class.getName(),
- R.drawable.ic_settings_sound),
- new IndexableRef(7, R.xml.display_settings,
- DisplaySettings.class.getName(),
- R.drawable.ic_settings_display),
- new IndexableRef(7, NO_DATA_RES_ID,
- WallpaperTypeSettings.class.getName(),
- R.drawable.ic_settings_display),
- new IndexableRef(8, R.xml.device_info_memory,
- Memory.class.getName(),
- R.drawable.ic_settings_storage),
- new IndexableRef(9, R.xml.power_usage_summary,
- PowerUsageSummary.class.getName(),
- R.drawable.ic_settings_battery),
- new IndexableRef(10, R.xml.user_settings,
- UserSettings.class.getName(),
- R.drawable.ic_settings_multiuser),
- new IndexableRef(11, R.xml.location_settings,
- LocationSettings.class.getName(),
- R.drawable.ic_settings_location),
- new IndexableRef(12, R.xml.security_settings,
- SecuritySettings.class.getName(),
- R.drawable.ic_settings_security),
- new IndexableRef(13, R.xml.language_settings,
- InputMethodAndLanguageSettings.class.getName(),
- R.drawable.ic_settings_language),
- new IndexableRef(14, R.xml.privacy_settings,
- PrivacySettings.class.getName(),
- R.drawable.ic_settings_backup),
- new IndexableRef(15, R.xml.date_time_prefs,
- DateTimeSettings.class.getName(),
- R.drawable.ic_settings_date_time),
- new IndexableRef(16, R.xml.accessibility_settings,
- AccessibilitySettings.class.getName(),
- R.drawable.ic_settings_accessibility),
- new IndexableRef(17, R.xml.print_settings,
- PrintSettingsFragment.class.getName(),
- com.android.internal.R.drawable.ic_print),
- new IndexableRef(18, R.xml.development_prefs,
- DevelopmentSettings.class.getName(),
- R.drawable.ic_settings_development),
- new IndexableRef(19, R.xml.device_info_settings,
- DeviceInfoSettings.class.getName(),
- R.drawable.ic_settings_about),
- };
-
@Override
public boolean onPreferenceStartFragment(PreferenceFragment caller, Preference pref) {
// Override the fragment title for Wallpaper settings
@@ -552,7 +480,6 @@
getWindow().setUiOptions(getIntent().getIntExtra(EXTRA_UI_OPTIONS, 0));
}
- Index.getInstance(this).addIndexableData(INDEXABLE_REFS);
Index.getInstance(this).update();
mAuthenticatorHelper = new AuthenticatorHelper();
@@ -914,22 +841,6 @@
}
/**
- * Switch the fragment pane to show the given preference fragment.
- *
- * (used for initial fragment)
- *
- * @param fragmentName The name of the fragment to display.
- * @param args Optional arguments to supply to the fragment.
- * @param validate true means that the fragment's Header needs to be validated.
- * @param title The title of the fragment to display.
- */
- private void switchToHeader(String fragmentName, Bundle args, boolean validate,
- CharSequence title) {
- setSelectedHeader(null);
- switchToHeaderInner(fragmentName, args, validate, false, title);
- }
-
- /**
* Switch to a specific Header with taking care of validation, Title and BackStack
*/
private void switchToHeaderInner(String fragmentName, Bundle args, boolean validate,