1afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project/* 24e14211d21387d645ecdad406f3350d36e5a8643Chia-chi Yeh * Copyright (C) 2009 The Android Open Source Project 3afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * 4afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 5afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * you may not use this file except in compliance with the License. 6afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * You may obtain a copy of the License at 7afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * 8afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 9afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * 10afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software 11afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 12afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * See the License for the specific language governing permissions and 14afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project * limitations under the License. 15afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project */ 16afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 17afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectpackage com.android.settings; 18afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 19d79934731c8d33f6fc63b21c120b9ffba5d06f54Amith Yamasaniimport android.app.Activity; 2005411893af4afc4bf7b8530d787c5b9e0bbeed39Oscar Montemayorimport android.app.admin.DevicePolicyManager; 21b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yehimport android.content.Context; 2271cc49e480e7dfd5d0986d7600d0c73aecdbdf93Chouting Zhangimport android.content.Intent; 23167d7186a73b1126a8baa4fd3c8b9156b2712c60Irfan Sheriffimport android.content.pm.PackageManager; 24c4764d24837cf297440f0ee97fe8adb943c56fe0Robert Greenwaltimport android.net.ConnectivityManager; 25b98463f8b0de186dc263217286449a76d6df91a8repo syncimport android.net.wifi.p2p.WifiP2pManager; 26a57eacef3c7d267a534bb1d01471a9a9c12471ceNick Pellyimport android.nfc.NfcAdapter; 27afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.os.Bundle; 2871cc49e480e7dfd5d0986d7600d0c73aecdbdf93Chouting Zhangimport android.os.SystemProperties; 29afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Projectimport android.preference.CheckBoxPreference; 3083bcc98af19597a213a8d174e8f1b47453d513ceMike Lockwoodimport android.preference.Preference; 310cb3743e93aef81e7669f1e6c81184559e0f8154Michael Chanimport android.preference.PreferenceScreen; 3283bcc98af19597a213a8d174e8f1b47453d513ceMike Lockwoodimport android.provider.Settings; 33b98463f8b0de186dc263217286449a76d6df91a8repo syncimport android.view.LayoutInflater; 34b98463f8b0de186dc263217286449a76d6df91a8repo syncimport android.view.View; 35b98463f8b0de186dc263217286449a76d6df91a8repo syncimport android.widget.Switch; 3671cc49e480e7dfd5d0986d7600d0c73aecdbdf93Chouting Zhang 37e78c1879058571c00879f0d3e756951302adf513Gilles Debunneimport com.android.internal.telephony.TelephonyIntents; 38e78c1879058571c00879f0d3e756951302adf513Gilles Debunneimport com.android.internal.telephony.TelephonyProperties; 39e78c1879058571c00879f0d3e756951302adf513Gilles Debunneimport com.android.settings.nfc.NfcEnabler; 40536c3d7651d0e37b13b5ee655c215207a39dff7dIrfan Sheriffimport com.android.settings.NsdEnabler; 41e78c1879058571c00879f0d3e756951302adf513Gilles Debunne 42d79934731c8d33f6fc63b21c120b9ffba5d06f54Amith Yamasanipublic class WirelessSettings extends SettingsPreferenceFragment { 43afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 44afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private static final String KEY_TOGGLE_AIRPLANE = "toggle_airplane"; 45ad50ba065d31f3d8ec53c512b6ba5cf94d15d1e3Nick Pelly private static final String KEY_TOGGLE_NFC = "toggle_nfc"; 467c5c16565eccde0b98f7ad08a0f06ff51e8e90cetk.mun private static final String KEY_WIMAX_SETTINGS = "wimax_settings"; 473d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton private static final String KEY_ANDROID_BEAM_SETTINGS = "android_beam_settings"; 4883bcc98af19597a213a8d174e8f1b47453d513ceMike Lockwood private static final String KEY_VPN_SETTINGS = "vpn_settings"; 49c4764d24837cf297440f0ee97fe8adb943c56fe0Robert Greenwalt private static final String KEY_TETHER_SETTINGS = "tether_settings"; 5005411893af4afc4bf7b8530d787c5b9e0bbeed39Oscar Montemayor private static final String KEY_PROXY_SETTINGS = "proxy_settings"; 510f85c48d6c77e811f4d949503f0aa3efd908834dAmith Yamasani private static final String KEY_MOBILE_NETWORK_SETTINGS = "mobile_network_settings"; 52536c3d7651d0e37b13b5ee655c215207a39dff7dIrfan Sheriff private static final String KEY_TOGGLE_NSD = "toggle_nsd"; //network service discovery 53ef57ed71bf390858cb83253bd193a192bb48346cJake Hamby private static final String KEY_CELL_BROADCAST_SETTINGS = "cell_broadcast_settings"; 54ad50ba065d31f3d8ec53c512b6ba5cf94d15d1e3Nick Pelly 5571cc49e480e7dfd5d0986d7600d0c73aecdbdf93Chouting Zhang public static final String EXIT_ECM_RESULT = "exit_ecm_result"; 5671cc49e480e7dfd5d0986d7600d0c73aecdbdf93Chouting Zhang public static final int REQUEST_CODE_EXIT_ECM = 1; 57afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 58afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project private AirplaneModeEnabler mAirplaneModeEnabler; 5971cc49e480e7dfd5d0986d7600d0c73aecdbdf93Chouting Zhang private CheckBoxPreference mAirplaneModePreference; 60ad50ba065d31f3d8ec53c512b6ba5cf94d15d1e3Nick Pelly private NfcEnabler mNfcEnabler; 61bb4bdc29d64714546255681fcd9c9d92efa9328fMartijn Coenen private NfcAdapter mNfcAdapter; 62536c3d7651d0e37b13b5ee655c215207a39dff7dIrfan Sheriff private NsdEnabler mNsdEnabler; 6371cc49e480e7dfd5d0986d7600d0c73aecdbdf93Chouting Zhang 6471cc49e480e7dfd5d0986d7600d0c73aecdbdf93Chouting Zhang /** 6571cc49e480e7dfd5d0986d7600d0c73aecdbdf93Chouting Zhang * Invoked on each preference click in this hierarchy, overrides 6671cc49e480e7dfd5d0986d7600d0c73aecdbdf93Chouting Zhang * PreferenceActivity's implementation. Used to make sure we track the 6771cc49e480e7dfd5d0986d7600d0c73aecdbdf93Chouting Zhang * preference click events. 6871cc49e480e7dfd5d0986d7600d0c73aecdbdf93Chouting Zhang */ 6971cc49e480e7dfd5d0986d7600d0c73aecdbdf93Chouting Zhang @Override 7071cc49e480e7dfd5d0986d7600d0c73aecdbdf93Chouting Zhang public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { 714e14211d21387d645ecdad406f3350d36e5a8643Chia-chi Yeh if (preference == mAirplaneModePreference && Boolean.parseBoolean( 724e14211d21387d645ecdad406f3350d36e5a8643Chia-chi Yeh SystemProperties.get(TelephonyProperties.PROPERTY_INECM_MODE))) { 7371cc49e480e7dfd5d0986d7600d0c73aecdbdf93Chouting Zhang // In ECM mode launch ECM app dialog 7471cc49e480e7dfd5d0986d7600d0c73aecdbdf93Chouting Zhang startActivityForResult( 7571cc49e480e7dfd5d0986d7600d0c73aecdbdf93Chouting Zhang new Intent(TelephonyIntents.ACTION_SHOW_NOTICE_ECM_BLOCK_OTHERS, null), 7671cc49e480e7dfd5d0986d7600d0c73aecdbdf93Chouting Zhang REQUEST_CODE_EXIT_ECM); 7771cc49e480e7dfd5d0986d7600d0c73aecdbdf93Chouting Zhang return true; 7871cc49e480e7dfd5d0986d7600d0c73aecdbdf93Chouting Zhang } 794e14211d21387d645ecdad406f3350d36e5a8643Chia-chi Yeh // Let the intents be launched by the Preference manager 80d79934731c8d33f6fc63b21c120b9ffba5d06f54Amith Yamasani return super.onPreferenceTreeClick(preferenceScreen, preference); 8171cc49e480e7dfd5d0986d7600d0c73aecdbdf93Chouting Zhang } 82b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh 83b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh public static boolean isRadioAllowed(Context context, String type) { 84b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh if (!AirplaneModeEnabler.isAirplaneModeOn(context)) { 85b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh return true; 86b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh } 87b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh // Here we use the same logic in onCreate(). 88b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh String toggleable = Settings.System.getString(context.getContentResolver(), 89b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh Settings.System.AIRPLANE_MODE_TOGGLEABLE_RADIOS); 90b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh return toggleable != null && toggleable.contains(type); 91b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh } 92b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh 93afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 94d79934731c8d33f6fc63b21c120b9ffba5d06f54Amith Yamasani public void onCreate(Bundle savedInstanceState) { 95afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project super.onCreate(savedInstanceState); 96afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 97afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project addPreferencesFromResource(R.xml.wireless_settings); 98afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project 99d79934731c8d33f6fc63b21c120b9ffba5d06f54Amith Yamasani final Activity activity = getActivity(); 100e78c1879058571c00879f0d3e756951302adf513Gilles Debunne mAirplaneModePreference = (CheckBoxPreference) findPreference(KEY_TOGGLE_AIRPLANE); 101ad50ba065d31f3d8ec53c512b6ba5cf94d15d1e3Nick Pelly CheckBoxPreference nfc = (CheckBoxPreference) findPreference(KEY_TOGGLE_NFC); 1023d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton PreferenceScreen androidBeam = (PreferenceScreen) findPreference(KEY_ANDROID_BEAM_SETTINGS); 103536c3d7651d0e37b13b5ee655c215207a39dff7dIrfan Sheriff CheckBoxPreference nsd = (CheckBoxPreference) findPreference(KEY_TOGGLE_NSD); 1044e14211d21387d645ecdad406f3350d36e5a8643Chia-chi Yeh 105e78c1879058571c00879f0d3e756951302adf513Gilles Debunne mAirplaneModeEnabler = new AirplaneModeEnabler(activity, mAirplaneModePreference); 1063d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton mNfcEnabler = new NfcEnabler(activity, nfc, androidBeam); 107936e3faae11441fad05bf244fa44a29515edd1d8Irfan Sheriff 108936e3faae11441fad05bf244fa44a29515edd1d8Irfan Sheriff // Remove NSD checkbox by default 109936e3faae11441fad05bf244fa44a29515edd1d8Irfan Sheriff getPreferenceScreen().removePreference(nsd); 110936e3faae11441fad05bf244fa44a29515edd1d8Irfan Sheriff //mNsdEnabler = new NsdEnabler(activity, nsd); 1114e14211d21387d645ecdad406f3350d36e5a8643Chia-chi Yeh 112d79934731c8d33f6fc63b21c120b9ffba5d06f54Amith Yamasani String toggleable = Settings.System.getString(activity.getContentResolver(), 1134e14211d21387d645ecdad406f3350d36e5a8643Chia-chi Yeh Settings.System.AIRPLANE_MODE_TOGGLEABLE_RADIOS); 1144e14211d21387d645ecdad406f3350d36e5a8643Chia-chi Yeh 1157c5c16565eccde0b98f7ad08a0f06ff51e8e90cetk.mun //enable/disable wimax depending on the value in config.xml 1167c5c16565eccde0b98f7ad08a0f06ff51e8e90cetk.mun boolean isWimaxEnabled = this.getResources().getBoolean( 1177c5c16565eccde0b98f7ad08a0f06ff51e8e90cetk.mun com.android.internal.R.bool.config_wimaxEnabled); 1187c5c16565eccde0b98f7ad08a0f06ff51e8e90cetk.mun if (!isWimaxEnabled) { 1197c5c16565eccde0b98f7ad08a0f06ff51e8e90cetk.mun PreferenceScreen root = getPreferenceScreen(); 1207c5c16565eccde0b98f7ad08a0f06ff51e8e90cetk.mun Preference ps = (Preference) findPreference(KEY_WIMAX_SETTINGS); 1217c5c16565eccde0b98f7ad08a0f06ff51e8e90cetk.mun if (ps != null) root.removePreference(ps); 1227c5c16565eccde0b98f7ad08a0f06ff51e8e90cetk.mun } else { 1237c5c16565eccde0b98f7ad08a0f06ff51e8e90cetk.mun if (toggleable == null || !toggleable.contains(Settings.System.RADIO_WIMAX ) 1247c5c16565eccde0b98f7ad08a0f06ff51e8e90cetk.mun && isWimaxEnabled) { 1257c5c16565eccde0b98f7ad08a0f06ff51e8e90cetk.mun Preference ps = (Preference) findPreference(KEY_WIMAX_SETTINGS); 1267c5c16565eccde0b98f7ad08a0f06ff51e8e90cetk.mun ps.setDependency(KEY_TOGGLE_AIRPLANE); 1277c5c16565eccde0b98f7ad08a0f06ff51e8e90cetk.mun } 1287c5c16565eccde0b98f7ad08a0f06ff51e8e90cetk.mun } 129b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh // Manually set dependencies for Wifi when not toggleable. 1304e14211d21387d645ecdad406f3350d36e5a8643Chia-chi Yeh if (toggleable == null || !toggleable.contains(Settings.System.RADIO_WIFI)) { 1314e14211d21387d645ecdad406f3350d36e5a8643Chia-chi Yeh findPreference(KEY_VPN_SETTINGS).setDependency(KEY_TOGGLE_AIRPLANE); 1324e14211d21387d645ecdad406f3350d36e5a8643Chia-chi Yeh } 1334e14211d21387d645ecdad406f3350d36e5a8643Chia-chi Yeh 1344e14211d21387d645ecdad406f3350d36e5a8643Chia-chi Yeh // Manually set dependencies for Bluetooth when not toggleable. 1354e14211d21387d645ecdad406f3350d36e5a8643Chia-chi Yeh if (toggleable == null || !toggleable.contains(Settings.System.RADIO_BLUETOOTH)) { 136e78c1879058571c00879f0d3e756951302adf513Gilles Debunne // No bluetooth-dependent items in the list. Code kept in case one is added later. 137ad50ba065d31f3d8ec53c512b6ba5cf94d15d1e3Nick Pelly } 138ad50ba065d31f3d8ec53c512b6ba5cf94d15d1e3Nick Pelly 1399894d4ade475392f665bf87bf7f91d3cbed3eaa4Nick Pelly // Manually set dependencies for NFC when not toggleable. 1409894d4ade475392f665bf87bf7f91d3cbed3eaa4Nick Pelly if (toggleable == null || !toggleable.contains(Settings.System.RADIO_NFC)) { 1419894d4ade475392f665bf87bf7f91d3cbed3eaa4Nick Pelly findPreference(KEY_TOGGLE_NFC).setDependency(KEY_TOGGLE_AIRPLANE); 1423d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton findPreference(KEY_ANDROID_BEAM_SETTINGS).setDependency(KEY_TOGGLE_AIRPLANE); 1439894d4ade475392f665bf87bf7f91d3cbed3eaa4Nick Pelly } 1449894d4ade475392f665bf87bf7f91d3cbed3eaa4Nick Pelly 145ad50ba065d31f3d8ec53c512b6ba5cf94d15d1e3Nick Pelly // Remove NFC if its not available 146bb4bdc29d64714546255681fcd9c9d92efa9328fMartijn Coenen mNfcAdapter = NfcAdapter.getDefaultAdapter(activity); 147bb4bdc29d64714546255681fcd9c9d92efa9328fMartijn Coenen if (mNfcAdapter == null) { 148ad50ba065d31f3d8ec53c512b6ba5cf94d15d1e3Nick Pelly getPreferenceScreen().removePreference(nfc); 1493d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton getPreferenceScreen().removePreference(androidBeam); 1509894d4ade475392f665bf87bf7f91d3cbed3eaa4Nick Pelly mNfcEnabler = null; 1514e14211d21387d645ecdad406f3350d36e5a8643Chia-chi Yeh } 152c4764d24837cf297440f0ee97fe8adb943c56fe0Robert Greenwalt 1530f85c48d6c77e811f4d949503f0aa3efd908834dAmith Yamasani // Remove Mobile Network Settings if it's a wifi-only device. 1548af88fb8387259e51615709b2d1ea0260f7057fdRobert Greenwalt if (Utils.isWifiOnly(getActivity())) { 1550f85c48d6c77e811f4d949503f0aa3efd908834dAmith Yamasani getPreferenceScreen().removePreference(findPreference(KEY_MOBILE_NETWORK_SETTINGS)); 1560f85c48d6c77e811f4d949503f0aa3efd908834dAmith Yamasani } 1570f85c48d6c77e811f4d949503f0aa3efd908834dAmith Yamasani 15805411893af4afc4bf7b8530d787c5b9e0bbeed39Oscar Montemayor // Enable Proxy selector settings if allowed. 15905411893af4afc4bf7b8530d787c5b9e0bbeed39Oscar Montemayor Preference mGlobalProxy = findPreference(KEY_PROXY_SETTINGS); 160d79934731c8d33f6fc63b21c120b9ffba5d06f54Amith Yamasani DevicePolicyManager mDPM = (DevicePolicyManager) 161d79934731c8d33f6fc63b21c120b9ffba5d06f54Amith Yamasani activity.getSystemService(Context.DEVICE_POLICY_SERVICE); 1626f3a98bb00f12851682c28d265be4f66fad85fd6Robert Greenwalt // proxy UI disabled until we have better app support 1636f3a98bb00f12851682c28d265be4f66fad85fd6Robert Greenwalt getPreferenceScreen().removePreference(mGlobalProxy); 16405411893af4afc4bf7b8530d787c5b9e0bbeed39Oscar Montemayor mGlobalProxy.setEnabled(mDPM.getGlobalProxyAdmin() == null); 16505411893af4afc4bf7b8530d787c5b9e0bbeed39Oscar Montemayor 1660f85c48d6c77e811f4d949503f0aa3efd908834dAmith Yamasani // Disable Tethering if it's not allowed or if it's a wifi-only device 167c4764d24837cf297440f0ee97fe8adb943c56fe0Robert Greenwalt ConnectivityManager cm = 168d79934731c8d33f6fc63b21c120b9ffba5d06f54Amith Yamasani (ConnectivityManager) activity.getSystemService(Context.CONNECTIVITY_SERVICE); 1694ad4b4fdf7a36820ffc3a1048d8d7e030ead4591Robert Greenwalt if (!cm.isTetheringSupported()) { 170c4764d24837cf297440f0ee97fe8adb943c56fe0Robert Greenwalt getPreferenceScreen().removePreference(findPreference(KEY_TETHER_SETTINGS)); 171e434bfb216682a6ca331fa54ce58a2bff7adf8d7Robert Greenwalt } else { 172e434bfb216682a6ca331fa54ce58a2bff7adf8d7Robert Greenwalt Preference p = findPreference(KEY_TETHER_SETTINGS); 173a83a24f48a8286ee3d67acc5fdcfb723acc56adaJeff Sharkey p.setTitle(Utils.getTetheringLabel(cm)); 174c4764d24837cf297440f0ee97fe8adb943c56fe0Robert Greenwalt } 175ef57ed71bf390858cb83253bd193a192bb48346cJake Hamby 176ef57ed71bf390858cb83253bd193a192bb48346cJake Hamby // Enable link to CMAS app settings depending on the value in config.xml. 177ef57ed71bf390858cb83253bd193a192bb48346cJake Hamby boolean isCellBroadcastAppLinkEnabled = this.getResources().getBoolean( 178ef57ed71bf390858cb83253bd193a192bb48346cJake Hamby com.android.internal.R.bool.config_cellBroadcastAppLinks); 179ef57ed71bf390858cb83253bd193a192bb48346cJake Hamby try { 180ef57ed71bf390858cb83253bd193a192bb48346cJake Hamby if (isCellBroadcastAppLinkEnabled) { 181ef57ed71bf390858cb83253bd193a192bb48346cJake Hamby PackageManager pm = getPackageManager(); 182ef57ed71bf390858cb83253bd193a192bb48346cJake Hamby if (pm.getApplicationEnabledSetting("com.android.cellbroadcastreceiver") 183ef57ed71bf390858cb83253bd193a192bb48346cJake Hamby == PackageManager.COMPONENT_ENABLED_STATE_DISABLED) { 184ef57ed71bf390858cb83253bd193a192bb48346cJake Hamby isCellBroadcastAppLinkEnabled = false; // CMAS app disabled 185ef57ed71bf390858cb83253bd193a192bb48346cJake Hamby } 186ef57ed71bf390858cb83253bd193a192bb48346cJake Hamby } 187ef57ed71bf390858cb83253bd193a192bb48346cJake Hamby } catch (IllegalArgumentException ignored) { 188ef57ed71bf390858cb83253bd193a192bb48346cJake Hamby isCellBroadcastAppLinkEnabled = false; // CMAS app not installed 189ef57ed71bf390858cb83253bd193a192bb48346cJake Hamby } 190ef57ed71bf390858cb83253bd193a192bb48346cJake Hamby if (!isCellBroadcastAppLinkEnabled) { 191ef57ed71bf390858cb83253bd193a192bb48346cJake Hamby PreferenceScreen root = getPreferenceScreen(); 192ef57ed71bf390858cb83253bd193a192bb48346cJake Hamby Preference ps = findPreference(KEY_CELL_BROADCAST_SETTINGS); 193ef57ed71bf390858cb83253bd193a192bb48346cJake Hamby if (ps != null) root.removePreference(ps); 194ef57ed71bf390858cb83253bd193a192bb48346cJake Hamby } 195afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 196c4764d24837cf297440f0ee97fe8adb943c56fe0Robert Greenwalt 197afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 198d79934731c8d33f6fc63b21c120b9ffba5d06f54Amith Yamasani public void onResume() { 199afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project super.onResume(); 20032711b6752eb73324e1b10db975ac956888eda96Danica Chang 2014e14211d21387d645ecdad406f3350d36e5a8643Chia-chi Yeh mAirplaneModeEnabler.resume(); 2029894d4ade475392f665bf87bf7f91d3cbed3eaa4Nick Pelly if (mNfcEnabler != null) { 2039894d4ade475392f665bf87bf7f91d3cbed3eaa4Nick Pelly mNfcEnabler.resume(); 204bb4bdc29d64714546255681fcd9c9d92efa9328fMartijn Coenen } 205936e3faae11441fad05bf244fa44a29515edd1d8Irfan Sheriff if (mNsdEnabler != null) { 206936e3faae11441fad05bf244fa44a29515edd1d8Irfan Sheriff mNsdEnabler.resume(); 207936e3faae11441fad05bf244fa44a29515edd1d8Irfan Sheriff } 208afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 20932711b6752eb73324e1b10db975ac956888eda96Danica Chang 210afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project @Override 211d79934731c8d33f6fc63b21c120b9ffba5d06f54Amith Yamasani public void onPause() { 212afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project super.onPause(); 21332711b6752eb73324e1b10db975ac956888eda96Danica Chang 214afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project mAirplaneModeEnabler.pause(); 2159894d4ade475392f665bf87bf7f91d3cbed3eaa4Nick Pelly if (mNfcEnabler != null) { 2169894d4ade475392f665bf87bf7f91d3cbed3eaa4Nick Pelly mNfcEnabler.pause(); 2179894d4ade475392f665bf87bf7f91d3cbed3eaa4Nick Pelly } 218936e3faae11441fad05bf244fa44a29515edd1d8Irfan Sheriff if (mNsdEnabler != null) { 219936e3faae11441fad05bf244fa44a29515edd1d8Irfan Sheriff mNsdEnabler.pause(); 220936e3faae11441fad05bf244fa44a29515edd1d8Irfan Sheriff } 221afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project } 22232711b6752eb73324e1b10db975ac956888eda96Danica Chang 22371cc49e480e7dfd5d0986d7600d0c73aecdbdf93Chouting Zhang @Override 224d79934731c8d33f6fc63b21c120b9ffba5d06f54Amith Yamasani public void onActivityResult(int requestCode, int resultCode, Intent data) { 2254e14211d21387d645ecdad406f3350d36e5a8643Chia-chi Yeh if (requestCode == REQUEST_CODE_EXIT_ECM) { 2264e14211d21387d645ecdad406f3350d36e5a8643Chia-chi Yeh Boolean isChoiceYes = data.getBooleanExtra(EXIT_ECM_RESULT, false); 22771cc49e480e7dfd5d0986d7600d0c73aecdbdf93Chouting Zhang // Set Airplane mode based on the return value and checkbox state 22871cc49e480e7dfd5d0986d7600d0c73aecdbdf93Chouting Zhang mAirplaneModeEnabler.setAirplaneModeInECM(isChoiceYes, 22971cc49e480e7dfd5d0986d7600d0c73aecdbdf93Chouting Zhang mAirplaneModePreference.isChecked()); 23071cc49e480e7dfd5d0986d7600d0c73aecdbdf93Chouting Zhang } 23171cc49e480e7dfd5d0986d7600d0c73aecdbdf93Chouting Zhang } 232b0b37ae21c172491bc170659b5f429601858ddc1Amith Yamasani 233b0b37ae21c172491bc170659b5f429601858ddc1Amith Yamasani @Override 234b0b37ae21c172491bc170659b5f429601858ddc1Amith Yamasani protected int getHelpResource() { 235b0b37ae21c172491bc170659b5f429601858ddc1Amith Yamasani return R.string.help_url_more_networks; 236b0b37ae21c172491bc170659b5f429601858ddc1Amith Yamasani } 237afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project} 238