WirelessSettings.java revision 7c5c16565eccde0b98f7ad08a0f06ff51e8e90ce
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;
401610a74a26763046c147b2cf5cda7d84a62b95ffIrfan Sheriffimport com.android.settings.wifi.p2p.WifiP2pEnabler;
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";
491610a74a26763046c147b2cf5cda7d84a62b95ffIrfan Sheriff    private static final String KEY_TOGGLE_WIFI_P2P = "toggle_wifi_p2p";
50b98463f8b0de186dc263217286449a76d6df91a8repo sync    private static final String KEY_WIFI_P2P_SETTINGS = "wifi_p2p_settings";
51c4764d24837cf297440f0ee97fe8adb943c56fe0Robert Greenwalt    private static final String KEY_TETHER_SETTINGS = "tether_settings";
5205411893af4afc4bf7b8530d787c5b9e0bbeed39Oscar Montemayor    private static final String KEY_PROXY_SETTINGS = "proxy_settings";
530f85c48d6c77e811f4d949503f0aa3efd908834dAmith Yamasani    private static final String KEY_MOBILE_NETWORK_SETTINGS = "mobile_network_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;
6271cc49e480e7dfd5d0986d7600d0c73aecdbdf93Chouting Zhang
631610a74a26763046c147b2cf5cda7d84a62b95ffIrfan Sheriff    private WifiP2pEnabler mWifiP2pEnabler;
641610a74a26763046c147b2cf5cda7d84a62b95ffIrfan Sheriff
6571cc49e480e7dfd5d0986d7600d0c73aecdbdf93Chouting Zhang    /**
6671cc49e480e7dfd5d0986d7600d0c73aecdbdf93Chouting Zhang     * Invoked on each preference click in this hierarchy, overrides
6771cc49e480e7dfd5d0986d7600d0c73aecdbdf93Chouting Zhang     * PreferenceActivity's implementation.  Used to make sure we track the
6871cc49e480e7dfd5d0986d7600d0c73aecdbdf93Chouting Zhang     * preference click events.
6971cc49e480e7dfd5d0986d7600d0c73aecdbdf93Chouting Zhang     */
7071cc49e480e7dfd5d0986d7600d0c73aecdbdf93Chouting Zhang    @Override
7171cc49e480e7dfd5d0986d7600d0c73aecdbdf93Chouting Zhang    public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
724e14211d21387d645ecdad406f3350d36e5a8643Chia-chi Yeh        if (preference == mAirplaneModePreference && Boolean.parseBoolean(
734e14211d21387d645ecdad406f3350d36e5a8643Chia-chi Yeh                SystemProperties.get(TelephonyProperties.PROPERTY_INECM_MODE))) {
7471cc49e480e7dfd5d0986d7600d0c73aecdbdf93Chouting Zhang            // In ECM mode launch ECM app dialog
7571cc49e480e7dfd5d0986d7600d0c73aecdbdf93Chouting Zhang            startActivityForResult(
7671cc49e480e7dfd5d0986d7600d0c73aecdbdf93Chouting Zhang                new Intent(TelephonyIntents.ACTION_SHOW_NOTICE_ECM_BLOCK_OTHERS, null),
7771cc49e480e7dfd5d0986d7600d0c73aecdbdf93Chouting Zhang                REQUEST_CODE_EXIT_ECM);
7871cc49e480e7dfd5d0986d7600d0c73aecdbdf93Chouting Zhang            return true;
7971cc49e480e7dfd5d0986d7600d0c73aecdbdf93Chouting Zhang        }
804e14211d21387d645ecdad406f3350d36e5a8643Chia-chi Yeh        // Let the intents be launched by the Preference manager
81d79934731c8d33f6fc63b21c120b9ffba5d06f54Amith Yamasani        return super.onPreferenceTreeClick(preferenceScreen, preference);
8271cc49e480e7dfd5d0986d7600d0c73aecdbdf93Chouting Zhang    }
83b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh
84b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh    public static boolean isRadioAllowed(Context context, String type) {
85b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh        if (!AirplaneModeEnabler.isAirplaneModeOn(context)) {
86b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh            return true;
87b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh        }
88b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh        // Here we use the same logic in onCreate().
89b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh        String toggleable = Settings.System.getString(context.getContentResolver(),
90b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh                Settings.System.AIRPLANE_MODE_TOGGLEABLE_RADIOS);
91b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh        return toggleable != null && toggleable.contains(type);
92b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh    }
93b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh
94afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project    @Override
95d79934731c8d33f6fc63b21c120b9ffba5d06f54Amith Yamasani    public void onCreate(Bundle savedInstanceState) {
96afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project        super.onCreate(savedInstanceState);
97afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project
98afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project        addPreferencesFromResource(R.xml.wireless_settings);
99afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project
100d79934731c8d33f6fc63b21c120b9ffba5d06f54Amith Yamasani        final Activity activity = getActivity();
101e78c1879058571c00879f0d3e756951302adf513Gilles Debunne        mAirplaneModePreference = (CheckBoxPreference) findPreference(KEY_TOGGLE_AIRPLANE);
102ad50ba065d31f3d8ec53c512b6ba5cf94d15d1e3Nick Pelly        CheckBoxPreference nfc = (CheckBoxPreference) findPreference(KEY_TOGGLE_NFC);
1033d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton        PreferenceScreen androidBeam = (PreferenceScreen) findPreference(KEY_ANDROID_BEAM_SETTINGS);
1044e14211d21387d645ecdad406f3350d36e5a8643Chia-chi Yeh
1051610a74a26763046c147b2cf5cda7d84a62b95ffIrfan Sheriff        CheckBoxPreference wifiP2p = (CheckBoxPreference) findPreference(KEY_TOGGLE_WIFI_P2P);
1061610a74a26763046c147b2cf5cda7d84a62b95ffIrfan Sheriff
107e78c1879058571c00879f0d3e756951302adf513Gilles Debunne        mAirplaneModeEnabler = new AirplaneModeEnabler(activity, mAirplaneModePreference);
1083d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton        mNfcEnabler = new NfcEnabler(activity, nfc, androidBeam);
1094e14211d21387d645ecdad406f3350d36e5a8643Chia-chi Yeh
110d79934731c8d33f6fc63b21c120b9ffba5d06f54Amith Yamasani        String toggleable = Settings.System.getString(activity.getContentResolver(),
1114e14211d21387d645ecdad406f3350d36e5a8643Chia-chi Yeh                Settings.System.AIRPLANE_MODE_TOGGLEABLE_RADIOS);
1124e14211d21387d645ecdad406f3350d36e5a8643Chia-chi Yeh
1137c5c16565eccde0b98f7ad08a0f06ff51e8e90cetk.mun        //enable/disable wimax depending on the value in config.xml
1147c5c16565eccde0b98f7ad08a0f06ff51e8e90cetk.mun        boolean isWimaxEnabled = this.getResources().getBoolean(
1157c5c16565eccde0b98f7ad08a0f06ff51e8e90cetk.mun                com.android.internal.R.bool.config_wimaxEnabled);
1167c5c16565eccde0b98f7ad08a0f06ff51e8e90cetk.mun        if (!isWimaxEnabled) {
1177c5c16565eccde0b98f7ad08a0f06ff51e8e90cetk.mun            PreferenceScreen root = getPreferenceScreen();
1187c5c16565eccde0b98f7ad08a0f06ff51e8e90cetk.mun            Preference ps = (Preference) findPreference(KEY_WIMAX_SETTINGS);
1197c5c16565eccde0b98f7ad08a0f06ff51e8e90cetk.mun            if (ps != null) root.removePreference(ps);
1207c5c16565eccde0b98f7ad08a0f06ff51e8e90cetk.mun        } else {
1217c5c16565eccde0b98f7ad08a0f06ff51e8e90cetk.mun            if (toggleable == null || !toggleable.contains(Settings.System.RADIO_WIMAX )
1227c5c16565eccde0b98f7ad08a0f06ff51e8e90cetk.mun                    && isWimaxEnabled) {
1237c5c16565eccde0b98f7ad08a0f06ff51e8e90cetk.mun                Preference ps = (Preference) findPreference(KEY_WIMAX_SETTINGS);
1247c5c16565eccde0b98f7ad08a0f06ff51e8e90cetk.mun                ps.setDependency(KEY_TOGGLE_AIRPLANE);
1257c5c16565eccde0b98f7ad08a0f06ff51e8e90cetk.mun            }
1267c5c16565eccde0b98f7ad08a0f06ff51e8e90cetk.mun        }
127b90452f3d26201ea6a231f2150204241e66cd3fbChia-chi Yeh        // Manually set dependencies for Wifi when not toggleable.
1284e14211d21387d645ecdad406f3350d36e5a8643Chia-chi Yeh        if (toggleable == null || !toggleable.contains(Settings.System.RADIO_WIFI)) {
1294e14211d21387d645ecdad406f3350d36e5a8643Chia-chi Yeh            findPreference(KEY_VPN_SETTINGS).setDependency(KEY_TOGGLE_AIRPLANE);
1304e14211d21387d645ecdad406f3350d36e5a8643Chia-chi Yeh        }
1314e14211d21387d645ecdad406f3350d36e5a8643Chia-chi Yeh
1324e14211d21387d645ecdad406f3350d36e5a8643Chia-chi Yeh        // Manually set dependencies for Bluetooth when not toggleable.
1334e14211d21387d645ecdad406f3350d36e5a8643Chia-chi Yeh        if (toggleable == null || !toggleable.contains(Settings.System.RADIO_BLUETOOTH)) {
134e78c1879058571c00879f0d3e756951302adf513Gilles Debunne            // No bluetooth-dependent items in the list. Code kept in case one is added later.
135ad50ba065d31f3d8ec53c512b6ba5cf94d15d1e3Nick Pelly        }
136ad50ba065d31f3d8ec53c512b6ba5cf94d15d1e3Nick Pelly
1379894d4ade475392f665bf87bf7f91d3cbed3eaa4Nick Pelly        // Manually set dependencies for NFC when not toggleable.
1389894d4ade475392f665bf87bf7f91d3cbed3eaa4Nick Pelly        if (toggleable == null || !toggleable.contains(Settings.System.RADIO_NFC)) {
1399894d4ade475392f665bf87bf7f91d3cbed3eaa4Nick Pelly            findPreference(KEY_TOGGLE_NFC).setDependency(KEY_TOGGLE_AIRPLANE);
1403d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton            findPreference(KEY_ANDROID_BEAM_SETTINGS).setDependency(KEY_TOGGLE_AIRPLANE);
1419894d4ade475392f665bf87bf7f91d3cbed3eaa4Nick Pelly        }
1429894d4ade475392f665bf87bf7f91d3cbed3eaa4Nick Pelly
143ad50ba065d31f3d8ec53c512b6ba5cf94d15d1e3Nick Pelly        // Remove NFC if its not available
144bb4bdc29d64714546255681fcd9c9d92efa9328fMartijn Coenen        mNfcAdapter = NfcAdapter.getDefaultAdapter(activity);
145bb4bdc29d64714546255681fcd9c9d92efa9328fMartijn Coenen        if (mNfcAdapter == null) {
146ad50ba065d31f3d8ec53c512b6ba5cf94d15d1e3Nick Pelly            getPreferenceScreen().removePreference(nfc);
1473d670de5ce9180e0a75d0884832c4714cb56e1b5Jeff Hamilton            getPreferenceScreen().removePreference(androidBeam);
1489894d4ade475392f665bf87bf7f91d3cbed3eaa4Nick Pelly            mNfcEnabler = null;
1494e14211d21387d645ecdad406f3350d36e5a8643Chia-chi Yeh        }
150c4764d24837cf297440f0ee97fe8adb943c56fe0Robert Greenwalt
1510f85c48d6c77e811f4d949503f0aa3efd908834dAmith Yamasani        // Remove Mobile Network Settings if it's a wifi-only device.
1528af88fb8387259e51615709b2d1ea0260f7057fdRobert Greenwalt        if (Utils.isWifiOnly(getActivity())) {
1530f85c48d6c77e811f4d949503f0aa3efd908834dAmith Yamasani            getPreferenceScreen().removePreference(findPreference(KEY_MOBILE_NETWORK_SETTINGS));
1540f85c48d6c77e811f4d949503f0aa3efd908834dAmith Yamasani        }
1550f85c48d6c77e811f4d949503f0aa3efd908834dAmith Yamasani
1561610a74a26763046c147b2cf5cda7d84a62b95ffIrfan Sheriff        WifiP2pManager p2p = (WifiP2pManager) activity.getSystemService(Context.WIFI_P2P_SERVICE);
1571610a74a26763046c147b2cf5cda7d84a62b95ffIrfan Sheriff
158167d7186a73b1126a8baa4fd3c8b9156b2712c60Irfan Sheriff        if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_WIFI_DIRECT)) {
1591610a74a26763046c147b2cf5cda7d84a62b95ffIrfan Sheriff            getPreferenceScreen().removePreference(wifiP2p);
1601610a74a26763046c147b2cf5cda7d84a62b95ffIrfan Sheriff        } else {
1611610a74a26763046c147b2cf5cda7d84a62b95ffIrfan Sheriff            mWifiP2pEnabler = new WifiP2pEnabler(activity, wifiP2p);
162b98463f8b0de186dc263217286449a76d6df91a8repo sync        }
16374fda1065a72f835c0ed8cee19c6eb77ffc56743Irfan Sheriff        getPreferenceScreen().removePreference(findPreference(KEY_WIFI_P2P_SETTINGS));
164b98463f8b0de186dc263217286449a76d6df91a8repo sync
16505411893af4afc4bf7b8530d787c5b9e0bbeed39Oscar Montemayor        // Enable Proxy selector settings if allowed.
16605411893af4afc4bf7b8530d787c5b9e0bbeed39Oscar Montemayor        Preference mGlobalProxy = findPreference(KEY_PROXY_SETTINGS);
167d79934731c8d33f6fc63b21c120b9ffba5d06f54Amith Yamasani        DevicePolicyManager mDPM = (DevicePolicyManager)
168d79934731c8d33f6fc63b21c120b9ffba5d06f54Amith Yamasani                activity.getSystemService(Context.DEVICE_POLICY_SERVICE);
1696f3a98bb00f12851682c28d265be4f66fad85fd6Robert Greenwalt        // proxy UI disabled until we have better app support
1706f3a98bb00f12851682c28d265be4f66fad85fd6Robert Greenwalt        getPreferenceScreen().removePreference(mGlobalProxy);
17105411893af4afc4bf7b8530d787c5b9e0bbeed39Oscar Montemayor        mGlobalProxy.setEnabled(mDPM.getGlobalProxyAdmin() == null);
17205411893af4afc4bf7b8530d787c5b9e0bbeed39Oscar Montemayor
1730f85c48d6c77e811f4d949503f0aa3efd908834dAmith Yamasani        // Disable Tethering if it's not allowed or if it's a wifi-only device
174c4764d24837cf297440f0ee97fe8adb943c56fe0Robert Greenwalt        ConnectivityManager cm =
175d79934731c8d33f6fc63b21c120b9ffba5d06f54Amith Yamasani                (ConnectivityManager) activity.getSystemService(Context.CONNECTIVITY_SERVICE);
1764ad4b4fdf7a36820ffc3a1048d8d7e030ead4591Robert Greenwalt        if (!cm.isTetheringSupported()) {
177c4764d24837cf297440f0ee97fe8adb943c56fe0Robert Greenwalt            getPreferenceScreen().removePreference(findPreference(KEY_TETHER_SETTINGS));
178e434bfb216682a6ca331fa54ce58a2bff7adf8d7Robert Greenwalt        } else {
179e434bfb216682a6ca331fa54ce58a2bff7adf8d7Robert Greenwalt            Preference p = findPreference(KEY_TETHER_SETTINGS);
180a83a24f48a8286ee3d67acc5fdcfb723acc56adaJeff Sharkey            p.setTitle(Utils.getTetheringLabel(cm));
181c4764d24837cf297440f0ee97fe8adb943c56fe0Robert Greenwalt        }
182afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project    }
183c4764d24837cf297440f0ee97fe8adb943c56fe0Robert Greenwalt
184afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project    @Override
185d79934731c8d33f6fc63b21c120b9ffba5d06f54Amith Yamasani    public void onResume() {
186afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project        super.onResume();
18732711b6752eb73324e1b10db975ac956888eda96Danica Chang
1884e14211d21387d645ecdad406f3350d36e5a8643Chia-chi Yeh        mAirplaneModeEnabler.resume();
1899894d4ade475392f665bf87bf7f91d3cbed3eaa4Nick Pelly        if (mNfcEnabler != null) {
1909894d4ade475392f665bf87bf7f91d3cbed3eaa4Nick Pelly            mNfcEnabler.resume();
191bb4bdc29d64714546255681fcd9c9d92efa9328fMartijn Coenen        }
1921610a74a26763046c147b2cf5cda7d84a62b95ffIrfan Sheriff
1931610a74a26763046c147b2cf5cda7d84a62b95ffIrfan Sheriff        if (mWifiP2pEnabler != null) {
1941610a74a26763046c147b2cf5cda7d84a62b95ffIrfan Sheriff            mWifiP2pEnabler.resume();
1951610a74a26763046c147b2cf5cda7d84a62b95ffIrfan Sheriff        }
196afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project    }
19732711b6752eb73324e1b10db975ac956888eda96Danica Chang
198afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project    @Override
199d79934731c8d33f6fc63b21c120b9ffba5d06f54Amith Yamasani    public void onPause() {
200afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project        super.onPause();
20132711b6752eb73324e1b10db975ac956888eda96Danica Chang
202afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project        mAirplaneModeEnabler.pause();
2039894d4ade475392f665bf87bf7f91d3cbed3eaa4Nick Pelly        if (mNfcEnabler != null) {
2049894d4ade475392f665bf87bf7f91d3cbed3eaa4Nick Pelly            mNfcEnabler.pause();
2059894d4ade475392f665bf87bf7f91d3cbed3eaa4Nick Pelly        }
2061610a74a26763046c147b2cf5cda7d84a62b95ffIrfan Sheriff
2071610a74a26763046c147b2cf5cda7d84a62b95ffIrfan Sheriff        if (mWifiP2pEnabler != null) {
2081610a74a26763046c147b2cf5cda7d84a62b95ffIrfan Sheriff            mWifiP2pEnabler.pause();
2091610a74a26763046c147b2cf5cda7d84a62b95ffIrfan Sheriff        }
210afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project    }
21132711b6752eb73324e1b10db975ac956888eda96Danica Chang
21271cc49e480e7dfd5d0986d7600d0c73aecdbdf93Chouting Zhang    @Override
213d79934731c8d33f6fc63b21c120b9ffba5d06f54Amith Yamasani    public void onActivityResult(int requestCode, int resultCode, Intent data) {
2144e14211d21387d645ecdad406f3350d36e5a8643Chia-chi Yeh        if (requestCode == REQUEST_CODE_EXIT_ECM) {
2154e14211d21387d645ecdad406f3350d36e5a8643Chia-chi Yeh            Boolean isChoiceYes = data.getBooleanExtra(EXIT_ECM_RESULT, false);
21671cc49e480e7dfd5d0986d7600d0c73aecdbdf93Chouting Zhang            // Set Airplane mode based on the return value and checkbox state
21771cc49e480e7dfd5d0986d7600d0c73aecdbdf93Chouting Zhang            mAirplaneModeEnabler.setAirplaneModeInECM(isChoiceYes,
21871cc49e480e7dfd5d0986d7600d0c73aecdbdf93Chouting Zhang                    mAirplaneModePreference.isChecked());
21971cc49e480e7dfd5d0986d7600d0c73aecdbdf93Chouting Zhang        }
22071cc49e480e7dfd5d0986d7600d0c73aecdbdf93Chouting Zhang    }
221afc4ab2ffbb8327ddce9907961295a32cbf49d0fThe Android Open Source Project}
222