Loading wifi/java/android/net/wifi/WifiNative.java +4 −0 Original line number Diff line number Diff line Loading @@ -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"); } Loading wifi/java/android/net/wifi/p2p/WifiP2pGroup.java +6 −0 Original line number Diff line number Diff line Loading @@ -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); Loading wifi/java/android/net/wifi/p2p/WifiP2pService.java +8 −9 Original line number Diff line number Diff line Loading @@ -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); Loading Loading @@ -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 Loading Loading
wifi/java/android/net/wifi/WifiNative.java +4 −0 Original line number Diff line number Diff line Loading @@ -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"); } Loading
wifi/java/android/net/wifi/p2p/WifiP2pGroup.java +6 −0 Original line number Diff line number Diff line Loading @@ -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); Loading
wifi/java/android/net/wifi/p2p/WifiP2pService.java +8 −9 Original line number Diff line number Diff line Loading @@ -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); Loading Loading @@ -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 Loading