150a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby/* 250a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby * Copyright (C) 2011 The Android Open Source Project 350a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby * 450a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby * Licensed under the Apache License, Version 2.0 (the "License"); you may not 550a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby * use this file except in compliance with the License. You may obtain a copy of 650a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby * the License at 750a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby * 850a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby * http://www.apache.org/licenses/LICENSE-2.0 950a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby * 1050a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby * Unless required by applicable law or agreed to in writing, software 1150a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 1250a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 1350a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby * License for the specific language governing permissions and limitations under 1450a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby * the License. 1550a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby */ 1650a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby 1750a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hambypackage com.android.cellbroadcastreceiver; 1850a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby 198524c0a36abccf29818d6e18c1080208cfee3ec4Jake Hambyimport android.content.Context; 2050a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hambyimport android.content.res.Resources; 2150a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hambyimport android.os.Bundle; 2250a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hambyimport android.preference.ListPreference; 2350a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hambyimport android.preference.Preference; 2450a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hambyimport android.preference.PreferenceActivity; 252356d5f753ed830c35394b16c6dc6529ba7ef31aJunichi Monmaimport android.preference.PreferenceCategory; 2600b87064abfb9d254fbbf72110643d2e626365e6Jake Hambyimport android.preference.PreferenceFragment; 2700b87064abfb9d254fbbf72110643d2e626365e6Jake Hambyimport android.preference.PreferenceScreen; 2800b87064abfb9d254fbbf72110643d2e626365e6Jake Hambyimport android.provider.Settings; 298524c0a36abccf29818d6e18c1080208cfee3ec4Jake Hambyimport android.telephony.TelephonyManager; 3050a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby 3150a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby/** 3250a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby * Settings activity for the cell broadcast receiver. 3350a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby */ 3450a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hambypublic class CellBroadcastSettings extends PreferenceActivity { 352356d5f753ed830c35394b16c6dc6529ba7ef31aJunichi Monma 3650a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby // Preference key for whether to enable emergency notifications (default enabled). 3750a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby public static final String KEY_ENABLE_EMERGENCY_ALERTS = "enable_emergency_alerts"; 3850a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby 3950a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby // Duration of alert sound (in seconds). 4050a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby public static final String KEY_ALERT_SOUND_DURATION = "alert_sound_duration"; 4150a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby 4250a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby // Default alert duration (in seconds). 4350a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby public static final String ALERT_SOUND_DEFAULT_DURATION = "4"; 4450a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby 45bf70b6f871ac58439b5e98a305478a773e872b68Jake Hamby // Enable vibration on alert (unless master volume is silent). 46bf70b6f871ac58439b5e98a305478a773e872b68Jake Hamby public static final String KEY_ENABLE_ALERT_VIBRATE = "enable_alert_vibrate"; 47bf70b6f871ac58439b5e98a305478a773e872b68Jake Hamby 4850a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby // Speak contents of alert after playing the alert sound. 4950a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby public static final String KEY_ENABLE_ALERT_SPEECH = "enable_alert_speech"; 5050a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby 512356d5f753ed830c35394b16c6dc6529ba7ef31aJunichi Monma // Preference category for emergency alert and CMAS settings. 522356d5f753ed830c35394b16c6dc6529ba7ef31aJunichi Monma public static final String KEY_CATEGORY_ALERT_SETTINGS = "category_alert_settings"; 532356d5f753ed830c35394b16c6dc6529ba7ef31aJunichi Monma 542356d5f753ed830c35394b16c6dc6529ba7ef31aJunichi Monma // Preference category for ETWS related settings. 552356d5f753ed830c35394b16c6dc6529ba7ef31aJunichi Monma public static final String KEY_CATEGORY_ETWS_SETTINGS = "category_etws_settings"; 5650a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby 5700b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby // Whether to display CMAS extreme threat notifications (default is enabled). 5800b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby public static final String KEY_ENABLE_CMAS_EXTREME_THREAT_ALERTS = 5900b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby "enable_cmas_extreme_threat_alerts"; 6000b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby 6100b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby // Whether to display CMAS severe threat notifications (default is enabled). 6200b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby public static final String KEY_ENABLE_CMAS_SEVERE_THREAT_ALERTS = 6300b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby "enable_cmas_severe_threat_alerts"; 6450a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby 6500b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby // Whether to display CMAS amber alert messages (default is enabled). 6650a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby public static final String KEY_ENABLE_CMAS_AMBER_ALERTS = "enable_cmas_amber_alerts"; 6750a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby 6800b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby // Preference category for development settings (enabled by settings developer options toggle). 6900b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby public static final String KEY_CATEGORY_DEV_SETTINGS = "category_dev_settings"; 7000b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby 7100b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby // Whether to display ETWS test messages (default is disabled). 7200b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby public static final String KEY_ENABLE_ETWS_TEST_ALERTS = "enable_etws_test_alerts"; 7300b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby 7450a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby // Whether to display CMAS monthly test messages (default is disabled). 7550a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby public static final String KEY_ENABLE_CMAS_TEST_ALERTS = "enable_cmas_test_alerts"; 7650a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby 7750a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby // Preference category for Brazil specific settings. 7850a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby public static final String KEY_CATEGORY_BRAZIL_SETTINGS = "category_brazil_settings"; 7950a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby 8050a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby // Preference key for whether to enable channel 50 notifications 8150a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby // Enabled by default for phones sold in Brazil, otherwise this setting may be hidden. 8250a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby public static final String KEY_ENABLE_CHANNEL_50_ALERTS = "enable_channel_50_alerts"; 8350a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby 8457273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby // Preference key for initial opt-in/opt-out dialog. 8557273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby public static final String KEY_SHOW_CMAS_OPT_OUT_DIALOG = "show_cmas_opt_out_dialog"; 8657273ebfa13f96bf5aba9902b70e2b179fec9e4cJake Hamby 874589e8a8dde484424a96d4644772d793043ad029Jake Hamby // Alert reminder interval ("once" = single 2 minute reminder). 884589e8a8dde484424a96d4644772d793043ad029Jake Hamby public static final String KEY_ALERT_REMINDER_INTERVAL = "alert_reminder_interval"; 894589e8a8dde484424a96d4644772d793043ad029Jake Hamby 9050a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby @Override 9150a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby public void onCreate(Bundle savedInstanceState) { 9250a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby super.onCreate(savedInstanceState); 9350a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby 9400b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby // Display the fragment as the main content. 9500b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby getFragmentManager().beginTransaction().replace(android.R.id.content, 9600b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby new CellBroadcastSettingsFragment()).commit(); 9700b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby } 9850a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby 9900b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby /** 10000b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby * New fragment-style implementation of preferences. 10100b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby */ 10200b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby public static class CellBroadcastSettingsFragment extends PreferenceFragment { 10300b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby 10400b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby @Override 10500b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby public void onCreate(Bundle savedInstanceState) { 10600b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby super.onCreate(savedInstanceState); 10700b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby 10800b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby // Load the preferences from an XML resource 10900b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby addPreferencesFromResource(R.xml.preferences); 11000b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby 11100b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby PreferenceScreen preferenceScreen = getPreferenceScreen(); 11200b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby 11300b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby // Handler for settings that require us to reconfigure enabled channels in radio 11400b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby Preference.OnPreferenceChangeListener startConfigServiceListener = 11500b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby new Preference.OnPreferenceChangeListener() { 11600b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby @Override 11700b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby public boolean onPreferenceChange(Preference pref, Object newValue) { 11800b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby CellBroadcastReceiver.startConfigService(pref.getContext()); 11900b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby return true; 12000b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby } 12100b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby }; 12200b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby 1232356d5f753ed830c35394b16c6dc6529ba7ef31aJunichi Monma // Show extra settings when developer options is enabled in settings. 124c40199db68df62824ca67eaaf2bb967d62cd7850Jeff Sharkey boolean enableDevSettings = Settings.Global.getInt(getActivity().getContentResolver(), 125c40199db68df62824ca67eaaf2bb967d62cd7850Jeff Sharkey Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0) != 0; 12600b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby 1272356d5f753ed830c35394b16c6dc6529ba7ef31aJunichi Monma Resources res = getResources(); 1282356d5f753ed830c35394b16c6dc6529ba7ef31aJunichi Monma boolean showEtwsSettings = res.getBoolean(R.bool.show_etws_settings); 1292356d5f753ed830c35394b16c6dc6529ba7ef31aJunichi Monma 1302356d5f753ed830c35394b16c6dc6529ba7ef31aJunichi Monma // Emergency alert preference category (general and CMAS preferences). 1312356d5f753ed830c35394b16c6dc6529ba7ef31aJunichi Monma PreferenceCategory alertCategory = (PreferenceCategory) 1322356d5f753ed830c35394b16c6dc6529ba7ef31aJunichi Monma findPreference(KEY_CATEGORY_ALERT_SETTINGS); 1332356d5f753ed830c35394b16c6dc6529ba7ef31aJunichi Monma 1344589e8a8dde484424a96d4644772d793043ad029Jake Hamby // alert reminder interval 1354589e8a8dde484424a96d4644772d793043ad029Jake Hamby ListPreference interval = (ListPreference) findPreference(KEY_ALERT_REMINDER_INTERVAL); 1364589e8a8dde484424a96d4644772d793043ad029Jake Hamby interval.setSummary(interval.getEntry()); 1374589e8a8dde484424a96d4644772d793043ad029Jake Hamby interval.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { 1384589e8a8dde484424a96d4644772d793043ad029Jake Hamby @Override 1394589e8a8dde484424a96d4644772d793043ad029Jake Hamby public boolean onPreferenceChange(Preference pref, Object newValue) { 1404589e8a8dde484424a96d4644772d793043ad029Jake Hamby final ListPreference listPref = (ListPreference) pref; 1414589e8a8dde484424a96d4644772d793043ad029Jake Hamby final int idx = listPref.findIndexOfValue((String) newValue); 1424589e8a8dde484424a96d4644772d793043ad029Jake Hamby listPref.setSummary(listPref.getEntries()[idx]); 1434589e8a8dde484424a96d4644772d793043ad029Jake Hamby return true; 1444589e8a8dde484424a96d4644772d793043ad029Jake Hamby } 1454589e8a8dde484424a96d4644772d793043ad029Jake Hamby }); 1464589e8a8dde484424a96d4644772d793043ad029Jake Hamby 1472356d5f753ed830c35394b16c6dc6529ba7ef31aJunichi Monma // Show alert settings and ETWS categories for ETWS builds and developer mode. 1482356d5f753ed830c35394b16c6dc6529ba7ef31aJunichi Monma if (enableDevSettings || showEtwsSettings) { 1492356d5f753ed830c35394b16c6dc6529ba7ef31aJunichi Monma // enable/disable all alerts 15000b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby Preference enablePwsAlerts = findPreference(KEY_ENABLE_EMERGENCY_ALERTS); 15100b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby if (enablePwsAlerts != null) { 15200b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby enablePwsAlerts.setOnPreferenceChangeListener(startConfigServiceListener); 15300b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby } 15400b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby 1552356d5f753ed830c35394b16c6dc6529ba7ef31aJunichi Monma // alert sound duration 15600b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby ListPreference duration = (ListPreference) findPreference(KEY_ALERT_SOUND_DURATION); 15700b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby duration.setSummary(duration.getEntry()); 15800b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby duration.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { 15900b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby @Override 16050a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby public boolean onPreferenceChange(Preference pref, Object newValue) { 16100b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby final ListPreference listPref = (ListPreference) pref; 16200b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby final int idx = listPref.findIndexOfValue((String) newValue); 16300b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby listPref.setSummary(listPref.getEntries()[idx]); 16450a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby return true; 16550a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby } 16600b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby }); 16700b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby } else { 1682356d5f753ed830c35394b16c6dc6529ba7ef31aJunichi Monma // Remove general emergency alert preference items (not shown for CMAS builds). 1692356d5f753ed830c35394b16c6dc6529ba7ef31aJunichi Monma alertCategory.removePreference(findPreference(KEY_ENABLE_EMERGENCY_ALERTS)); 1702356d5f753ed830c35394b16c6dc6529ba7ef31aJunichi Monma alertCategory.removePreference(findPreference(KEY_ALERT_SOUND_DURATION)); 1712356d5f753ed830c35394b16c6dc6529ba7ef31aJunichi Monma alertCategory.removePreference(findPreference(KEY_ENABLE_ALERT_SPEECH)); 1722356d5f753ed830c35394b16c6dc6529ba7ef31aJunichi Monma // Remove ETWS preference category. 1732356d5f753ed830c35394b16c6dc6529ba7ef31aJunichi Monma preferenceScreen.removePreference(findPreference(KEY_CATEGORY_ETWS_SETTINGS)); 17400b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby } 17500b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby 17600b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby if (!res.getBoolean(R.bool.show_cmas_settings)) { 1772356d5f753ed830c35394b16c6dc6529ba7ef31aJunichi Monma // Remove CMAS preference items in emergency alert category. 1782356d5f753ed830c35394b16c6dc6529ba7ef31aJunichi Monma alertCategory.removePreference( 1792356d5f753ed830c35394b16c6dc6529ba7ef31aJunichi Monma findPreference(KEY_ENABLE_CMAS_EXTREME_THREAT_ALERTS)); 1802356d5f753ed830c35394b16c6dc6529ba7ef31aJunichi Monma alertCategory.removePreference( 1812356d5f753ed830c35394b16c6dc6529ba7ef31aJunichi Monma findPreference(KEY_ENABLE_CMAS_SEVERE_THREAT_ALERTS)); 1822356d5f753ed830c35394b16c6dc6529ba7ef31aJunichi Monma alertCategory.removePreference(findPreference(KEY_ENABLE_CMAS_AMBER_ALERTS)); 18300b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby } 1848524c0a36abccf29818d6e18c1080208cfee3ec4Jake Hamby 1858524c0a36abccf29818d6e18c1080208cfee3ec4Jake Hamby TelephonyManager tm = (TelephonyManager) getActivity().getSystemService( 1868524c0a36abccf29818d6e18c1080208cfee3ec4Jake Hamby Context.TELEPHONY_SERVICE); 1878524c0a36abccf29818d6e18c1080208cfee3ec4Jake Hamby 1888524c0a36abccf29818d6e18c1080208cfee3ec4Jake Hamby boolean enableChannel50Support = res.getBoolean(R.bool.show_brazil_settings) || 1898524c0a36abccf29818d6e18c1080208cfee3ec4Jake Hamby "br".equals(tm.getSimCountryIso()); 1908524c0a36abccf29818d6e18c1080208cfee3ec4Jake Hamby 1918524c0a36abccf29818d6e18c1080208cfee3ec4Jake Hamby if (!enableChannel50Support) { 19200b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby preferenceScreen.removePreference(findPreference(KEY_CATEGORY_BRAZIL_SETTINGS)); 19300b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby } 1942356d5f753ed830c35394b16c6dc6529ba7ef31aJunichi Monma if (!enableDevSettings) { 1952356d5f753ed830c35394b16c6dc6529ba7ef31aJunichi Monma preferenceScreen.removePreference(findPreference(KEY_CATEGORY_DEV_SETTINGS)); 1962356d5f753ed830c35394b16c6dc6529ba7ef31aJunichi Monma } 19700b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby 19800b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby Preference enableChannel50Alerts = findPreference(KEY_ENABLE_CHANNEL_50_ALERTS); 19900b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby if (enableChannel50Alerts != null) { 20000b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby enableChannel50Alerts.setOnPreferenceChangeListener(startConfigServiceListener); 20100b87064abfb9d254fbbf72110643d2e626365e6Jake Hamby } 2023880548e290746d40f0a669a2d35064bfc380095Rika Brooks Preference enableEtwsAlerts = findPreference(KEY_ENABLE_ETWS_TEST_ALERTS); 2033880548e290746d40f0a669a2d35064bfc380095Rika Brooks if (enableEtwsAlerts != null) { 2043880548e290746d40f0a669a2d35064bfc380095Rika Brooks enableEtwsAlerts.setOnPreferenceChangeListener(startConfigServiceListener); 2053880548e290746d40f0a669a2d35064bfc380095Rika Brooks } 2063880548e290746d40f0a669a2d35064bfc380095Rika Brooks Preference enableCmasExtremeAlerts = 2073880548e290746d40f0a669a2d35064bfc380095Rika Brooks findPreference(KEY_ENABLE_CMAS_EXTREME_THREAT_ALERTS); 2083880548e290746d40f0a669a2d35064bfc380095Rika Brooks if (enableCmasExtremeAlerts != null) { 2093880548e290746d40f0a669a2d35064bfc380095Rika Brooks enableCmasExtremeAlerts.setOnPreferenceChangeListener(startConfigServiceListener); 2103880548e290746d40f0a669a2d35064bfc380095Rika Brooks } 2113880548e290746d40f0a669a2d35064bfc380095Rika Brooks Preference enableCmasSevereAlerts = 2123880548e290746d40f0a669a2d35064bfc380095Rika Brooks findPreference(KEY_ENABLE_CMAS_SEVERE_THREAT_ALERTS); 2133880548e290746d40f0a669a2d35064bfc380095Rika Brooks if (enableCmasSevereAlerts != null) { 2143880548e290746d40f0a669a2d35064bfc380095Rika Brooks enableCmasSevereAlerts.setOnPreferenceChangeListener(startConfigServiceListener); 2153880548e290746d40f0a669a2d35064bfc380095Rika Brooks } 2163880548e290746d40f0a669a2d35064bfc380095Rika Brooks Preference enableCmasAmberAlerts = findPreference(KEY_ENABLE_CMAS_AMBER_ALERTS); 2173880548e290746d40f0a669a2d35064bfc380095Rika Brooks if (enableCmasAmberAlerts != null) { 2183880548e290746d40f0a669a2d35064bfc380095Rika Brooks enableCmasAmberAlerts.setOnPreferenceChangeListener(startConfigServiceListener); 2193880548e290746d40f0a669a2d35064bfc380095Rika Brooks } 2203880548e290746d40f0a669a2d35064bfc380095Rika Brooks Preference enableCmasTestAlerts = findPreference(KEY_ENABLE_CMAS_TEST_ALERTS); 2213880548e290746d40f0a669a2d35064bfc380095Rika Brooks if (enableCmasTestAlerts != null) { 2223880548e290746d40f0a669a2d35064bfc380095Rika Brooks enableCmasTestAlerts.setOnPreferenceChangeListener(startConfigServiceListener); 2233880548e290746d40f0a669a2d35064bfc380095Rika Brooks } 22450a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby } 22550a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby } 22650a624a47ce645a7992e346e40a4e7ec5e0df9b7Jake Hamby} 227