cmparts: Make CMParts searchable
* Implement a SearchIndexablesProvider to allow the Settings app
to crawl our resources.
* Add all missing metadata where necessary so resources can be
indexed.
Change-Id: Ic8f304a7995b269f476eda6306d11b366621f4b0
diff --git a/res/values/attrs.xml b/res/values/attrs.xml
index 6f018b1..4737694 100644
--- a/res/values/attrs.xml
+++ b/res/values/attrs.xml
@@ -19,11 +19,6 @@
<attr name="icon" />
</declare-styleable>
- <!-- For Search -->
- <declare-styleable name="Preference">
- <attr name="keywords" format="string" />
- </declare-styleable>
-
<!-- For DotsPageIndicator -->
<declare-styleable name="DotsPageIndicator">
<attr name="dotDiameter" format="dimension" />
diff --git a/res/xml/anonymous_stats.xml b/res/xml/anonymous_stats.xml
index 30a65d5..b29885c 100644
--- a/res/xml/anonymous_stats.xml
+++ b/res/xml/anonymous_stats.xml
@@ -16,6 +16,7 @@
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
+ android:key="cmstats"
android:title="@string/anonymous_statistics_title">
<cyanogenmod.preference.CMSecureSettingSwitchPreference
diff --git a/res/xml/appgroup_list.xml b/res/xml/appgroup_list.xml
index 848ce21..ee497a2 100644
--- a/res/xml/appgroup_list.xml
+++ b/res/xml/appgroup_list.xml
@@ -17,6 +17,6 @@
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
android:key="profile_appgroups_list"
- xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
+ android:title="@string/profile_appgroups_title">
-</PreferenceScreen>
\ No newline at end of file
+</PreferenceScreen>
diff --git a/res/xml/application_list.xml b/res/xml/application_list.xml
index 43c506f..6df1234 100644
--- a/res/xml/application_list.xml
+++ b/res/xml/application_list.xml
@@ -14,8 +14,7 @@
limitations under the License.
-->
-<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory
android:key="general_section"
@@ -27,4 +26,4 @@
android:title="@string/profile_applist_title" >
</PreferenceCategory>
-</PreferenceScreen>
\ No newline at end of file
+</PreferenceScreen>
diff --git a/res/xml/battery_light_settings.xml b/res/xml/battery_light_settings.xml
index 34b74d0..454ab1a 100644
--- a/res/xml/battery_light_settings.xml
+++ b/res/xml/battery_light_settings.xml
@@ -15,8 +15,7 @@
-->
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
- android:key="battery_light"
+ android:key="battery_lights"
android:title="@string/battery_light_title">
<PreferenceCategory
diff --git a/res/xml/button_settings.xml b/res/xml/button_settings.xml
index c58650e..de9c062 100644
--- a/res/xml/button_settings.xml
+++ b/res/xml/button_settings.xml
@@ -14,7 +14,9 @@
limitations under the License.
-->
-<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+ android:key="button_settings"
+ android:title="@string/button_pref_title">
<SwitchPreference
android:key="disable_nav_keys"
diff --git a/res/xml/display_rotation.xml b/res/xml/display_rotation.xml
index b36df56..1ce81e8 100644
--- a/res/xml/display_rotation.xml
+++ b/res/xml/display_rotation.xml
@@ -15,6 +15,7 @@
-->
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+ android:key="rotation"
android:title="@string/display_rotation_title">
<SwitchPreference
diff --git a/res/xml/livedisplay.xml b/res/xml/livedisplay.xml
index ef1d9bd..443e17a 100644
--- a/res/xml/livedisplay.xml
+++ b/res/xml/livedisplay.xml
@@ -14,7 +14,9 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+ android:key="livedisplay"
+ android:title="@*cyanogenmod.platform:string/live_display_title">
<PreferenceCategory
android:key="live_display_options"
diff --git a/res/xml/notification_light_settings.xml b/res/xml/notification_light_settings.xml
index 7035490..b9e0ce1 100644
--- a/res/xml/notification_light_settings.xml
+++ b/res/xml/notification_light_settings.xml
@@ -15,7 +15,7 @@
-->
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
- android:key="notification_light"
+ android:key="notification_lights"
android:title="@string/notification_light_title">
<PreferenceCategory
diff --git a/res/xml/parts_catalog.xml b/res/xml/parts_catalog.xml
index 94d6a7a..8fec12f 100644
--- a/res/xml/parts_catalog.xml
+++ b/res/xml/parts_catalog.xml
@@ -15,15 +15,28 @@
limitations under the License.
-->
-<parts-catalog xmlns:android="http://schemas.android.com/apk/res/android">
+<!--
+ The parts catalog is used to locate items (usually a PreferenceScreen) inside
+ of CMParts. This can be used by CMPartsPreference to create a simple, two-line
+ entry point from Settings or another application. All entries should specify
+ a fragment, which is a SettingsPreferenceFragment subclass inside CMParts.
+
+ Metadata for the search index provider should be provided for all parts. This
+ can be supplied an XML resource in the "cm:xmlRes" attribute or by implementing
+ the Searchable interface.
+-->
+<parts-catalog xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:cm="http://schemas.android.com/apk/res/cyanogenmod.platform">
<part android:key="battery_lights"
android:title="@string/battery_light_title"
- android:fragment="org.cyanogenmod.cmparts.notificationlight.BatteryLightSettings" />
+ android:fragment="org.cyanogenmod.cmparts.notificationlight.BatteryLightSettings"
+ cm:xmlRes="@xml/battery_light_settings" />
<part android:key="button_settings"
android:title="@string/button_pref_title"
- android:fragment="org.cyanogenmod.cmparts.input.ButtonSettings" />
+ android:fragment="org.cyanogenmod.cmparts.input.ButtonSettings"
+ cm:xmlRes="@xml/button_settings" />
<part android:key="contributors"
android:title="@string/contributors_cloud_fragment_title"
@@ -32,26 +45,47 @@
<part android:key="livedisplay"
android:title="@*cyanogenmod.platform:string/live_display_title"
android:summary="@string/live_display_summary"
- android:fragment="org.cyanogenmod.cmparts.livedisplay.LiveDisplay" />
+ android:fragment="org.cyanogenmod.cmparts.livedisplay.LiveDisplay"
+ cm:xmlRes="@xml/livedisplay" />
<part android:key="notification_lights"
android:title="@string/notification_light_title"
- android:fragment="org.cyanogenmod.cmparts.notificationlight.NotificationLightSettings" />
+ android:fragment="org.cyanogenmod.cmparts.notificationlight.NotificationLightSettings"
+ cm:xmlRes="@xml/notification_light_settings" />
<part android:key="privacy_settings"
android:title="@string/privacy_settings_title"
- android:fragment="org.cyanogenmod.cmparts.PrivacySettings" />
+ android:fragment="org.cyanogenmod.cmparts.PrivacySettings"
+ cm:xmlRes="@xml/privacy_settings" />
<part android:key="profiles_settings"
android:title="@string/profiles_settings_title"
- android:fragment="org.cyanogenmod.cmparts.profiles.ProfilesSettings" />
+ android:fragment="org.cyanogenmod.cmparts.profiles.ProfilesSettings"
+ cm:xmlRes="@xml/profiles_settings" />
<part android:key="rotation"
android:title="@string/display_rotation_title"
- android:fragment="org.cyanogenmod.cmparts.hardware.DisplayRotation" />
+ android:fragment="org.cyanogenmod.cmparts.hardware.DisplayRotation"
+ cm:xmlRes="@xml/display_rotation" />
<part android:key="status_bar_settings"
android:title="@string/status_bar_title"
- android:fragment="org.cyanogenmod.cmparts.statusbar.StatusBarSettings" />
+ android:fragment="org.cyanogenmod.cmparts.statusbar.StatusBarSettings"
+ cm:xmlRes="@xml/status_bar_settings" />
+
+ <part android:key="cmstats"
+ android:title="@string/anonymous_statistics_title"
+ android:fragment="org.cyanogenmod.cmparts.cmstats.AnonymousStats"
+ cm:xmlRes="@xml/anonymous_stats" />
+
+ <part android:key="power_menu"
+ android:title="@string/power_menu_title"
+ android:fragment="org.cyanogenmod.cmparts.input.PowerMenuActions"
+ cm:xmlRes="@xml/power_menu_settings" />
+
+ <part android:key="privacy_guard_manager"
+ android:title="@*cyanogenmod.platform:string/privacy_guard_manager_title"
+ android:fragment="org.cyanogenmod.cmparts.privacyguard.PrivacyGuardManager"
+ cm:xmlRes="@xml/privacy_guard_prefs" />
</parts-catalog>
diff --git a/res/xml/power_menu_settings.xml b/res/xml/power_menu_settings.xml
index 36e1d65..5843c61 100644
--- a/res/xml/power_menu_settings.xml
+++ b/res/xml/power_menu_settings.xml
@@ -16,6 +16,7 @@
-->
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
+ android:key="power_menu"
android:title="@string/power_menu_title">
<CheckBoxPreference
diff --git a/res/xml/privacy_guard_prefs.xml b/res/xml/privacy_guard_prefs.xml
index f77cdfc..ad91bef 100644
--- a/res/xml/privacy_guard_prefs.xml
+++ b/res/xml/privacy_guard_prefs.xml
@@ -15,7 +15,9 @@
-->
<PreferenceScreen
- xmlns:android="http://schemas.android.com/apk/res/android">
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:key="privacy_guard_manager"
+ android:title="@*cyanogenmod.platform:string/privacy_guard_manager_title">
<SwitchPreference
android:key="privacy_guard_default"
diff --git a/res/xml/profiles_settings.xml b/res/xml/profiles_settings.xml
index d3c477c..94c6deb 100644
--- a/res/xml/profiles_settings.xml
+++ b/res/xml/profiles_settings.xml
@@ -16,5 +16,5 @@
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
- android:key="profiles_list" />
+ android:key="profiles_settings"
+ android:title="@string/profiles_settings_title" />
diff --git a/res/xml/status_bar_settings.xml b/res/xml/status_bar_settings.xml
index 6569250..13f302b 100644
--- a/res/xml/status_bar_settings.xml
+++ b/res/xml/status_bar_settings.xml
@@ -16,6 +16,7 @@
-->
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
+ android:key="status_bar_settings"
android:title="@string/status_bar_title">
<PreferenceScreen