diff options
| author | 2019-03-21 15:54:02 +0000 | |
|---|---|---|
| committer | 2019-03-21 15:54:02 +0000 | |
| commit | d7c6a26a877e8411c995b10941e320b738f17d5c (patch) | |
| tree | b9f6bb4c2fb20815cccaad12d22b06592ac67415 | |
| parent | 1af362e233ae02ca2ff7ca2eb2222bd30388c0da (diff) | |
| parent | 28b6d6a9364306cc7f8486bb54333d58925a05e9 (diff) | |
Merge "[AWARE] Update Aware NetworkSpecifier API per API council feedback"
| -rw-r--r-- | api/current.txt | 8 | ||||
| -rw-r--r-- | wifi/java/android/net/wifi/aware/WifiAwareNetworkSpecifier.java | 58 | ||||
| -rw-r--r-- | wifi/tests/src/android/net/wifi/aware/WifiAwareManagerTest.java | 66 |
3 files changed, 51 insertions, 81 deletions
diff --git a/api/current.txt b/api/current.txt index bccd2ffd7370..5355dd5e6b0e 100644 --- a/api/current.txt +++ b/api/current.txt @@ -30321,13 +30321,11 @@ package android.net.wifi.aware { } public static final class WifiAwareNetworkSpecifier.Builder { - ctor public WifiAwareNetworkSpecifier.Builder(); + ctor public WifiAwareNetworkSpecifier.Builder(@NonNull android.net.wifi.aware.DiscoverySession, @NonNull android.net.wifi.aware.PeerHandle); method @NonNull public android.net.wifi.aware.WifiAwareNetworkSpecifier build(); - method @NonNull public android.net.wifi.aware.WifiAwareNetworkSpecifier.Builder setDiscoverySession(@NonNull android.net.wifi.aware.DiscoverySession); - method @NonNull public android.net.wifi.aware.WifiAwareNetworkSpecifier.Builder setPeerHandle(@NonNull android.net.wifi.aware.PeerHandle); - method @NonNull public android.net.wifi.aware.WifiAwareNetworkSpecifier.Builder setPort(int); + method @NonNull public android.net.wifi.aware.WifiAwareNetworkSpecifier.Builder setPort(@IntRange(from=0, to=65535) int); method @NonNull public android.net.wifi.aware.WifiAwareNetworkSpecifier.Builder setPskPassphrase(@NonNull String); - method @NonNull public android.net.wifi.aware.WifiAwareNetworkSpecifier.Builder setTransportProtocol(int); + method @NonNull public android.net.wifi.aware.WifiAwareNetworkSpecifier.Builder setTransportProtocol(@IntRange(from=0, to=255) int); } public class WifiAwareSession implements java.lang.AutoCloseable { diff --git a/wifi/java/android/net/wifi/aware/WifiAwareNetworkSpecifier.java b/wifi/java/android/net/wifi/aware/WifiAwareNetworkSpecifier.java index b2251163591b..daea601e9f96 100644 --- a/wifi/java/android/net/wifi/aware/WifiAwareNetworkSpecifier.java +++ b/wifi/java/android/net/wifi/aware/WifiAwareNetworkSpecifier.java @@ -18,6 +18,7 @@ package android.net.wifi.aware; import static android.net.wifi.aware.WifiAwareManager.WIFI_AWARE_DATA_PATH_ROLE_INITIATOR; +import android.annotation.IntRange; import android.annotation.NonNull; import android.annotation.SystemApi; import android.net.NetworkSpecifier; @@ -302,12 +303,6 @@ public final class WifiAwareNetworkSpecifier extends NetworkSpecifier implements /** * A builder class for a Wi-Fi Aware network specifier to set up an Aware connection with a * peer. - * <p> - * Note that all Wi-Fi Aware connection specifier objects must call the - * {@link Builder#setDiscoverySession(DiscoverySession)} to specify the context - * within which the connection is created, and - * {@link Builder#setPeerHandle(PeerHandle)} to specify the peer to which the - * connection is created. */ public static final class Builder { private DiscoverySession mDiscoverySession; @@ -318,42 +313,27 @@ public final class WifiAwareNetworkSpecifier extends NetworkSpecifier implements private int mTransportProtocol = -1; // invalid value /** - * Configure the {@link PublishDiscoverySession} or {@link SubscribeDiscoverySession} - * discovery session in whose context the connection is created. - * <p> - * Note: this method must be called for any connection request! + * Create a builder for {@link WifiAwareNetworkSpecifier} used in requests to set up a + * Wi-Fi Aware connection with a peer. * - * @param discoverySession A Wi-Fi Aware discovery session. - * @return the current {@link Builder} builder, enabling chaining of builder - * methods. - */ - public @NonNull Builder setDiscoverySession(@NonNull DiscoverySession discoverySession) { - if (discoverySession == null) { - throw new IllegalArgumentException("Non-null discoverySession required"); - } - mDiscoverySession = discoverySession; - return this; - } - - /** - * Configure the {@link PeerHandle} of the peer to which the Wi-Fi Aware connection is - * requested. The peer is discovered through Wi-Fi Aware discovery, - * <p> - * Note: this method must be called for any connection request! - * - * @param peerHandle The peer's handle obtained through + * @param discoverySession A Wi-Fi Aware discovery session in whose context the connection + * is created. + * @param peerHandle The handle of the peer to which the Wi-Fi Aware connection is + * requested. The peer is discovered through Wi-Fi Aware discovery. The + * handle can be obtained through * {@link DiscoverySessionCallback#onServiceDiscovered(PeerHandle, byte[], java.util.List)} * or * {@link DiscoverySessionCallback#onMessageReceived(PeerHandle, byte[])}. - * @return the current {@link Builder} builder, enabling chaining of builder - * methods. */ - public @NonNull Builder setPeerHandle(@NonNull PeerHandle peerHandle) { + public Builder(@NonNull DiscoverySession discoverySession, @NonNull PeerHandle peerHandle) { + if (discoverySession == null) { + throw new IllegalArgumentException("Non-null discoverySession required"); + } if (peerHandle == null) { throw new IllegalArgumentException("Non-null peerHandle required"); } + mDiscoverySession = discoverySession; mPeerHandle = peerHandle; - return this; } /** @@ -407,7 +387,7 @@ public final class WifiAwareNetworkSpecifier extends NetworkSpecifier implements * @return the current {@link Builder} builder, enabling chaining of builder * methods. */ - public @NonNull Builder setPort(int port) { + public @NonNull Builder setPort(@IntRange(from = 0, to = 65535) int port) { if (port <= 0 || port > 65535) { throw new IllegalArgumentException("The port must be a positive value (0, 65535]"); } @@ -432,7 +412,8 @@ public final class WifiAwareNetworkSpecifier extends NetworkSpecifier implements * @return the current {@link Builder} builder, enabling chaining of builder * methods. */ - public @NonNull Builder setTransportProtocol(int transportProtocol) { + public @NonNull + Builder setTransportProtocol(@IntRange(from = 0, to = 255) int transportProtocol) { if (transportProtocol < 0 || transportProtocol > 255) { throw new IllegalArgumentException( "The transport protocol must be in range [0, 255]"); @@ -460,6 +441,9 @@ public final class WifiAwareNetworkSpecifier extends NetworkSpecifier implements if (mDiscoverySession == null) { throw new IllegalStateException("Null discovery session!?"); } + if (mPeerHandle == null) { + throw new IllegalStateException("Null peerHandle!?"); + } if (mPskPassphrase != null & mPmk != null) { throw new IllegalStateException( "Can only specify a Passphrase or a PMK - not both!"); @@ -481,10 +465,6 @@ public final class WifiAwareNetworkSpecifier extends NetworkSpecifier implements } } - if (role == WIFI_AWARE_DATA_PATH_ROLE_INITIATOR && mPeerHandle == null) { - throw new IllegalStateException("Null peerHandle!?"); - } - return new WifiAwareNetworkSpecifier( WifiAwareNetworkSpecifier.NETWORK_SPECIFIER_TYPE_IB, role, mDiscoverySession.mClientId, mDiscoverySession.mSessionId, mPeerHandle.peerId, diff --git a/wifi/tests/src/android/net/wifi/aware/WifiAwareManagerTest.java b/wifi/tests/src/android/net/wifi/aware/WifiAwareManagerTest.java index 657a3383612d..905540e081ed 100644 --- a/wifi/tests/src/android/net/wifi/aware/WifiAwareManagerTest.java +++ b/wifi/tests/src/android/net/wifi/aware/WifiAwareManagerTest.java @@ -958,8 +958,8 @@ public class WifiAwareManagerTest { WifiAwareNetworkSpecifier ns = (WifiAwareNetworkSpecifier) publishSession.getValue().createNetworkSpecifierOpen( peerHandle); - WifiAwareNetworkSpecifier nsb = new WifiAwareNetworkSpecifier.Builder().setDiscoverySession( - publishSession.getValue()).setPeerHandle(peerHandle).build(); + WifiAwareNetworkSpecifier nsb = new WifiAwareNetworkSpecifier.Builder( + publishSession.getValue(), peerHandle).build(); // validate format collector.checkThat("role", WifiAwareManager.WIFI_AWARE_DATA_PATH_ROLE_RESPONDER, @@ -979,9 +979,8 @@ public class WifiAwareManagerTest { // (4) request an encrypted (PMK) network specifier from the session ns = (WifiAwareNetworkSpecifier) publishSession.getValue().createNetworkSpecifierPmk( peerHandle, pmk); - nsb = new WifiAwareNetworkSpecifier.Builder().setDiscoverySession( - publishSession.getValue()).setPeerHandle(peerHandle).setPmk(pmk).setPort( - port).setTransportProtocol(transportProtocol).build(); + nsb = new WifiAwareNetworkSpecifier.Builder(publishSession.getValue(), peerHandle).setPmk( + pmk).setPort(port).setTransportProtocol(transportProtocol).build(); // validate format collector.checkThat("role", WifiAwareManager.WIFI_AWARE_DATA_PATH_ROLE_RESPONDER, @@ -1005,9 +1004,9 @@ public class WifiAwareManagerTest { (WifiAwareNetworkSpecifier) publishSession.getValue() .createNetworkSpecifierPassphrase( peerHandle, passphrase); - nsb = new WifiAwareNetworkSpecifier.Builder().setDiscoverySession( - publishSession.getValue()).setPeerHandle(peerHandle).setPskPassphrase( - passphrase).setPort(port).setTransportProtocol(transportProtocol).build(); + nsb = new WifiAwareNetworkSpecifier.Builder(publishSession.getValue(), + peerHandle).setPskPassphrase(passphrase).setPort(port).setTransportProtocol( + transportProtocol).build(); // validate format collector.checkThat("role", WifiAwareManager.WIFI_AWARE_DATA_PATH_ROLE_RESPONDER, @@ -1255,16 +1254,15 @@ public class WifiAwareManagerTest { // (3) create network specifier if (doPmk) { if (useBuilder) { - new WifiAwareNetworkSpecifier.Builder().setDiscoverySession( - publishSession.getValue()).setPeerHandle(peerHandle).setPmk(pmk).build(); + new WifiAwareNetworkSpecifier.Builder(publishSession.getValue(), peerHandle).setPmk( + pmk).build(); } else { publishSession.getValue().createNetworkSpecifierPmk(peerHandle, pmk); } } else { if (useBuilder) { - new WifiAwareNetworkSpecifier.Builder().setDiscoverySession( - publishSession.getValue()).setPeerHandle(peerHandle).setPskPassphrase( - passphrase).build(); + new WifiAwareNetworkSpecifier.Builder(publishSession.getValue(), + peerHandle).setPskPassphrase(passphrase).build(); } else { publishSession.getValue().createNetworkSpecifierPassphrase(peerHandle, passphrase); } @@ -1353,8 +1351,8 @@ public class WifiAwareManagerTest { DiscoverySession publishSession = executeSessionStartup(true); - WifiAwareNetworkSpecifier nsb = new WifiAwareNetworkSpecifier.Builder().setDiscoverySession( - publishSession).setPeerHandle(peerHandle).setPmk(pmk).setPort(port).build(); + WifiAwareNetworkSpecifier nsb = new WifiAwareNetworkSpecifier.Builder(publishSession, + peerHandle).setPmk(pmk).setPort(port).build(); } /** @@ -1368,8 +1366,8 @@ public class WifiAwareManagerTest { DiscoverySession publishSession = executeSessionStartup(true); - WifiAwareNetworkSpecifier nsb = new WifiAwareNetworkSpecifier.Builder().setDiscoverySession( - publishSession).setPeerHandle(peerHandle).setPort(port).build(); + WifiAwareNetworkSpecifier nsb = new WifiAwareNetworkSpecifier.Builder(publishSession, + peerHandle).setPort(port).build(); } /** @@ -1383,8 +1381,8 @@ public class WifiAwareManagerTest { DiscoverySession subscribeSession = executeSessionStartup(false); - WifiAwareNetworkSpecifier nsb = new WifiAwareNetworkSpecifier.Builder().setDiscoverySession( - subscribeSession).setPeerHandle(peerHandle).setPort(port).build(); + WifiAwareNetworkSpecifier nsb = new WifiAwareNetworkSpecifier.Builder(subscribeSession, + peerHandle).setPort(port).build(); } /** @@ -1403,27 +1401,23 @@ public class WifiAwareManagerTest { DiscoverySession publishSession = executeSessionStartup(true); try { - WifiAwareNetworkSpecifier nsb = new WifiAwareNetworkSpecifier.Builder() - .setDiscoverySession(publishSession).setPeerHandle(peerHandle) - .setPmk(pmk).setTransportProtocol(tpNegative).build(); + WifiAwareNetworkSpecifier nsb = new WifiAwareNetworkSpecifier.Builder(publishSession, + peerHandle).setPmk(pmk).setTransportProtocol(tpNegative).build(); assertTrue("No exception on negative transport protocol!", false); } catch (IllegalArgumentException e) { // nop - exception is correct! } try { - WifiAwareNetworkSpecifier nsb = new WifiAwareNetworkSpecifier.Builder() - .setDiscoverySession(publishSession).setPeerHandle(peerHandle) - .setPmk(pmk).setTransportProtocol(tpTooLarge).build(); + WifiAwareNetworkSpecifier nsb = new WifiAwareNetworkSpecifier.Builder(publishSession, + peerHandle).setPmk(pmk).setTransportProtocol(tpTooLarge).build(); assertTrue("No exception on >255 transport protocol!", false); } catch (IllegalArgumentException e) { // nop - exception is correct! } - WifiAwareNetworkSpecifier nsb = new WifiAwareNetworkSpecifier.Builder() - .setDiscoverySession(publishSession).setPeerHandle(peerHandle) - .setPmk(pmk).setTransportProtocol(tpSmallest).build(); - nsb = new WifiAwareNetworkSpecifier.Builder().setDiscoverySession( - publishSession).setPeerHandle(peerHandle).setPmk(pmk).setTransportProtocol( - tpLargest).build(); + WifiAwareNetworkSpecifier nsb = new WifiAwareNetworkSpecifier.Builder(publishSession, + peerHandle).setPmk(pmk).setTransportProtocol(tpSmallest).build(); + nsb = new WifiAwareNetworkSpecifier.Builder(publishSession, peerHandle).setPmk( + pmk).setTransportProtocol(tpLargest).build(); } /** @@ -1437,9 +1431,8 @@ public class WifiAwareManagerTest { DiscoverySession publishSession = executeSessionStartup(true); - WifiAwareNetworkSpecifier nsb = new WifiAwareNetworkSpecifier.Builder() - .setDiscoverySession(publishSession).setPeerHandle(peerHandle) - .setTransportProtocol(transportProtocol).build(); + WifiAwareNetworkSpecifier nsb = new WifiAwareNetworkSpecifier.Builder(publishSession, + peerHandle).setTransportProtocol(transportProtocol).build(); } /** @@ -1453,9 +1446,8 @@ public class WifiAwareManagerTest { DiscoverySession subscribeSession = executeSessionStartup(false); - WifiAwareNetworkSpecifier nsb = new WifiAwareNetworkSpecifier.Builder() - .setDiscoverySession(subscribeSession).setPeerHandle(peerHandle) - .setTransportProtocol(transportProtocol).build(); + WifiAwareNetworkSpecifier nsb = new WifiAwareNetworkSpecifier.Builder(subscribeSession, + peerHandle).setTransportProtocol(transportProtocol).build(); } /* |