diff options
author | Irfan Sheriff <isheriff@google.com> | 2011-09-09 14:10:15 -0700 |
---|---|---|
committer | Irfan Sheriff <isheriff@google.com> | 2011-09-09 14:10:15 -0700 |
commit | 295da73f051e1a1280284d94d800c57f163a3986 (patch) | |
tree | 32a4fdcf0b95c027e28661a5029467711a9c7f5a /wifi | |
parent | 76866208f81988fa653568513112b152e156d806 (diff) | |
download | frameworks_base-295da73f051e1a1280284d94d800c57f163a3986.zip frameworks_base-295da73f051e1a1280284d94d800c57f163a3986.tar.gz frameworks_base-295da73f051e1a1280284d94d800c57f163a3986.tar.bz2 |
Disable p2p when airplane mode is turned on
Bug: 5286610
Change-Id: Ia895dfbf0d1bc39458f4a4d24595c862750eea38
Diffstat (limited to 'wifi')
-rw-r--r-- | wifi/java/android/net/wifi/p2p/WifiP2pService.java | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/wifi/java/android/net/wifi/p2p/WifiP2pService.java b/wifi/java/android/net/wifi/p2p/WifiP2pService.java index e2b2249..2f7b927 100644 --- a/wifi/java/android/net/wifi/p2p/WifiP2pService.java +++ b/wifi/java/android/net/wifi/p2p/WifiP2pService.java @@ -132,6 +132,9 @@ public class WifiP2pService extends IWifiP2pManager.Stub { /* User rejected to disable Wi-Fi in order to enable p2p */ private static final int WIFI_DISABLE_USER_REJECT = BASE + 5; + /* Airplane mode changed */ + private static final int AIRPLANE_MODE_CHANGED = BASE + 6; + private final boolean mP2pSupported; private final String mDeviceType; private String mDeviceName; @@ -168,6 +171,7 @@ public class WifiP2pService extends IWifiP2pManager.Stub { // broadcasts IntentFilter filter = new IntentFilter(); filter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION); + filter.addAction(Intent.ACTION_AIRPLANE_MODE_CHANGED); filter.addAction(WifiManager.WIFI_AP_STATE_CHANGED_ACTION); mContext.registerReceiver(new WifiStateReceiver(), filter); @@ -187,6 +191,8 @@ public class WifiP2pService extends IWifiP2pManager.Stub { } else if (intent.getAction().equals(WifiManager.WIFI_AP_STATE_CHANGED_ACTION)) { mWifiApState = intent.getIntExtra(WifiManager.EXTRA_WIFI_AP_STATE, WifiManager.WIFI_AP_STATE_DISABLED); + } else if (intent.getAction().equals(Intent.ACTION_AIRPLANE_MODE_CHANGED)) { + mP2pStateMachine.sendMessage(AIRPLANE_MODE_CHANGED); } } } @@ -352,7 +358,10 @@ public class WifiP2pService extends IWifiP2pManager.Stub { case WifiP2pManager.REQUEST_GROUP_INFO: replyToMessage(message, WifiP2pManager.RESPONSE_GROUP_INFO, mGroup); break; - // Ignore + case AIRPLANE_MODE_CHANGED: + if (isAirplaneModeOn()) sendMessage(WifiP2pManager.DISABLE_P2P); + break; + // Ignore case WIFI_DISABLE_USER_ACCEPT: case WIFI_DISABLE_USER_REJECT: case GROUP_NEGOTIATION_TIMED_OUT: @@ -1266,5 +1275,17 @@ public class WifiP2pService extends IWifiP2pManager.Stub { } } + private boolean isAirplaneSensitive() { + String airplaneModeRadios = Settings.System.getString(mContext.getContentResolver(), + Settings.System.AIRPLANE_MODE_RADIOS); + return airplaneModeRadios == null + || airplaneModeRadios.contains(Settings.System.RADIO_WIFI); + } + + private boolean isAirplaneModeOn() { + return isAirplaneSensitive() && Settings.System.getInt(mContext.getContentResolver(), + Settings.System.AIRPLANE_MODE_ON, 0) == 1; + } + } } |