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

Commit 1f141cb1 authored by Naresh Jayaram's avatar Naresh Jayaram Committed by Linux Build Service Account
Browse files

P2P: Updates the P2P peer list when there is P2P State Change Action

In the current implementation the P2P window gets updated with the
Peers list only when there is WIFI_P2P_PEERS_CHANGED_ACTION Intent.
Thus the P2P status remains unchanged when there is
WIFI_P2P_STATE_CHANGED_ACTION intent. When there is back and forth
navigation to P2P window, WIFI_P2P_STATE_CHANGED_ACTION intent invokes
the onPeersAvaliable function asynchronously and updates the P2P status
and peers list.

CRs-fixed: 512821
Change-Id: I69b26ef72bf30f547bf8fb5580d440c5119df054
(cherry picked from commit 17edb35f25b01560a2fd8c159432a794c46765f0)
(cherry picked from commit f4a4708e50657c14412a9f370f023fd89cba8e6b)
parent 839d091a
Loading
Loading
Loading
Loading
+17 −1
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ import android.net.wifi.p2p.WifiP2pGroup;
import android.net.wifi.p2p.WifiP2pGroupList;
import android.net.wifi.p2p.WifiP2pManager;
import android.net.wifi.p2p.WifiP2pManager.GroupInfoListener;
import android.net.wifi.p2p.WifiP2pManager.PeerListListener;
import android.net.wifi.p2p.WifiP2pManager.PersistentGroupInfoListener;
import android.net.wifi.WpsInfo;
import android.os.Bundle;
@@ -67,7 +68,7 @@ import java.util.Collection;
 * Displays Wi-fi p2p settings UI
 */
public class WifiP2pSettings extends SettingsPreferenceFragment
        implements PersistentGroupInfoListener, GroupInfoListener {
        implements PeerListListener, PersistentGroupInfoListener, GroupInfoListener {

    private static final String TAG = "WifiP2pSettings";
    private static final boolean DBG = false;
@@ -490,6 +491,19 @@ public class WifiP2pSettings extends SettingsPreferenceFragment
        }
    }

    public void onPeersAvailable(WifiP2pDeviceList peers) {
        mPeersGroup.removeAll();

        mPeers = peers;
        mConnectedDevices = 0;
        for (WifiP2pDevice peer: peers.getDeviceList()) {
            if (DBG) Log.d(TAG, " peer " + peer);
            mPeersGroup.addPreference(new WifiP2pPeer(getActivity(), peer));
            if (peer.status == WifiP2pDevice.CONNECTED) mConnectedDevices++;
        }
        if (DBG) Log.d(TAG, " mConnectedDevices " + mConnectedDevices);
    }

    private void handlePeersChanged() {
        mPeersGroup.removeAll();

@@ -545,6 +559,8 @@ public class WifiP2pSettings extends SettingsPreferenceFragment

            mPersistentGroup.setEnabled(true);
            preferenceScreen.addPreference(mPersistentGroup);
            /* Request latest set of peers */
            mWifiP2pManager.requestPeers(mChannel, WifiP2pSettings.this);
        }
    }