summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/WirelessSettings.java
diff options
context:
space:
mode:
authorChouting Zhang <MichaelZhang@motorola.com>2009-08-28 14:36:35 -0500
committerWink Saville <wink@google.com>2009-08-31 09:45:21 -0700
commit71cc49e480e7dfd5d0986d7600d0c73aecdbdf93 (patch)
tree68bea0d12c3423477029f4ed0de3b3e048e53abb /src/com/android/settings/WirelessSettings.java
parentb89653cb954e6945d78a3f2ed876a1760c5d5484 (diff)
downloadpackages_apps_settings-71cc49e480e7dfd5d0986d7600d0c73aecdbdf93.zip
packages_apps_settings-71cc49e480e7dfd5d0986d7600d0c73aecdbdf93.tar.gz
packages_apps_settings-71cc49e480e7dfd5d0986d7600d0c73aecdbdf93.tar.bz2
Airplane Mode in Emergency Callback Mode (ECM)
When user tries to change Airplane Mode between ON & OFF in ECM mode, a notice should be shown to indicate it's in ECM mode, and ask if user wants to exit ECM, if yes, then the Airplane Mode is changed after ECM mode exit. If not, Airplane Mode should not be changed.
Diffstat (limited to 'src/com/android/settings/WirelessSettings.java')
-rw-r--r--src/com/android/settings/WirelessSettings.java49
1 files changed, 49 insertions, 0 deletions
diff --git a/src/com/android/settings/WirelessSettings.java b/src/com/android/settings/WirelessSettings.java
index f160bac..b5c9ec1 100644
--- a/src/com/android/settings/WirelessSettings.java
+++ b/src/com/android/settings/WirelessSettings.java
@@ -19,13 +19,19 @@ package com.android.settings;
import com.android.settings.bluetooth.BluetoothEnabler;
import com.android.settings.wifi.WifiEnabler;
+import android.content.Intent;
import android.net.wifi.WifiManager;
import android.os.Bundle;
+import android.os.SystemProperties;
import android.preference.CheckBoxPreference;
import android.preference.Preference;
+import android.preference.PreferenceScreen;
import android.preference.PreferenceActivity;
import android.provider.Settings;
+import com.android.internal.telephony.TelephonyIntents;
+import com.android.internal.telephony.TelephonyProperties;
+
public class WirelessSettings extends PreferenceActivity {
private static final String KEY_TOGGLE_AIRPLANE = "toggle_airplane";
@@ -33,10 +39,36 @@ public class WirelessSettings extends PreferenceActivity {
private static final String KEY_TOGGLE_WIFI = "toggle_wifi";
private static final String KEY_WIFI_SETTINGS = "wifi_settings";
private static final String KEY_VPN_SETTINGS = "vpn_settings";
+ public static final String EXIT_ECM_RESULT = "exit_ecm_result";
+ public static final int REQUEST_CODE_EXIT_ECM = 1;
private WifiEnabler mWifiEnabler;
private AirplaneModeEnabler mAirplaneModeEnabler;
private BluetoothEnabler mBtEnabler;
+ private CheckBoxPreference mAirplaneModePreference;
+
+ /**
+ * Invoked on each preference click in this hierarchy, overrides
+ * PreferenceActivity's implementation. Used to make sure we track the
+ * preference click events.
+ */
+ @Override
+ public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
+ if ( (preference == mAirplaneModePreference) &&
+ (Boolean.parseBoolean(
+ SystemProperties.get(TelephonyProperties.PROPERTY_INECM_MODE))) ) {
+ // In ECM mode launch ECM app dialog
+ startActivityForResult(
+ new Intent(TelephonyIntents.ACTION_SHOW_NOTICE_ECM_BLOCK_OTHERS, null),
+ REQUEST_CODE_EXIT_ECM);
+
+ return true;
+ }
+ else {
+ // Let the intents be launched by the Preference manager
+ return false;
+ }
+ }
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -45,6 +77,7 @@ public class WirelessSettings extends PreferenceActivity {
addPreferencesFromResource(R.xml.wireless_settings);
initToggles();
+ mAirplaneModePreference = (CheckBoxPreference) findPreference(KEY_TOGGLE_AIRPLANE);
}
@Override
@@ -90,4 +123,20 @@ public class WirelessSettings extends PreferenceActivity {
}
}
+ @Override
+ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+ switch(requestCode) {
+ case REQUEST_CODE_EXIT_ECM:
+ Boolean isChoiceYes =
+ data.getBooleanExtra(EXIT_ECM_RESULT, false);
+ // Set Airplane mode based on the return value and checkbox state
+ mAirplaneModeEnabler.setAirplaneModeInECM(isChoiceYes,
+ mAirplaneModePreference.isChecked());
+ break;
+
+ default:
+ break;
+ }
+ }
+
}