diff options
author | Irfan Sheriff <isheriff@google.com> | 2011-09-11 19:59:01 -0700 |
---|---|---|
committer | Irfan Sheriff <isheriff@google.com> | 2011-09-11 22:56:17 -0700 |
commit | 616f3173e08ec6110cf5766c70f84c9e031fb7d7 (patch) | |
tree | 5acef71d3cf14d3031e87cba59d17824ac769e8e /services | |
parent | e00633e49a7136e14da8ce9938cf6a3333f28498 (diff) | |
download | frameworks_base-616f3173e08ec6110cf5766c70f84c9e031fb7d7.zip frameworks_base-616f3173e08ec6110cf5766c70f84c9e031fb7d7.tar.gz frameworks_base-616f3173e08ec6110cf5766c70f84c9e031fb7d7.tar.bz2 |
Emergency callback mode handling
For wifi, track ECM and shut down and restart when device
goes in ECM and out
For p2p, simply turn off when in ECM mode
Bug: 5185246
Change-Id: I5f5bf75fac3e27db1d7c412135c796f2b137263d
Diffstat (limited to 'services')
-rw-r--r-- | services/java/com/android/server/WifiService.java | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/services/java/com/android/server/WifiService.java b/services/java/com/android/server/WifiService.java index e6b5898..4b1a4e6 100644 --- a/services/java/com/android/server/WifiService.java +++ b/services/java/com/android/server/WifiService.java @@ -69,6 +69,7 @@ import java.io.FileDescriptor; import java.io.PrintWriter; import com.android.internal.app.IBatteryStats; +import com.android.internal.telephony.TelephonyIntents; import com.android.internal.util.AsyncChannel; import com.android.server.am.BatteryStatsService; import com.android.internal.R; @@ -96,6 +97,7 @@ public class WifiService extends IWifiManager.Stub { private static final int IDLE_REQUEST = 0; private boolean mScreenOff; private boolean mDeviceIdle; + private boolean mEmergencyCallbackMode = false; private int mPluggedType; /* Chipset supports background scan */ @@ -996,6 +998,9 @@ public class WifiService extends IWifiManager.Stub { int state = intent.getIntExtra(BluetoothAdapter.EXTRA_CONNECTION_STATE, BluetoothAdapter.STATE_DISCONNECTED); mWifiStateMachine.sendBluetoothAdapterStateChange(state); + } else if (action.equals(TelephonyIntents.ACTION_EMERGENCY_CALLBACK_MODE_CHANGED)) { + mEmergencyCallbackMode = intent.getBooleanExtra("phoneinECMState", false); + updateWifiState(); } } @@ -1057,7 +1062,13 @@ public class WifiService extends IWifiManager.Stub { private void updateWifiState() { boolean lockHeld = mLocks.hasLocks(); int strongestLockMode = WifiManager.WIFI_MODE_FULL; - boolean wifiShouldBeStarted = !mDeviceIdle || lockHeld; + boolean wifiShouldBeStarted; + + if (mEmergencyCallbackMode) { + wifiShouldBeStarted = false; + } else { + wifiShouldBeStarted = !mDeviceIdle || lockHeld; + } if (lockHeld) { strongestLockMode = mLocks.getStrongestLockMode(); @@ -1097,6 +1108,7 @@ public class WifiService extends IWifiManager.Stub { intentFilter.addAction(Intent.ACTION_BATTERY_CHANGED); intentFilter.addAction(ACTION_DEVICE_IDLE); intentFilter.addAction(BluetoothAdapter.ACTION_CONNECTION_STATE_CHANGED); + intentFilter.addAction(TelephonyIntents.ACTION_EMERGENCY_CALLBACK_MODE_CHANGED); mContext.registerReceiver(mReceiver, intentFilter); } |