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