diff options
| -rw-r--r-- | api/current.txt | 10 | ||||
| -rwxr-xr-x | api/system-current.txt | 5 | ||||
| -rw-r--r-- | services/core/java/com/android/server/display/WifiDisplayController.java | 6 | ||||
| -rw-r--r-- | wifi/java/android/net/wifi/p2p/WifiP2pConfig.java | 2 | ||||
| -rw-r--r-- | wifi/java/android/net/wifi/p2p/WifiP2pGroupList.java | 6 | ||||
| -rw-r--r-- | wifi/java/android/net/wifi/p2p/WifiP2pManager.java | 29 | ||||
| -rw-r--r-- | wifi/java/android/net/wifi/p2p/WifiP2pWfdInfo.java | 25 | ||||
| -rw-r--r-- | wifi/tests/src/android/net/wifi/p2p/WifiP2pDeviceTest.java | 2 | ||||
| -rw-r--r-- | wifi/tests/src/android/net/wifi/p2p/WifiP2pWfdInfoTest.java | 4 |
9 files changed, 57 insertions, 32 deletions
diff --git a/api/current.txt b/api/current.txt index 5ac58d043660..5b4ba87c7245 100644 --- a/api/current.txt +++ b/api/current.txt @@ -31737,7 +31737,7 @@ package android.net.wifi.p2p { field public static final int GROUP_OWNER_INTENT_MAX = 15; // 0xf field public static final int GROUP_OWNER_INTENT_MIN = 0; // 0x0 field public String deviceAddress; - field public int groupOwnerIntent; + field @IntRange(from=0, to=15) public int groupOwnerIntent; field public android.net.wifi.WpsInfo wps; } @@ -31929,14 +31929,14 @@ package android.net.wifi.p2p { method public int getDeviceType(); method public int getMaxThroughput(); method public boolean isContentProtectionSupported(); + method public boolean isEnabled(); method public boolean isSessionAvailable(); - method public boolean isWfdEnabled(); method public void setContentProtectionSupported(boolean); - method public void setControlPort(int); + method public void setControlPort(@IntRange(from=0) int); method public boolean setDeviceType(int); - method public void setMaxThroughput(int); + method public void setEnabled(boolean); + method public void setMaxThroughput(@IntRange(from=0) int); method public void setSessionAvailable(boolean); - method public void setWfdEnabled(boolean); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.net.wifi.p2p.WifiP2pWfdInfo> CREATOR; field public static final int DEVICE_TYPE_PRIMARY_SINK = 1; // 0x1 diff --git a/api/system-current.txt b/api/system-current.txt index ed9f1341a2d0..58b7ab3106f1 100755 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -8102,7 +8102,7 @@ package android.net.wifi.p2p { public final class WifiP2pGroupList implements android.os.Parcelable { method public int describeContents(); - method @NonNull public java.util.Collection<android.net.wifi.p2p.WifiP2pGroup> getGroupList(); + method @NonNull public java.util.List<android.net.wifi.p2p.WifiP2pGroup> getGroupList(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.net.wifi.p2p.WifiP2pGroupList> CREATOR; } @@ -8110,12 +8110,13 @@ package android.net.wifi.p2p { public class WifiP2pManager { method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_STACK, android.Manifest.permission.OVERRIDE_WIFI_CONFIG}) public void deletePersistentGroup(@NonNull android.net.wifi.p2p.WifiP2pManager.Channel, int, @Nullable android.net.wifi.p2p.WifiP2pManager.ActionListener); method @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public void factoryReset(@NonNull android.net.wifi.p2p.WifiP2pManager.Channel, @Nullable android.net.wifi.p2p.WifiP2pManager.ActionListener); - method @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public void listen(@NonNull android.net.wifi.p2p.WifiP2pManager.Channel, boolean, @Nullable android.net.wifi.p2p.WifiP2pManager.ActionListener); method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_STACK, android.Manifest.permission.READ_WIFI_CREDENTIAL}) public void requestPersistentGroupInfo(@NonNull android.net.wifi.p2p.WifiP2pManager.Channel, @Nullable android.net.wifi.p2p.WifiP2pManager.PersistentGroupInfoListener); method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_STACK, android.Manifest.permission.OVERRIDE_WIFI_CONFIG}) public void setDeviceName(@NonNull android.net.wifi.p2p.WifiP2pManager.Channel, @NonNull String, @Nullable android.net.wifi.p2p.WifiP2pManager.ActionListener); method @RequiresPermission(allOf={android.Manifest.permission.CONNECTIVITY_INTERNAL, android.Manifest.permission.CONFIGURE_WIFI_DISPLAY}) public void setMiracastMode(int); method @RequiresPermission(android.Manifest.permission.CONFIGURE_WIFI_DISPLAY) public void setWfdInfo(@NonNull android.net.wifi.p2p.WifiP2pManager.Channel, @NonNull android.net.wifi.p2p.WifiP2pWfdInfo, @Nullable android.net.wifi.p2p.WifiP2pManager.ActionListener); method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_STACK, android.Manifest.permission.OVERRIDE_WIFI_CONFIG}) public void setWifiP2pChannels(@NonNull android.net.wifi.p2p.WifiP2pManager.Channel, int, int, @Nullable android.net.wifi.p2p.WifiP2pManager.ActionListener); + method @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public void startListening(@NonNull android.net.wifi.p2p.WifiP2pManager.Channel, @Nullable android.net.wifi.p2p.WifiP2pManager.ActionListener); + method @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public void stopListening(@NonNull android.net.wifi.p2p.WifiP2pManager.Channel, @Nullable android.net.wifi.p2p.WifiP2pManager.ActionListener); field public static final String ACTION_WIFI_P2P_PERSISTENT_GROUPS_CHANGED = "android.net.wifi.p2p.action.WIFI_P2P_PERSISTENT_GROUPS_CHANGED"; field public static final int MIRACAST_DISABLED = 0; // 0x0 field public static final int MIRACAST_SINK = 2; // 0x2 diff --git a/services/core/java/com/android/server/display/WifiDisplayController.java b/services/core/java/com/android/server/display/WifiDisplayController.java index 2992f1e47dc7..a7e1a2876f81 100644 --- a/services/core/java/com/android/server/display/WifiDisplayController.java +++ b/services/core/java/com/android/server/display/WifiDisplayController.java @@ -291,7 +291,7 @@ final class WifiDisplayController implements DumpUtils.Dump { mWfdEnabling = true; WifiP2pWfdInfo wfdInfo = new WifiP2pWfdInfo(); - wfdInfo.setWfdEnabled(true); + wfdInfo.setEnabled(true); wfdInfo.setDeviceType(WifiP2pWfdInfo.DEVICE_TYPE_WFD_SOURCE); wfdInfo.setSessionAvailable(true); wfdInfo.setControlPort(DEFAULT_CONTROL_PORT); @@ -323,7 +323,7 @@ final class WifiDisplayController implements DumpUtils.Dump { // WFD should be disabled. if (mWfdEnabled || mWfdEnabling) { WifiP2pWfdInfo wfdInfo = new WifiP2pWfdInfo(); - wfdInfo.setWfdEnabled(false); + wfdInfo.setEnabled(false); mWifiP2pManager.setWfdInfo(mWifiP2pChannel, wfdInfo, new ActionListener() { @Override public void onSuccess() { @@ -1044,7 +1044,7 @@ final class WifiDisplayController implements DumpUtils.Dump { private static boolean isWifiDisplay(WifiP2pDevice device) { WifiP2pWfdInfo wfdInfo = device.getWfdInfo(); return wfdInfo != null - && wfdInfo.isWfdEnabled() + && wfdInfo.isEnabled() && isPrimarySinkDeviceType(wfdInfo.getDeviceType()); } diff --git a/wifi/java/android/net/wifi/p2p/WifiP2pConfig.java b/wifi/java/android/net/wifi/p2p/WifiP2pConfig.java index 36c7213b3799..d47989235f0b 100644 --- a/wifi/java/android/net/wifi/p2p/WifiP2pConfig.java +++ b/wifi/java/android/net/wifi/p2p/WifiP2pConfig.java @@ -17,6 +17,7 @@ package android.net.wifi.p2p; import android.annotation.IntDef; +import android.annotation.IntRange; import android.annotation.NonNull; import android.annotation.Nullable; import android.compat.annotation.UnsupportedAppUsage; @@ -133,6 +134,7 @@ public class WifiP2pConfig implements Parcelable { * * By default this field is set to {@link #GROUP_OWNER_INTENT_AUTO}. */ + @IntRange(from = 0, to = 15) public int groupOwnerIntent = GROUP_OWNER_INTENT_AUTO; /** @hide */ diff --git a/wifi/java/android/net/wifi/p2p/WifiP2pGroupList.java b/wifi/java/android/net/wifi/p2p/WifiP2pGroupList.java index cdb2806af0b1..8a86311defca 100644 --- a/wifi/java/android/net/wifi/p2p/WifiP2pGroupList.java +++ b/wifi/java/android/net/wifi/p2p/WifiP2pGroupList.java @@ -22,7 +22,9 @@ import android.os.Parcel; import android.os.Parcelable; import android.util.LruCache; +import java.util.ArrayList; import java.util.Collection; +import java.util.List; import java.util.Map; @@ -78,8 +80,8 @@ public final class WifiP2pGroupList implements Parcelable { * Get the list of P2P groups. */ @NonNull - public Collection<WifiP2pGroup> getGroupList() { - return mGroups.snapshot().values(); + public List<WifiP2pGroup> getGroupList() { + return new ArrayList<>(mGroups.snapshot().values()); } /** diff --git a/wifi/java/android/net/wifi/p2p/WifiP2pManager.java b/wifi/java/android/net/wifi/p2p/WifiP2pManager.java index 0fe06756a969..9c2cad99614d 100644 --- a/wifi/java/android/net/wifi/p2p/WifiP2pManager.java +++ b/wifi/java/android/net/wifi/p2p/WifiP2pManager.java @@ -326,6 +326,12 @@ public class WifiP2pManager { /** * Broadcast intent action indicating that remembered persistent groups have changed. + * + * You can <em>not</em> receive this through components declared + * in manifests, only by explicitly registering for it with + * {@link android.content.Context#registerReceiver(android.content.BroadcastReceiver, + * android.content.IntentFilter) Context.registerReceiver()}. + * * @hide */ @SystemApi @@ -1347,20 +1353,33 @@ public class WifiP2pManager { } /** - * Force p2p to enter or exit listen state + * Force p2p to enter listen state * * @param c is the channel created at {@link #initialize(Context, Looper, ChannelListener)} - * @param enable enables or disables listening * @param listener for callbacks on success or failure. Can be null. * * @hide */ @SystemApi @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) - public void listen(@NonNull Channel c, boolean enable, @Nullable ActionListener listener) { + public void startListening(@NonNull Channel c, @Nullable ActionListener listener) { checkChannel(c); - c.mAsyncChannel.sendMessage(enable ? START_LISTEN : STOP_LISTEN, - 0, c.putListener(listener)); + c.mAsyncChannel.sendMessage(START_LISTEN, 0, c.putListener(listener)); + } + + /** + * Force p2p to exit listen state + * + * @param c is the channel created at {@link #initialize(Context, Looper, ChannelListener)} + * @param listener for callbacks on success or failure. Can be null. + * + * @hide + */ + @SystemApi + @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) + public void stopListening(@NonNull Channel c, @Nullable ActionListener listener) { + checkChannel(c); + c.mAsyncChannel.sendMessage(STOP_LISTEN, 0, c.putListener(listener)); } /** diff --git a/wifi/java/android/net/wifi/p2p/WifiP2pWfdInfo.java b/wifi/java/android/net/wifi/p2p/WifiP2pWfdInfo.java index 5484d248429f..e399b5b9afa6 100644 --- a/wifi/java/android/net/wifi/p2p/WifiP2pWfdInfo.java +++ b/wifi/java/android/net/wifi/p2p/WifiP2pWfdInfo.java @@ -17,6 +17,7 @@ package android.net.wifi.p2p; import android.annotation.IntDef; +import android.annotation.IntRange; import android.annotation.NonNull; import android.annotation.Nullable; import android.compat.annotation.UnsupportedAppUsage; @@ -34,7 +35,7 @@ import java.util.Locale; */ public final class WifiP2pWfdInfo implements Parcelable { - private boolean mWfdEnabled; + private boolean mEnabled; /** Device information bitmap */ private int mDeviceInfo; @@ -85,15 +86,15 @@ public final class WifiP2pWfdInfo implements Parcelable { /** @hide */ @UnsupportedAppUsage public WifiP2pWfdInfo(int devInfo, int ctrlPort, int maxTput) { - mWfdEnabled = true; + mEnabled = true; mDeviceInfo = devInfo; mCtrlPort = ctrlPort; mMaxThroughput = maxTput; } /** Returns true is Wifi Display is enabled, false otherwise. */ - public boolean isWfdEnabled() { - return mWfdEnabled; + public boolean isEnabled() { + return mEnabled; } /** @@ -101,8 +102,8 @@ public final class WifiP2pWfdInfo implements Parcelable { * * @param enabled true to enable Wifi Display, false to disable */ - public void setWfdEnabled(boolean enabled) { - mWfdEnabled = enabled; + public void setEnabled(boolean enabled) { + mEnabled = enabled; } /** @@ -177,12 +178,12 @@ public final class WifiP2pWfdInfo implements Parcelable { } /** Sets the TCP port at which the WFD Device listens for RTSP messages. */ - public void setControlPort(int port) { + public void setControlPort(@IntRange(from = 0) int port) { mCtrlPort = port; } /** Sets the maximum average throughput capability of the WFD Device, in megabits/second. */ - public void setMaxThroughput(int maxThroughput) { + public void setMaxThroughput(@IntRange(from = 0) int maxThroughput) { mMaxThroughput = maxThroughput; } @@ -200,7 +201,7 @@ public final class WifiP2pWfdInfo implements Parcelable { @Override public String toString() { StringBuffer sbuf = new StringBuffer(); - sbuf.append("WFD enabled: ").append(mWfdEnabled); + sbuf.append("WFD enabled: ").append(mEnabled); sbuf.append("WFD DeviceInfo: ").append(mDeviceInfo); sbuf.append("\n WFD CtrlPort: ").append(mCtrlPort); sbuf.append("\n WFD MaxThroughput: ").append(mMaxThroughput); @@ -215,7 +216,7 @@ public final class WifiP2pWfdInfo implements Parcelable { /** Copy constructor. */ public WifiP2pWfdInfo(@Nullable WifiP2pWfdInfo source) { if (source != null) { - mWfdEnabled = source.mWfdEnabled; + mEnabled = source.mEnabled; mDeviceInfo = source.mDeviceInfo; mCtrlPort = source.mCtrlPort; mMaxThroughput = source.mMaxThroughput; @@ -225,14 +226,14 @@ public final class WifiP2pWfdInfo implements Parcelable { /** Implement the Parcelable interface */ @Override public void writeToParcel(@NonNull Parcel dest, int flags) { - dest.writeInt(mWfdEnabled ? 1 : 0); + dest.writeInt(mEnabled ? 1 : 0); dest.writeInt(mDeviceInfo); dest.writeInt(mCtrlPort); dest.writeInt(mMaxThroughput); } private void readFromParcel(Parcel in) { - mWfdEnabled = (in.readInt() == 1); + mEnabled = (in.readInt() == 1); mDeviceInfo = in.readInt(); mCtrlPort = in.readInt(); mMaxThroughput = in.readInt(); diff --git a/wifi/tests/src/android/net/wifi/p2p/WifiP2pDeviceTest.java b/wifi/tests/src/android/net/wifi/p2p/WifiP2pDeviceTest.java index 17ee75594c2f..6edc287068e8 100644 --- a/wifi/tests/src/android/net/wifi/p2p/WifiP2pDeviceTest.java +++ b/wifi/tests/src/android/net/wifi/p2p/WifiP2pDeviceTest.java @@ -45,7 +45,7 @@ public class WifiP2pDeviceTest { assertEquals(devA.groupCapability, devB.groupCapability); assertEquals(devA.status, devB.status); if (devA.wfdInfo != null) { - assertEquals(devA.wfdInfo.isWfdEnabled(), devB.wfdInfo.isWfdEnabled()); + assertEquals(devA.wfdInfo.isEnabled(), devB.wfdInfo.isEnabled()); assertEquals(devA.wfdInfo.getDeviceInfoHex(), devB.wfdInfo.getDeviceInfoHex()); assertEquals(devA.wfdInfo.getControlPort(), devB.wfdInfo.getControlPort()); assertEquals(devA.wfdInfo.getMaxThroughput(), devB.wfdInfo.getMaxThroughput()); diff --git a/wifi/tests/src/android/net/wifi/p2p/WifiP2pWfdInfoTest.java b/wifi/tests/src/android/net/wifi/p2p/WifiP2pWfdInfoTest.java index 15a0aacf6e5b..2a9b36b47172 100644 --- a/wifi/tests/src/android/net/wifi/p2p/WifiP2pWfdInfoTest.java +++ b/wifi/tests/src/android/net/wifi/p2p/WifiP2pWfdInfoTest.java @@ -55,8 +55,8 @@ public class WifiP2pWfdInfoTest { public void testSettersGetters() throws Exception { WifiP2pWfdInfo info = new WifiP2pWfdInfo(); - info.setWfdEnabled(true); - assertTrue(info.isWfdEnabled()); + info.setEnabled(true); + assertTrue(info.isEnabled()); info.setDeviceType(WifiP2pWfdInfo.DEVICE_TYPE_WFD_SOURCE); assertEquals(WifiP2pWfdInfo.DEVICE_TYPE_WFD_SOURCE, info.getDeviceType()); |