diff options
author | Irfan Sheriff <isheriff@google.com> | 2011-12-05 14:07:06 -0800 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-12-05 14:07:06 -0800 |
commit | d834aeb0f2fb78addd3d2e43b36939f911cd4bbd (patch) | |
tree | 90629ee312e00f0f4ba17173dcff587e9fbb6ab3 /wifi | |
parent | 7da48db9c5c071cfc1c54a3709a02c1300dccd76 (diff) | |
parent | 530040e0b9458994c02f4392765db168128d48da (diff) | |
download | frameworks_base-d834aeb0f2fb78addd3d2e43b36939f911cd4bbd.zip frameworks_base-d834aeb0f2fb78addd3d2e43b36939f911cd4bbd.tar.gz frameworks_base-d834aeb0f2fb78addd3d2e43b36939f911cd4bbd.tar.bz2 |
Merge "p2p enhancements"
Diffstat (limited to 'wifi')
-rw-r--r-- | wifi/java/android/net/wifi/WifiNative.java | 4 | ||||
-rw-r--r-- | wifi/java/android/net/wifi/p2p/WifiP2pGroup.java | 6 | ||||
-rw-r--r-- | wifi/java/android/net/wifi/p2p/WifiP2pService.java | 17 |
3 files changed, 18 insertions, 9 deletions
diff --git a/wifi/java/android/net/wifi/WifiNative.java b/wifi/java/android/net/wifi/WifiNative.java index 65caa51..0fc0a45 100644 --- a/wifi/java/android/net/wifi/WifiNative.java +++ b/wifi/java/android/net/wifi/WifiNative.java @@ -239,6 +239,10 @@ public class WifiNative { return WifiNative.doBooleanCommand("SET config_methods " + cfg); } + public static boolean setP2pSsidPostfix(String postfix) { + return WifiNative.doBooleanCommand("SET p2p_ssid_postfix " + postfix); + } + public static boolean p2pFind() { return doBooleanCommand("P2P_FIND"); } diff --git a/wifi/java/android/net/wifi/p2p/WifiP2pGroup.java b/wifi/java/android/net/wifi/p2p/WifiP2pGroup.java index 9473993..e141aba 100644 --- a/wifi/java/android/net/wifi/p2p/WifiP2pGroup.java +++ b/wifi/java/android/net/wifi/p2p/WifiP2pGroup.java @@ -172,6 +172,12 @@ public class WifiP2pGroup implements Parcelable { return mClients.size() == 0; } + /** @hide Returns {@code true} if the device is part of the group */ + public boolean contains(WifiP2pDevice device) { + if (mOwner.equals(device) || mClients.contains(device)) return true; + return false; + } + /** Get the list of clients currently part of the p2p group */ public Collection<WifiP2pDevice> getClientList() { return Collections.unmodifiableCollection(mClients); diff --git a/wifi/java/android/net/wifi/p2p/WifiP2pService.java b/wifi/java/android/net/wifi/p2p/WifiP2pService.java index ceca78d..dede1b5 100644 --- a/wifi/java/android/net/wifi/p2p/WifiP2pService.java +++ b/wifi/java/android/net/wifi/p2p/WifiP2pService.java @@ -1088,16 +1088,13 @@ public class WifiP2pService extends IWifiP2pManager.Stub { break; case WifiMonitor.P2P_DEVICE_LOST_EVENT: WifiP2pDevice device = (WifiP2pDevice) message.obj; - if (device.equals(mGroup.getOwner())) { - logd("Lost the group owner, killing p2p connection"); - WifiNative.p2pGroupRemove(mGroup.getInterface()); - } else if (mGroup.removeClient(device)) { - if (!mPersistGroup && mGroup.isClientListEmpty()) { - Slog.d(TAG, "Client list empty, removing a non-persistent p2p group"); - WifiNative.p2pGroupRemove(mGroup.getInterface()); - } + //Device loss for a connected device indicates it is not in discovery any more + if (mGroup.contains(device)) { + if (DBG) logd("Lost " + device +" , do nothing"); + return HANDLED; } - return NOT_HANDLED; // Do the regular device lost handling + // Do the regular device lost handling + return NOT_HANDLED; case WifiP2pManager.DISABLE_P2P: sendMessage(WifiP2pManager.REMOVE_GROUP); deferMessage(message); @@ -1401,6 +1398,8 @@ public class WifiP2pService extends IWifiP2pManager.Stub { private void initializeP2pSettings() { WifiNative.setPersistentReconnect(true); WifiNative.setDeviceName(mThisDevice.deviceName); + //DIRECT-XY-DEVICENAME (XY is randomly generated) + WifiNative.setP2pSsidPostfix("-" + mThisDevice.deviceName); WifiNative.setDeviceType(mThisDevice.primaryDeviceType); //The supplicant default is to support everything, but a bug necessitates //the framework to specify this explicitly |