1f83ce92aaff7148019ae0863e8e60dcddd1d82b5Fan Zhang/* 28c0a4238655990094fe444ac8f7b182963497030Julia Reynolds * Copyright (C) 2015 The Android Open Source Project 38c0a4238655990094fe444ac8f7b182963497030Julia Reynolds * 48c0a4238655990094fe444ac8f7b182963497030Julia Reynolds * Licensed under the Apache License, Version 2.0 (the "License"); 58c0a4238655990094fe444ac8f7b182963497030Julia Reynolds * you may not use this file except in compliance with the License. 68c0a4238655990094fe444ac8f7b182963497030Julia Reynolds * You may obtain a copy of the License at 78c0a4238655990094fe444ac8f7b182963497030Julia Reynolds * 88c0a4238655990094fe444ac8f7b182963497030Julia Reynolds * http://www.apache.org/licenses/LICENSE-2.0 98c0a4238655990094fe444ac8f7b182963497030Julia Reynolds * 108c0a4238655990094fe444ac8f7b182963497030Julia Reynolds * Unless required by applicable law or agreed to in writing, software 118c0a4238655990094fe444ac8f7b182963497030Julia Reynolds * distributed under the License is distributed on an "AS IS" BASIS, 128c0a4238655990094fe444ac8f7b182963497030Julia Reynolds * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 138c0a4238655990094fe444ac8f7b182963497030Julia Reynolds * See the License for the specific language governing permissions and 148c0a4238655990094fe444ac8f7b182963497030Julia Reynolds * limitations under the License. 158c0a4238655990094fe444ac8f7b182963497030Julia Reynolds */ 168c0a4238655990094fe444ac8f7b182963497030Julia Reynolds 178c0a4238655990094fe444ac8f7b182963497030Julia Reynoldspackage com.android.settings.notification; 188c0a4238655990094fe444ac8f7b182963497030Julia Reynolds 19929bc614de166b5922815fffa9f0ee7ee02ed131Doris Lingimport android.app.Activity; 2002af3659e00fa4583a88b6756e8dc26fcbfb8765Julia Reynoldsimport android.app.Application; 2102af3659e00fa4583a88b6756e8dc26fcbfb8765Julia Reynoldsimport android.app.Fragment; 228c0a4238655990094fe444ac8f7b182963497030Julia Reynoldsimport android.content.Context; 234fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlasimport android.content.Intent; 244fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlasimport android.os.Bundle; 254fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlasimport android.os.UserHandle; 26a25bc6983e14d9bd1175791b28e1086b539b11b7Fan Zhangimport android.provider.SearchIndexableResource; 2783eaff5e4aed866a7ffd5a33ebd2e0b2efaaa681Fan Zhangimport android.support.annotation.VisibleForTesting; 284fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlasimport android.support.v7.preference.Preference; 29f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynoldsimport android.text.TextUtils; 30f83ce92aaff7148019ae0863e8e60dcddd1d82b5Fan Zhang 31265d3c2a0c36251bf8a9f571d7239b6dd404d942Tamas Berghammerimport com.android.internal.logging.nano.MetricsProto.MetricsEvent; 32661043571c21c39a0bf96bd7842ca62d9675c372Sudheer Shankaimport com.android.settings.R; 334fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlasimport com.android.settings.RingtonePreference; 34f83ce92aaff7148019ae0863e8e60dcddd1d82b5Fan Zhangimport com.android.settings.dashboard.DashboardFragment; 35f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynoldsimport com.android.settings.dashboard.SummaryLoader; 365b6478a34950d648f10e04f40c30293a99c5fa29Fan Zhangimport com.android.settings.gestures.SwipeToNotificationPreferenceController; 37a25bc6983e14d9bd1175791b28e1086b539b11b7Fan Zhangimport com.android.settings.search.BaseSearchIndexProvider; 38a25bc6983e14d9bd1175791b28e1086b539b11b7Fan Zhangimport com.android.settings.search.Indexable; 391d583e125faf3ae4c9cd82636d8f3ecf1cdec3aaTony Mantlerimport com.android.settingslib.core.AbstractPreferenceController; 40777ed2535a7fd6f618a0d12f381af99252283574Juan Langimport com.android.settingslib.core.lifecycle.Lifecycle; 41661043571c21c39a0bf96bd7842ca62d9675c372Sudheer Shanka 428c0a4238655990094fe444ac8f7b182963497030Julia Reynoldsimport java.util.ArrayList; 43a25bc6983e14d9bd1175791b28e1086b539b11b7Fan Zhangimport java.util.Arrays; 44f83ce92aaff7148019ae0863e8e60dcddd1d82b5Fan Zhangimport java.util.List; 454bb4886fce74c9e70505dd15425849591727fabbSudheer Shanka 46f83ce92aaff7148019ae0863e8e60dcddd1d82b5Fan Zhangpublic class ConfigureNotificationSettings extends DashboardFragment { 478c0a4238655990094fe444ac8f7b182963497030Julia Reynolds private static final String TAG = "ConfigNotiSettings"; 488c0a4238655990094fe444ac8f7b182963497030Julia Reynolds 4983eaff5e4aed866a7ffd5a33ebd2e0b2efaaa681Fan Zhang @VisibleForTesting 5083eaff5e4aed866a7ffd5a33ebd2e0b2efaaa681Fan Zhang static final String KEY_LOCKSCREEN = "lock_screen_notifications"; 5183eaff5e4aed866a7ffd5a33ebd2e0b2efaaa681Fan Zhang @VisibleForTesting 5283eaff5e4aed866a7ffd5a33ebd2e0b2efaaa681Fan Zhang static final String KEY_LOCKSCREEN_WORK_PROFILE_HEADER = 5383eaff5e4aed866a7ffd5a33ebd2e0b2efaaa681Fan Zhang "lock_screen_notifications_profile_header"; 5483eaff5e4aed866a7ffd5a33ebd2e0b2efaaa681Fan Zhang @VisibleForTesting 5583eaff5e4aed866a7ffd5a33ebd2e0b2efaaa681Fan Zhang static final String KEY_LOCKSCREEN_WORK_PROFILE = "lock_screen_notifications_profile"; 5683eaff5e4aed866a7ffd5a33ebd2e0b2efaaa681Fan Zhang @VisibleForTesting 5783eaff5e4aed866a7ffd5a33ebd2e0b2efaaa681Fan Zhang static final String KEY_SWIPE_DOWN = "gesture_swipe_down_fingerprint_notifications"; 5883eaff5e4aed866a7ffd5a33ebd2e0b2efaaa681Fan Zhang 594fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlas private static final String KEY_NOTI_DEFAULT_RINGTONE = "notification_default_ringtone"; 60c35d9b613e2fac6ecc74a067ebb0fa043c8f85e6Julia Reynolds private static final String KEY_ZEN_MODE = "zen_mode_notifications"; 614fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlas 624fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlas private RingtonePreference mRequestPreference; 634fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlas private static final int REQUEST_CODE = 200; 644fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlas private static final String SELECTED_PREFERENCE_KEY = "selected_preference"; 65742467ec9f384983f37d9a0e4e9775c27451816bMatthew Fritze 668c0a4238655990094fe444ac8f7b182963497030Julia Reynolds @Override 676507613ebcd22e4691c2af92a5c161bd327db336Fan Zhang public int getMetricsCategory() { 683e19fc5600f739e7f172fb9331cfc0f4a884d4ceJason Monk return MetricsEvent.CONFIGURE_NOTIFICATION; 698c0a4238655990094fe444ac8f7b182963497030Julia Reynolds } 708c0a4238655990094fe444ac8f7b182963497030Julia Reynolds 718c0a4238655990094fe444ac8f7b182963497030Julia Reynolds @Override 72f83ce92aaff7148019ae0863e8e60dcddd1d82b5Fan Zhang protected String getLogTag() { 73f83ce92aaff7148019ae0863e8e60dcddd1d82b5Fan Zhang return TAG; 748c0a4238655990094fe444ac8f7b182963497030Julia Reynolds } 758c0a4238655990094fe444ac8f7b182963497030Julia Reynolds 768c0a4238655990094fe444ac8f7b182963497030Julia Reynolds @Override 77f83ce92aaff7148019ae0863e8e60dcddd1d82b5Fan Zhang protected int getPreferenceScreenResId() { 78f83ce92aaff7148019ae0863e8e60dcddd1d82b5Fan Zhang return R.xml.configure_notification_settings; 798c0a4238655990094fe444ac8f7b182963497030Julia Reynolds } 808c0a4238655990094fe444ac8f7b182963497030Julia Reynolds 81f83ce92aaff7148019ae0863e8e60dcddd1d82b5Fan Zhang @Override 82f7843adabd4e8e1cc84a52721daabefa3a1410fdFan Zhang protected List<AbstractPreferenceController> createPreferenceControllers(Context context) { 8302af3659e00fa4583a88b6756e8dc26fcbfb8765Julia Reynolds final Activity activity = getActivity(); 8402af3659e00fa4583a88b6756e8dc26fcbfb8765Julia Reynolds final Application app; 8502af3659e00fa4583a88b6756e8dc26fcbfb8765Julia Reynolds if (activity != null) { 8602af3659e00fa4583a88b6756e8dc26fcbfb8765Julia Reynolds app = activity.getApplication(); 8702af3659e00fa4583a88b6756e8dc26fcbfb8765Julia Reynolds } else { 8802af3659e00fa4583a88b6756e8dc26fcbfb8765Julia Reynolds app = null; 8902af3659e00fa4583a88b6756e8dc26fcbfb8765Julia Reynolds } 9002af3659e00fa4583a88b6756e8dc26fcbfb8765Julia Reynolds return buildPreferenceControllers(context, getLifecycle(), app, this); 91a25bc6983e14d9bd1175791b28e1086b539b11b7Fan Zhang } 92a25bc6983e14d9bd1175791b28e1086b539b11b7Fan Zhang 931d583e125faf3ae4c9cd82636d8f3ecf1cdec3aaTony Mantler private static List<AbstractPreferenceController> buildPreferenceControllers(Context context, 9402af3659e00fa4583a88b6756e8dc26fcbfb8765Julia Reynolds Lifecycle lifecycle, Application app, Fragment host) { 951d583e125faf3ae4c9cd82636d8f3ecf1cdec3aaTony Mantler final List<AbstractPreferenceController> controllers = new ArrayList<>(); 96f83ce92aaff7148019ae0863e8e60dcddd1d82b5Fan Zhang final PulseNotificationPreferenceController pulseController = 97f83ce92aaff7148019ae0863e8e60dcddd1d82b5Fan Zhang new PulseNotificationPreferenceController(context); 98a25bc6983e14d9bd1175791b28e1086b539b11b7Fan Zhang final LockScreenNotificationPreferenceController lockScreenNotificationController = 9933c493777b36db3d677b051c839047a90ddc2044Fan Zhang new LockScreenNotificationPreferenceController(context, 10083eaff5e4aed866a7ffd5a33ebd2e0b2efaaa681Fan Zhang KEY_LOCKSCREEN, 10183eaff5e4aed866a7ffd5a33ebd2e0b2efaaa681Fan Zhang KEY_LOCKSCREEN_WORK_PROFILE_HEADER, 10283eaff5e4aed866a7ffd5a33ebd2e0b2efaaa681Fan Zhang KEY_LOCKSCREEN_WORK_PROFILE); 103a25bc6983e14d9bd1175791b28e1086b539b11b7Fan Zhang if (lifecycle != null) { 104a25bc6983e14d9bd1175791b28e1086b539b11b7Fan Zhang lifecycle.addObserver(pulseController); 105a25bc6983e14d9bd1175791b28e1086b539b11b7Fan Zhang lifecycle.addObserver(lockScreenNotificationController); 106a25bc6983e14d9bd1175791b28e1086b539b11b7Fan Zhang } 10702af3659e00fa4583a88b6756e8dc26fcbfb8765Julia Reynolds controllers.add(new RecentNotifyingAppsPreferenceController( 10802af3659e00fa4583a88b6756e8dc26fcbfb8765Julia Reynolds context, new NotificationBackend(), app, host)); 109f83ce92aaff7148019ae0863e8e60dcddd1d82b5Fan Zhang controllers.add(pulseController); 110a25bc6983e14d9bd1175791b28e1086b539b11b7Fan Zhang controllers.add(lockScreenNotificationController); 1114fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlas controllers.add(new NotificationRingtonePreferenceController(context) { 1124fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlas @Override 1134fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlas public String getPreferenceKey() { 1144fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlas return KEY_NOTI_DEFAULT_RINGTONE; 1154fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlas } 1164fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlas 1174fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlas }); 118c35d9b613e2fac6ecc74a067ebb0fa043c8f85e6Julia Reynolds controllers.add(new ZenModePreferenceController(context, lifecycle, KEY_ZEN_MODE)); 119f83ce92aaff7148019ae0863e8e60dcddd1d82b5Fan Zhang return controllers; 1208c0a4238655990094fe444ac8f7b182963497030Julia Reynolds } 121a25bc6983e14d9bd1175791b28e1086b539b11b7Fan Zhang 1224fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlas @Override 1234fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlas public boolean onPreferenceTreeClick(Preference preference) { 1244fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlas if (preference instanceof RingtonePreference) { 1254fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlas mRequestPreference = (RingtonePreference) preference; 1264fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlas mRequestPreference.onPrepareRingtonePickerIntent(mRequestPreference.getIntent()); 1274fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlas startActivityForResultAsUser( 1284fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlas mRequestPreference.getIntent(), 1294fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlas REQUEST_CODE, 1304fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlas null, 1314fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlas UserHandle.of(mRequestPreference.getUserId())); 1324fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlas return true; 1334fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlas } 1344fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlas return super.onPreferenceTreeClick(preference); 1354fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlas } 1364fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlas 1374fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlas @Override 1384fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlas public void onActivityResult(int requestCode, int resultCode, Intent data) { 1394fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlas if (mRequestPreference != null) { 1404fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlas mRequestPreference.onActivityResult(requestCode, resultCode, data); 1414fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlas mRequestPreference = null; 1424fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlas } 1434fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlas } 1444fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlas 1454fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlas @Override 1464fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlas public void onSaveInstanceState(Bundle outState) { 1474fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlas super.onSaveInstanceState(outState); 1484fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlas if (mRequestPreference != null) { 1494fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlas outState.putString(SELECTED_PREFERENCE_KEY, mRequestPreference.getKey()); 1504fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlas } 1514fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlas } 1524fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlas 153a25bc6983e14d9bd1175791b28e1086b539b11b7Fan Zhang /** 154f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynolds * For summary 155f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynolds */ 156f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynolds static class SummaryProvider implements SummaryLoader.SummaryProvider { 157f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynolds 158f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynolds private final Context mContext; 159f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynolds private final SummaryLoader mSummaryLoader; 160f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynolds private NotificationBackend mBackend; 161f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynolds 162f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynolds public SummaryProvider(Context context, SummaryLoader summaryLoader) { 163f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynolds mContext = context; 164f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynolds mSummaryLoader = summaryLoader; 165f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynolds mBackend = new NotificationBackend(); 166f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynolds } 167f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynolds 168f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynolds @VisibleForTesting 169f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynolds protected void setBackend(NotificationBackend backend) { 170f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynolds mBackend = backend; 171f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynolds } 172f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynolds 173f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynolds @Override 174f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynolds public void setListening(boolean listening) { 175f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynolds if (!listening) { 176f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynolds return; 177f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynolds } 178f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynolds int blockedAppCount = mBackend.getBlockedAppCount(); 179f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynolds if (blockedAppCount == 0) { 180f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynolds mSummaryLoader.setSummary(this, 181f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynolds mContext.getText(R.string.app_notification_listing_summary_zero)); 182f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynolds } else { 183f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynolds mSummaryLoader.setSummary(this, 184f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynolds mContext.getResources().getQuantityString( 185f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynolds R.plurals.app_notification_listing_summary_others, 186f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynolds blockedAppCount, blockedAppCount)); 187f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynolds } 188f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynolds } 189f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynolds } 190f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynolds 191f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynolds public static final SummaryLoader.SummaryProviderFactory SUMMARY_PROVIDER_FACTORY = 192f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynolds new SummaryLoader.SummaryProviderFactory() { 193f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynolds @Override 194f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynolds public SummaryLoader.SummaryProvider createSummaryProvider(Activity activity, 195f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynolds SummaryLoader summaryLoader) { 196f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynolds return new ConfigureNotificationSettings.SummaryProvider( 197f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynolds activity, summaryLoader); 198f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynolds } 199f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynolds }; 200f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynolds 201f5d1f165eb65d6e09985d78afc7c25c9f46bca25Julia Reynolds /** 202a25bc6983e14d9bd1175791b28e1086b539b11b7Fan Zhang * For Search. 203a25bc6983e14d9bd1175791b28e1086b539b11b7Fan Zhang */ 204a25bc6983e14d9bd1175791b28e1086b539b11b7Fan Zhang public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = 205a25bc6983e14d9bd1175791b28e1086b539b11b7Fan Zhang new BaseSearchIndexProvider() { 206a25bc6983e14d9bd1175791b28e1086b539b11b7Fan Zhang @Override 207a25bc6983e14d9bd1175791b28e1086b539b11b7Fan Zhang public List<SearchIndexableResource> getXmlResourcesToIndex( 208a25bc6983e14d9bd1175791b28e1086b539b11b7Fan Zhang Context context, boolean enabled) { 209a25bc6983e14d9bd1175791b28e1086b539b11b7Fan Zhang final SearchIndexableResource sir = new SearchIndexableResource(context); 210a25bc6983e14d9bd1175791b28e1086b539b11b7Fan Zhang sir.xmlResId = R.xml.configure_notification_settings; 211a25bc6983e14d9bd1175791b28e1086b539b11b7Fan Zhang return Arrays.asList(sir); 212a25bc6983e14d9bd1175791b28e1086b539b11b7Fan Zhang } 213a25bc6983e14d9bd1175791b28e1086b539b11b7Fan Zhang 214a25bc6983e14d9bd1175791b28e1086b539b11b7Fan Zhang @Override 215aed8994f6f50a6bc0adfaa92b499ebde3a8f2a76Fan Zhang public List<AbstractPreferenceController> createPreferenceControllers( 21683eaff5e4aed866a7ffd5a33ebd2e0b2efaaa681Fan Zhang Context context) { 21702af3659e00fa4583a88b6756e8dc26fcbfb8765Julia Reynolds return buildPreferenceControllers(context, null, null, null); 218a25bc6983e14d9bd1175791b28e1086b539b11b7Fan Zhang } 2194fe455de578683f079b1d51a1f880651b1bb2ecaAlison Cichowlas 22083eaff5e4aed866a7ffd5a33ebd2e0b2efaaa681Fan Zhang @Override 22183eaff5e4aed866a7ffd5a33ebd2e0b2efaaa681Fan Zhang public List<String> getNonIndexableKeys(Context context) { 22283eaff5e4aed866a7ffd5a33ebd2e0b2efaaa681Fan Zhang final List<String> keys = super.getNonIndexableKeys(context); 22383eaff5e4aed866a7ffd5a33ebd2e0b2efaaa681Fan Zhang keys.add(KEY_SWIPE_DOWN); 22483eaff5e4aed866a7ffd5a33ebd2e0b2efaaa681Fan Zhang keys.add(KEY_LOCKSCREEN); 22583eaff5e4aed866a7ffd5a33ebd2e0b2efaaa681Fan Zhang keys.add(KEY_LOCKSCREEN_WORK_PROFILE); 22683eaff5e4aed866a7ffd5a33ebd2e0b2efaaa681Fan Zhang keys.add(KEY_LOCKSCREEN_WORK_PROFILE_HEADER); 227c35d9b613e2fac6ecc74a067ebb0fa043c8f85e6Julia Reynolds keys.add(KEY_ZEN_MODE); 22883eaff5e4aed866a7ffd5a33ebd2e0b2efaaa681Fan Zhang return keys; 22983eaff5e4aed866a7ffd5a33ebd2e0b2efaaa681Fan Zhang } 230a25bc6983e14d9bd1175791b28e1086b539b11b7Fan Zhang }; 2318c0a4238655990094fe444ac8f7b182963497030Julia Reynolds} 232