Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d834aeb0 authored by Irfan Sheriff's avatar Irfan Sheriff Committed by Android (Google) Code Review
Browse files

Merge "p2p enhancements"

parents 7da48db9 530040e0
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -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");
    }
+6 −0
Original line number Diff line number Diff line
@@ -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);
+8 −9
Original line number Diff line number Diff line
@@ -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