diff --git a/src/com/android/settings/notification/AppNotificationSettings.java b/src/com/android/settings/notification/AppNotificationSettings.java index 1cae8050e1d..91035732143 100644 --- a/src/com/android/settings/notification/AppNotificationSettings.java +++ b/src/com/android/settings/notification/AppNotificationSettings.java @@ -29,7 +29,6 @@ import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.ResolveInfo; import android.content.pm.Signature; -import android.content.res.Resources; import android.graphics.drawable.Drawable; import android.os.AsyncTask; import android.os.Bundle; @@ -54,9 +53,6 @@ import android.widget.SectionIndexer; import android.widget.TextView; import com.android.settings.R; -import com.android.settings.search.BaseSearchIndexProvider; -import com.android.settings.search.Indexable; -import com.android.settings.search.SearchIndexableRaw; import java.text.Collator; import java.util.ArrayList; @@ -64,7 +60,8 @@ import java.util.Collections; import java.util.Comparator; import java.util.List; -public class AppNotificationSettings extends ListFragment implements Indexable { +/** Just a sectioned list of installed applications, nothing else to index **/ +public class AppNotificationSettings extends ListFragment { private static final String TAG = "AppNotificationSettings"; private static final boolean DEBUG = true; @@ -586,27 +583,4 @@ public class AppNotificationSettings extends ListFragment implements Indexable { return true; } } - - // === Indexing === - - public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = - new BaseSearchIndexProvider() { - @Override - public List getRawDataToIndex(Context context, boolean enabled) { - final List result = new ArrayList(); - add(result, context, R.string.app_notifications_title); - add(result, context, R.string.app_notifications_dialog_show); - add(result, context, R.string.app_notifications_dialog_priority); - add(result, context, R.string.app_notifications_dialog_visibility); - return result; - } - - private void add(List result, Context context, int title) { - final Resources res = context.getResources(); - final SearchIndexableRaw data = new SearchIndexableRaw(context); - data.title = res.getString(title); - data.screenTitle = res.getString(R.string.app_notifications_title); - result.add(data); - } - }; } diff --git a/src/com/android/settings/notification/NotificationDisplaySettings.java b/src/com/android/settings/notification/NotificationDisplaySettings.java index 8c492e234e4..7842cad80a4 100644 --- a/src/com/android/settings/notification/NotificationDisplaySettings.java +++ b/src/com/android/settings/notification/NotificationDisplaySettings.java @@ -17,15 +17,12 @@ package com.android.settings.notification; import android.content.ContentResolver; -import android.content.Context; -import android.content.res.Resources; import android.database.ContentObserver; import android.net.Uri; import android.os.Bundle; import android.os.Handler; import android.preference.Preference; import android.preference.Preference.OnPreferenceChangeListener; -import android.preference.Preference.OnPreferenceClickListener; import android.preference.PreferenceScreen; import android.preference.TwoStatePreference; import android.provider.Settings; @@ -33,14 +30,8 @@ import android.util.Log; import com.android.settings.R; import com.android.settings.SettingsPreferenceFragment; -import com.android.settings.search.BaseSearchIndexProvider; -import com.android.settings.search.Indexable; -import com.android.settings.search.SearchIndexableRaw; -import java.util.ArrayList; -import java.util.List; - -public class NotificationDisplaySettings extends SettingsPreferenceFragment implements Indexable { +public class NotificationDisplaySettings extends SettingsPreferenceFragment { private static final String TAG = "NotificationDisplaySettings"; private static final String KEY_NOTIFICATION_PULSE = "notification_pulse"; @@ -183,29 +174,6 @@ public class NotificationDisplaySettings extends SettingsPreferenceFragment impl Settings.Secure.DISPLAY_INTERCEPTED_NOTIFICATIONS, 0)); } - // === Indexing === - - public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = - new BaseSearchIndexProvider() { - @Override - public List getRawDataToIndex(Context context, boolean enabled) { - final List result = new ArrayList(); - add(result, context, R.string.notification_display_settings); - add(result, context, R.string.notification_pulse_title); - add(result, context, R.string.lock_screen_notifications_title); - add(result, context, R.string.zen_mode_notifications_title); - return result; - } - - private void add(List result, Context context, int title) { - final Resources res = context.getResources(); - final SearchIndexableRaw data = new SearchIndexableRaw(context); - data.title = res.getString(title); - data.screenTitle = res.getString(R.string.notification_display_settings); - result.add(data); - } - }; - // === Callbacks === private final class SettingsObserver extends ContentObserver { diff --git a/src/com/android/settings/notification/NotificationSettings.java b/src/com/android/settings/notification/NotificationSettings.java index 61df4192fce..b67032a89d9 100644 --- a/src/com/android/settings/notification/NotificationSettings.java +++ b/src/com/android/settings/notification/NotificationSettings.java @@ -22,7 +22,6 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.pm.PackageManager; -import android.content.res.Resources; import android.database.ContentObserver; import android.media.AudioManager; import android.media.RingtoneManager; @@ -42,14 +41,8 @@ import android.provider.Settings; import com.android.settings.R; import com.android.settings.SettingsPreferenceFragment; import com.android.settings.SoundSettings; -import com.android.settings.search.BaseSearchIndexProvider; -import com.android.settings.search.Indexable; -import com.android.settings.search.SearchIndexableRaw; -import java.util.ArrayList; -import java.util.List; - -public class NotificationSettings extends SettingsPreferenceFragment implements Indexable { +public class NotificationSettings extends SettingsPreferenceFragment { private static final String TAG = "NotificationSettings"; private static final String KEY_MEDIA_VOLUME = "media_volume"; @@ -245,33 +238,6 @@ public class NotificationSettings extends SettingsPreferenceFragment implements } } - // === Indexing === - - public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = - new BaseSearchIndexProvider() { - @Override - public List getRawDataToIndex(Context context, boolean enabled) { - final List result = new ArrayList(); - add(result, context, R.string.notification_settings); - add(result, context, R.string.media_volume_option_title); - add(result, context, R.string.alarm_volume_option_title); - add(result, context, R.string.ring_volume_option_title); - add(result, context, R.string.ringer_mode_title); - add(result, context, R.string.ringtone_title); - add(result, context, R.string.vibrate_when_ringing_title); - add(result, context, R.string.manage_notification_access_title); - return result; - } - - private void add(List result, Context context, int title) { - final Resources res = context.getResources(); - final SearchIndexableRaw data = new SearchIndexableRaw(context); - data.title = res.getString(title); - data.screenTitle = res.getString(R.string.notification_settings); - result.add(data); - } - }; - // === Callbacks === private final BroadcastReceiver mReceiver = new BroadcastReceiver() { diff --git a/src/com/android/settings/notification/TouchSoundSettings.java b/src/com/android/settings/notification/TouchSoundSettings.java index fe122d31e53..2d7149eda5d 100644 --- a/src/com/android/settings/notification/TouchSoundSettings.java +++ b/src/com/android/settings/notification/TouchSoundSettings.java @@ -18,7 +18,6 @@ package com.android.settings.notification; import android.content.ContentResolver; import android.content.Context; -import android.content.res.Resources; import android.database.ContentObserver; import android.media.AudioManager; import android.net.Uri; @@ -27,23 +26,14 @@ import android.os.Handler; import android.os.Vibrator; import android.preference.Preference; import android.preference.Preference.OnPreferenceChangeListener; -import android.preference.Preference.OnPreferenceClickListener; -import android.preference.PreferenceScreen; import android.preference.TwoStatePreference; import android.provider.Settings.System; -import android.util.Log; import com.android.settings.R; import com.android.settings.SettingsPreferenceFragment; import com.android.settings.Utils; -import com.android.settings.search.BaseSearchIndexProvider; -import com.android.settings.search.Indexable; -import com.android.settings.search.SearchIndexableRaw; -import java.util.ArrayList; -import java.util.List; - -public class TouchSoundSettings extends SettingsPreferenceFragment implements Indexable { +public class TouchSoundSettings extends SettingsPreferenceFragment { private static final String TAG = "TouchSoundSettings"; private static final String KEY_DIAL_PAD_TONES = "dial_pad_tones"; @@ -145,30 +135,6 @@ public class TouchSoundSettings extends SettingsPreferenceFragment implements In } } - // === Indexing === - - public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = - new BaseSearchIndexProvider() { - @Override - public List getRawDataToIndex(Context context, boolean enabled) { - final List result = new ArrayList(); - add(result, context, R.string.touch_sound_settings); - add(result, context, R.string.dial_pad_tones_title); - add(result, context, R.string.screen_locking_sounds_title); - add(result, context, R.string.other_touch_sounds_title); - add(result, context, R.string.vibrate_on_touch_title); - return result; - } - - private void add(List result, Context context, int title) { - final Resources res = context.getResources(); - final SearchIndexableRaw data = new SearchIndexableRaw(context); - data.title = res.getString(title); - data.screenTitle = res.getString(R.string.touch_sound_settings); - result.add(data); - } - }; - // === Callbacks === private final class SettingsObserver extends ContentObserver { diff --git a/src/com/android/settings/notification/ZenModeSettings.java b/src/com/android/settings/notification/ZenModeSettings.java index f72bde02a86..e69fe951a9c 100644 --- a/src/com/android/settings/notification/ZenModeSettings.java +++ b/src/com/android/settings/notification/ZenModeSettings.java @@ -45,6 +45,7 @@ import android.service.notification.Condition; import android.service.notification.ZenModeConfig; import android.text.format.DateFormat; import android.util.Log; +import android.util.SparseArray; import android.view.View; import android.view.ViewGroup; import android.widget.Switch; @@ -75,11 +76,29 @@ public class ZenModeSettings extends SettingsPreferenceFragment implements Index private static final String KEY_AUTOMATIC = "automatic"; private static final String KEY_WHEN = "when"; + private static final String KEY_START_TIME = "start_time"; + private static final String KEY_END_TIME = "end_time"; private static final String KEY_AUTOMATION = "automation"; private static final String KEY_ENTRY = "entry"; private static final String KEY_CONDITION_PROVIDERS = "manage_condition_providers"; + private static final SparseArray ALL_KEY_TITLES = allKeyTitles(); + + private static SparseArray allKeyTitles() { + final SparseArray rt = new SparseArray(); + rt.put(R.string.zen_mode_general_category, KEY_GENERAL); + rt.put(R.string.zen_mode_phone_calls, KEY_CALLS); + rt.put(R.string.zen_mode_messages, KEY_MESSAGES); + rt.put(R.string.zen_mode_automatic_category, KEY_AUTOMATIC); + rt.put(R.string.zen_mode_when, KEY_WHEN); + rt.put(R.string.zen_mode_start_time, KEY_START_TIME); + rt.put(R.string.zen_mode_end_time, KEY_END_TIME); + rt.put(R.string.zen_mode_automation_category, KEY_AUTOMATION); + rt.put(R.string.manage_condition_providers, KEY_CONDITION_PROVIDERS); + return rt; + } + private final Handler mHandler = new Handler(); private final SettingsObserver mSettingsObserver = new SettingsObserver(); @@ -217,6 +236,7 @@ public class ZenModeSettings extends SettingsPreferenceFragment implements Index final FragmentManager mgr = getFragmentManager(); mStart = new TimePickerPreference(mContext, mgr); + mStart.setKey(KEY_START_TIME); mStart.setTitle(R.string.zen_mode_start_time); mStart.setCallback(new TimePickerPreference.Callback() { @Override @@ -238,6 +258,7 @@ public class ZenModeSettings extends SettingsPreferenceFragment implements Index mStart.setDependency(mWhen.getKey()); mEnd = new TimePickerPreference(mContext, mgr); + mEnd.setKey(KEY_END_TIME); mEnd.setTitle(R.string.zen_mode_end_time); mEnd.setSummaryFormat(R.string.zen_mode_end_time_summary_format); mEnd.setCallback(new TimePickerPreference.Callback() { @@ -449,24 +470,17 @@ public class ZenModeSettings extends SettingsPreferenceFragment implements Index new BaseSearchIndexProvider() { @Override public List getRawDataToIndex(Context context, boolean enabled) { - final List result = new ArrayList(); - add(result, context, R.string.zen_mode_settings_title); - add(result, context, R.string.zen_mode_general_category); - add(result, context, R.string.zen_mode_phone_calls); - add(result, context, R.string.zen_mode_messages); - add(result, context, R.string.zen_mode_automatic_category); - add(result, context, R.string.zen_mode_when); - add(result, context, R.string.zen_mode_start_time); - add(result, context, R.string.zen_mode_end_time); - return result; - } - - private void add(List result, Context context, int title) { + final int N = ALL_KEY_TITLES.size(); + final List result = new ArrayList(N); final Resources res = context.getResources(); - final SearchIndexableRaw data = new SearchIndexableRaw(context); - data.title = res.getString(title); - data.screenTitle = res.getString(R.string.zen_mode_settings_title); - result.add(data); + for (int i = 0; i < N; i++) { + final SearchIndexableRaw data = new SearchIndexableRaw(context); + data.key = ALL_KEY_TITLES.valueAt(i); + data.title = res.getString(ALL_KEY_TITLES.keyAt(i)); + data.screenTitle = res.getString(R.string.zen_mode_settings_title); + result.add(data); + } + return result; } }; diff --git a/src/com/android/settings/search/SearchIndexableResources.java b/src/com/android/settings/search/SearchIndexableResources.java index e3f004dbedd..03f06e67f7a 100644 --- a/src/com/android/settings/search/SearchIndexableResources.java +++ b/src/com/android/settings/search/SearchIndexableResources.java @@ -36,7 +36,6 @@ import com.android.settings.deviceinfo.Memory; import com.android.settings.fuelgauge.PowerUsageSummary; import com.android.settings.inputmethod.InputMethodAndLanguageSettings; import com.android.settings.location.LocationSettings; -import com.android.settings.notification.AppNotificationSettings; import com.android.settings.notification.NotificationDisplaySettings; import com.android.settings.notification.NotificationSettings; import com.android.settings.notification.TouchSoundSettings; @@ -158,12 +157,6 @@ public final class SearchIndexableResources { ZenModeSettings.class.getName(), R.drawable.ic_settings_notifications)); - sResMap.put(AppNotificationSettings.class.getName(), - new SearchIndexableResource(RANK_NOTIFICATIONS, - NO_DATA_RES_ID, - AppNotificationSettings.class.getName(), - R.drawable.ic_settings_notifications)); - sResMap.put(Memory.class.getName(), new SearchIndexableResource(RANK_MEMORY, NO_DATA_RES_ID,