API Review: TetherNetwork, DeviceInfo

Renamed TetherNetwork to HotspotNetwork and replaced all usage
of Tether with Hotspot.
Renamed DeviceInfo to NetworkProviderInfo.
Added DEVICE_TYPE_WATCH and DEVICE_TYPE_AUTO for futureproofing
in NetworkProviderInfo.java

Bug: 268486125
Test: atest (all affected test classes)

Change-Id: I889457f02322644f3779bf25c3a125f7f973c69c
This commit is contained in:
Isaac Katzenelson
2023-02-28 08:15:10 +00:00
committed by Andrew Sapperstein
parent 44d3fa63ff
commit a6c820b5dd
20 changed files with 545 additions and 494 deletions

View File

@@ -10001,34 +10001,65 @@ package android.net.wifi.nl80211 {
package android.net.wifi.sharedconnectivity.app {
public final class DeviceInfo implements android.os.Parcelable {
public final class HotspotNetwork implements android.os.Parcelable {
method public int describeContents();
method @IntRange(from=0, to=100) public int getBatteryPercentage();
method @IntRange(from=0, to=3) public int getConnectionStrength();
method @NonNull public String getDeviceName();
method public int getDeviceType();
method @NonNull public String getModelName();
method public long getDeviceId();
method public int getHostNetworkType();
method @Nullable public String getHotspotBssid();
method @NonNull public java.util.Set<java.lang.Integer> getHotspotSecurityTypes();
method @Nullable public String getHotspotSsid();
method @NonNull public String getNetworkName();
method @NonNull public android.net.wifi.sharedconnectivity.app.NetworkProviderInfo getNetworkProviderInfo();
method public void writeToParcel(@NonNull android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.net.wifi.sharedconnectivity.app.DeviceInfo> CREATOR;
field public static final int DEVICE_TYPE_LAPTOP = 3; // 0x3
field public static final int DEVICE_TYPE_PHONE = 1; // 0x1
field public static final int DEVICE_TYPE_TABLET = 2; // 0x2
field public static final int DEVICE_TYPE_UNKNOWN = 0; // 0x0
field @NonNull public static final android.os.Parcelable.Creator<android.net.wifi.sharedconnectivity.app.HotspotNetwork> CREATOR;
field public static final int NETWORK_TYPE_CELLULAR = 1; // 0x1
field public static final int NETWORK_TYPE_ETHERNET = 3; // 0x3
field public static final int NETWORK_TYPE_UNKNOWN = 0; // 0x0
field public static final int NETWORK_TYPE_WIFI = 2; // 0x2
}
public static final class DeviceInfo.Builder {
ctor public DeviceInfo.Builder();
method @NonNull public android.net.wifi.sharedconnectivity.app.DeviceInfo build();
method @NonNull public android.net.wifi.sharedconnectivity.app.DeviceInfo.Builder setBatteryPercentage(@IntRange(from=0, to=100) int);
method @NonNull public android.net.wifi.sharedconnectivity.app.DeviceInfo.Builder setConnectionStrength(@IntRange(from=0, to=3) int);
method @NonNull public android.net.wifi.sharedconnectivity.app.DeviceInfo.Builder setDeviceName(@NonNull String);
method @NonNull public android.net.wifi.sharedconnectivity.app.DeviceInfo.Builder setDeviceType(int);
method @NonNull public android.net.wifi.sharedconnectivity.app.DeviceInfo.Builder setModelName(@NonNull String);
public static final class HotspotNetwork.Builder {
ctor public HotspotNetwork.Builder();
method @NonNull public android.net.wifi.sharedconnectivity.app.HotspotNetwork.Builder addHotspotSecurityType(int);
method @NonNull public android.net.wifi.sharedconnectivity.app.HotspotNetwork build();
method @NonNull public android.net.wifi.sharedconnectivity.app.HotspotNetwork.Builder setDeviceId(long);
method @NonNull public android.net.wifi.sharedconnectivity.app.HotspotNetwork.Builder setHostNetworkType(int);
method @NonNull public android.net.wifi.sharedconnectivity.app.HotspotNetwork.Builder setHotspotBssid(@NonNull String);
method @NonNull public android.net.wifi.sharedconnectivity.app.HotspotNetwork.Builder setHotspotSsid(@NonNull String);
method @NonNull public android.net.wifi.sharedconnectivity.app.HotspotNetwork.Builder setNetworkName(@NonNull String);
method @NonNull public android.net.wifi.sharedconnectivity.app.HotspotNetwork.Builder setNetworkProviderInfo(@NonNull android.net.wifi.sharedconnectivity.app.NetworkProviderInfo);
}
public final class HotspotNetworkConnectionStatus implements android.os.Parcelable {
method public int describeContents();
method @NonNull public android.os.Bundle getExtras();
method @NonNull public android.net.wifi.sharedconnectivity.app.HotspotNetwork getHotspotNetwork();
method public int getStatus();
method public void writeToParcel(@NonNull android.os.Parcel, int);
field public static final int CONNECTION_STATUS_CONNECT_TO_HOTSPOT_FAILED = 9; // 0x9
field public static final int CONNECTION_STATUS_ENABLING_HOTSPOT = 1; // 0x1
field public static final int CONNECTION_STATUS_ENABLING_HOTSPOT_FAILED = 7; // 0x7
field public static final int CONNECTION_STATUS_ENABLING_HOTSPOT_TIMEOUT = 8; // 0x8
field public static final int CONNECTION_STATUS_NO_CELL_DATA = 6; // 0x6
field public static final int CONNECTION_STATUS_PROVISIONING_FAILED = 3; // 0x3
field public static final int CONNECTION_STATUS_TETHERING_TIMEOUT = 4; // 0x4
field public static final int CONNECTION_STATUS_TETHERING_UNSUPPORTED = 5; // 0x5
field public static final int CONNECTION_STATUS_UNKNOWN = 0; // 0x0
field public static final int CONNECTION_STATUS_UNKNOWN_ERROR = 2; // 0x2
field @NonNull public static final android.os.Parcelable.Creator<android.net.wifi.sharedconnectivity.app.HotspotNetworkConnectionStatus> CREATOR;
}
public static final class HotspotNetworkConnectionStatus.Builder {
ctor public HotspotNetworkConnectionStatus.Builder();
method @NonNull public android.net.wifi.sharedconnectivity.app.HotspotNetworkConnectionStatus build();
method @NonNull public android.net.wifi.sharedconnectivity.app.HotspotNetworkConnectionStatus.Builder setExtras(@NonNull android.os.Bundle);
method @NonNull public android.net.wifi.sharedconnectivity.app.HotspotNetworkConnectionStatus.Builder setHotspotNetwork(@NonNull android.net.wifi.sharedconnectivity.app.HotspotNetwork);
method @NonNull public android.net.wifi.sharedconnectivity.app.HotspotNetworkConnectionStatus.Builder setStatus(int);
}
public final class KnownNetwork implements android.os.Parcelable {
method public int describeContents();
method @Nullable public android.net.wifi.sharedconnectivity.app.DeviceInfo getDeviceInfo();
method @Nullable public android.net.wifi.sharedconnectivity.app.NetworkProviderInfo getNetworkProviderInfo();
method public int getNetworkSource();
method @NonNull public java.util.Set<java.lang.Integer> getSecurityTypes();
method @NonNull public String getSsid();
@@ -10043,7 +10074,7 @@ package android.net.wifi.sharedconnectivity.app {
ctor public KnownNetwork.Builder();
method @NonNull public android.net.wifi.sharedconnectivity.app.KnownNetwork.Builder addSecurityType(int);
method @NonNull public android.net.wifi.sharedconnectivity.app.KnownNetwork build();
method @NonNull public android.net.wifi.sharedconnectivity.app.KnownNetwork.Builder setDeviceInfo(@Nullable android.net.wifi.sharedconnectivity.app.DeviceInfo);
method @NonNull public android.net.wifi.sharedconnectivity.app.KnownNetwork.Builder setNetworkProviderInfo(@Nullable android.net.wifi.sharedconnectivity.app.NetworkProviderInfo);
method @NonNull public android.net.wifi.sharedconnectivity.app.KnownNetwork.Builder setNetworkSource(int);
method @NonNull public android.net.wifi.sharedconnectivity.app.KnownNetwork.Builder setSsid(@NonNull String);
}
@@ -10068,27 +10099,54 @@ package android.net.wifi.sharedconnectivity.app {
method @NonNull public android.net.wifi.sharedconnectivity.app.KnownNetworkConnectionStatus.Builder setStatus(int);
}
public final class NetworkProviderInfo implements android.os.Parcelable {
method public int describeContents();
method @IntRange(from=0, to=100) public int getBatteryPercentage();
method @IntRange(from=0, to=3) public int getConnectionStrength();
method @NonNull public String getDeviceName();
method public int getDeviceType();
method @NonNull public String getModelName();
method public void writeToParcel(@NonNull android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.net.wifi.sharedconnectivity.app.NetworkProviderInfo> CREATOR;
field public static final int DEVICE_TYPE_AUTO = 5; // 0x5
field public static final int DEVICE_TYPE_LAPTOP = 3; // 0x3
field public static final int DEVICE_TYPE_PHONE = 1; // 0x1
field public static final int DEVICE_TYPE_TABLET = 2; // 0x2
field public static final int DEVICE_TYPE_UNKNOWN = 0; // 0x0
field public static final int DEVICE_TYPE_WATCH = 4; // 0x4
}
public static final class NetworkProviderInfo.Builder {
ctor public NetworkProviderInfo.Builder();
method @NonNull public android.net.wifi.sharedconnectivity.app.NetworkProviderInfo build();
method @NonNull public android.net.wifi.sharedconnectivity.app.NetworkProviderInfo.Builder setBatteryPercentage(@IntRange(from=0, to=100) int);
method @NonNull public android.net.wifi.sharedconnectivity.app.NetworkProviderInfo.Builder setConnectionStrength(@IntRange(from=0, to=3) int);
method @NonNull public android.net.wifi.sharedconnectivity.app.NetworkProviderInfo.Builder setDeviceName(@NonNull String);
method @NonNull public android.net.wifi.sharedconnectivity.app.NetworkProviderInfo.Builder setDeviceType(int);
method @NonNull public android.net.wifi.sharedconnectivity.app.NetworkProviderInfo.Builder setModelName(@NonNull String);
}
public interface SharedConnectivityClientCallback {
method public void onHotspotNetworkConnectionStatusChanged(@NonNull android.net.wifi.sharedconnectivity.app.HotspotNetworkConnectionStatus);
method public void onHotspotNetworksUpdated(@NonNull java.util.List<android.net.wifi.sharedconnectivity.app.HotspotNetwork>);
method public void onKnownNetworkConnectionStatusChanged(@NonNull android.net.wifi.sharedconnectivity.app.KnownNetworkConnectionStatus);
method public void onKnownNetworksUpdated(@NonNull java.util.List<android.net.wifi.sharedconnectivity.app.KnownNetwork>);
method public void onRegisterCallbackFailed(@NonNull Exception);
method public void onServiceConnected();
method public void onServiceDisconnected();
method public void onSharedConnectivitySettingsChanged(@NonNull android.net.wifi.sharedconnectivity.app.SharedConnectivitySettingsState);
method public void onTetherNetworkConnectionStatusChanged(@NonNull android.net.wifi.sharedconnectivity.app.TetherNetworkConnectionStatus);
method public void onTetherNetworksUpdated(@NonNull java.util.List<android.net.wifi.sharedconnectivity.app.TetherNetwork>);
}
public class SharedConnectivityManager {
method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD}) public boolean connectHotspotNetwork(@NonNull android.net.wifi.sharedconnectivity.app.HotspotNetwork);
method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD}) public boolean connectKnownNetwork(@NonNull android.net.wifi.sharedconnectivity.app.KnownNetwork);
method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD}) public boolean connectTetherNetwork(@NonNull android.net.wifi.sharedconnectivity.app.TetherNetwork);
method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD}) public boolean disconnectTetherNetwork(@NonNull android.net.wifi.sharedconnectivity.app.TetherNetwork);
method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD}) public boolean disconnectHotspotNetwork(@NonNull android.net.wifi.sharedconnectivity.app.HotspotNetwork);
method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD}) public boolean forgetKnownNetwork(@NonNull android.net.wifi.sharedconnectivity.app.KnownNetwork);
method @Nullable @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD}) public android.net.wifi.sharedconnectivity.app.HotspotNetworkConnectionStatus getHotspotNetworkConnectionStatus();
method @NonNull @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD}) public java.util.List<android.net.wifi.sharedconnectivity.app.HotspotNetwork> getHotspotNetworks();
method @Nullable @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD}) public android.net.wifi.sharedconnectivity.app.KnownNetworkConnectionStatus getKnownNetworkConnectionStatus();
method @NonNull @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD}) public java.util.List<android.net.wifi.sharedconnectivity.app.KnownNetwork> getKnownNetworks();
method @Nullable @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD}) public android.net.wifi.sharedconnectivity.app.SharedConnectivitySettingsState getSettingsState();
method @Nullable @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD}) public android.net.wifi.sharedconnectivity.app.TetherNetworkConnectionStatus getTetherNetworkConnectionStatus();
method @NonNull @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD}) public java.util.List<android.net.wifi.sharedconnectivity.app.TetherNetwork> getTetherNetworks();
method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD}) public void registerCallback(@NonNull java.util.concurrent.Executor, @NonNull android.net.wifi.sharedconnectivity.app.SharedConnectivityClientCallback);
method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD}) public boolean unregisterCallback(@NonNull android.net.wifi.sharedconnectivity.app.SharedConnectivityClientCallback);
}
@@ -10108,62 +10166,6 @@ package android.net.wifi.sharedconnectivity.app {
method @NonNull public android.net.wifi.sharedconnectivity.app.SharedConnectivitySettingsState.Builder setInstantTetherEnabled(boolean);
}
public final class TetherNetwork implements android.os.Parcelable {
method public int describeContents();
method public long getDeviceId();
method @NonNull public android.net.wifi.sharedconnectivity.app.DeviceInfo getDeviceInfo();
method @Nullable public String getHotspotBssid();
method @NonNull public java.util.Set<java.lang.Integer> getHotspotSecurityTypes();
method @Nullable public String getHotspotSsid();
method @NonNull public String getNetworkName();
method public int getNetworkType();
method public void writeToParcel(@NonNull android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.net.wifi.sharedconnectivity.app.TetherNetwork> CREATOR;
field public static final int NETWORK_TYPE_CELLULAR = 1; // 0x1
field public static final int NETWORK_TYPE_ETHERNET = 3; // 0x3
field public static final int NETWORK_TYPE_UNKNOWN = 0; // 0x0
field public static final int NETWORK_TYPE_WIFI = 2; // 0x2
}
public static final class TetherNetwork.Builder {
ctor public TetherNetwork.Builder();
method @NonNull public android.net.wifi.sharedconnectivity.app.TetherNetwork.Builder addHotspotSecurityType(int);
method @NonNull public android.net.wifi.sharedconnectivity.app.TetherNetwork build();
method @NonNull public android.net.wifi.sharedconnectivity.app.TetherNetwork.Builder setDeviceId(long);
method @NonNull public android.net.wifi.sharedconnectivity.app.TetherNetwork.Builder setDeviceInfo(@NonNull android.net.wifi.sharedconnectivity.app.DeviceInfo);
method @NonNull public android.net.wifi.sharedconnectivity.app.TetherNetwork.Builder setHotspotBssid(@NonNull String);
method @NonNull public android.net.wifi.sharedconnectivity.app.TetherNetwork.Builder setHotspotSsid(@NonNull String);
method @NonNull public android.net.wifi.sharedconnectivity.app.TetherNetwork.Builder setNetworkName(@NonNull String);
method @NonNull public android.net.wifi.sharedconnectivity.app.TetherNetwork.Builder setNetworkType(int);
}
public final class TetherNetworkConnectionStatus implements android.os.Parcelable {
method public int describeContents();
method @NonNull public android.os.Bundle getExtras();
method public int getStatus();
method @NonNull public android.net.wifi.sharedconnectivity.app.TetherNetwork getTetherNetwork();
method public void writeToParcel(@NonNull android.os.Parcel, int);
field public static final int CONNECTION_STATUS_CONNECT_TO_HOTSPOT_FAILED = 9; // 0x9
field public static final int CONNECTION_STATUS_ENABLING_HOTSPOT = 1; // 0x1
field public static final int CONNECTION_STATUS_ENABLING_HOTSPOT_FAILED = 7; // 0x7
field public static final int CONNECTION_STATUS_ENABLING_HOTSPOT_TIMEOUT = 8; // 0x8
field public static final int CONNECTION_STATUS_NO_CELL_DATA = 6; // 0x6
field public static final int CONNECTION_STATUS_PROVISIONING_FAILED = 3; // 0x3
field public static final int CONNECTION_STATUS_TETHERING_TIMEOUT = 4; // 0x4
field public static final int CONNECTION_STATUS_TETHERING_UNSUPPORTED = 5; // 0x5
field public static final int CONNECTION_STATUS_UNKNOWN = 0; // 0x0
field public static final int CONNECTION_STATUS_UNKNOWN_ERROR = 2; // 0x2
field @NonNull public static final android.os.Parcelable.Creator<android.net.wifi.sharedconnectivity.app.TetherNetworkConnectionStatus> CREATOR;
}
public static final class TetherNetworkConnectionStatus.Builder {
ctor public TetherNetworkConnectionStatus.Builder();
method @NonNull public android.net.wifi.sharedconnectivity.app.TetherNetworkConnectionStatus build();
method @NonNull public android.net.wifi.sharedconnectivity.app.TetherNetworkConnectionStatus.Builder setExtras(@NonNull android.os.Bundle);
method @NonNull public android.net.wifi.sharedconnectivity.app.TetherNetworkConnectionStatus.Builder setStatus(int);
method @NonNull public android.net.wifi.sharedconnectivity.app.TetherNetworkConnectionStatus.Builder setTetherNetwork(@NonNull android.net.wifi.sharedconnectivity.app.TetherNetwork);
}
}
package android.net.wifi.sharedconnectivity.service {
@@ -10171,15 +10173,15 @@ package android.net.wifi.sharedconnectivity.service {
public abstract class SharedConnectivityService extends android.app.Service {
ctor public SharedConnectivityService();
method @Nullable public final android.os.IBinder onBind(@NonNull android.content.Intent);
method public abstract void onConnectHotspotNetwork(@NonNull android.net.wifi.sharedconnectivity.app.HotspotNetwork);
method public abstract void onConnectKnownNetwork(@NonNull android.net.wifi.sharedconnectivity.app.KnownNetwork);
method public abstract void onConnectTetherNetwork(@NonNull android.net.wifi.sharedconnectivity.app.TetherNetwork);
method public abstract void onDisconnectTetherNetwork(@NonNull android.net.wifi.sharedconnectivity.app.TetherNetwork);
method public abstract void onDisconnectHotspotNetwork(@NonNull android.net.wifi.sharedconnectivity.app.HotspotNetwork);
method public abstract void onForgetKnownNetwork(@NonNull android.net.wifi.sharedconnectivity.app.KnownNetwork);
method public final void setHotspotNetworks(@NonNull java.util.List<android.net.wifi.sharedconnectivity.app.HotspotNetwork>);
method public final void setKnownNetworks(@NonNull java.util.List<android.net.wifi.sharedconnectivity.app.KnownNetwork>);
method public final void setSettingsState(@NonNull android.net.wifi.sharedconnectivity.app.SharedConnectivitySettingsState);
method public final void setTetherNetworks(@NonNull java.util.List<android.net.wifi.sharedconnectivity.app.TetherNetwork>);
method public final void updateHotspotNetworkConnectionStatus(@NonNull android.net.wifi.sharedconnectivity.app.HotspotNetworkConnectionStatus);
method public final void updateKnownNetworkConnectionStatus(@NonNull android.net.wifi.sharedconnectivity.app.KnownNetworkConnectionStatus);
method public final void updateTetherNetworkConnectionStatus(@NonNull android.net.wifi.sharedconnectivity.app.TetherNetworkConnectionStatus);
}
}

View File

@@ -16,4 +16,4 @@
package android.net.wifi.sharedconnectivity.app;
parcelable DeviceInfo;
parcelable HotspotNetwork;

View File

@@ -33,14 +33,14 @@ import java.util.Objects;
import java.util.Set;
/**
* A data class representing an Instant Tether network.
* A data class representing a hotspot network.
* This class is used in IPC calls between the implementer of {@link SharedConnectivityService} and
* the consumers of {@link com.android.wifitrackerlib}.
*
* @hide
*/
@SystemApi
public final class TetherNetwork implements Parcelable {
public final class HotspotNetwork implements Parcelable {
/**
* Remote device is connected to the internet via an unknown connection.
*/
@@ -71,33 +71,44 @@ public final class TetherNetwork implements Parcelable {
NETWORK_TYPE_WIFI,
NETWORK_TYPE_ETHERNET
})
public @interface NetworkType {}
public @interface NetworkType {
}
private final long mDeviceId;
private final DeviceInfo mDeviceInfo;
@NetworkType private final int mNetworkType;
private final NetworkProviderInfo mNetworkProviderInfo;
@NetworkType
private final int mNetworkType;
private final String mNetworkName;
@Nullable private final String mHotspotSsid;
@Nullable private final String mHotspotBssid;
@Nullable @SecurityType private final ArraySet<Integer> mHotspotSecurityTypes;
@Nullable
private final String mHotspotSsid;
@Nullable
private final String mHotspotBssid;
@Nullable
@SecurityType
private final ArraySet<Integer> mHotspotSecurityTypes;
/**
* Builder class for {@link TetherNetwork}.
* Builder class for {@link HotspotNetwork}.
*/
public static final class Builder {
private long mDeviceId = -1;
private DeviceInfo mDeviceInfo;
@NetworkType private int mNetworkType;
private NetworkProviderInfo mNetworkProviderInfo;
@NetworkType
private int mNetworkType;
private String mNetworkName;
@Nullable private String mHotspotSsid;
@Nullable private String mHotspotBssid;
@Nullable @SecurityType private final ArraySet<Integer> mHotspotSecurityTypes =
@Nullable
private String mHotspotSsid;
@Nullable
private String mHotspotBssid;
@Nullable
@SecurityType
private final ArraySet<Integer> mHotspotSecurityTypes =
new ArraySet<>();
/**
* Set the remote device ID.
*
* @param deviceId Locally unique ID for this Instant Tether network.
* @param deviceId Locally unique ID for this Hotspot network.
* @return Returns the Builder object.
*/
@NonNull
@@ -109,12 +120,12 @@ public final class TetherNetwork implements Parcelable {
/**
* Sets information about the device providing connectivity.
*
* @param deviceInfo The device information object.
* @param networkProviderInfo The device information object.
* @return Returns the Builder object.
*/
@NonNull
public Builder setDeviceInfo(@NonNull DeviceInfo deviceInfo) {
mDeviceInfo = deviceInfo;
public Builder setNetworkProviderInfo(@NonNull NetworkProviderInfo networkProviderInfo) {
mNetworkProviderInfo = networkProviderInfo;
return this;
}
@@ -125,7 +136,7 @@ public final class TetherNetwork implements Parcelable {
* @return Returns the Builder object.
*/
@NonNull
public Builder setNetworkType(@NetworkType int networkType) {
public Builder setHostNetworkType(@NetworkType int networkType) {
mNetworkType = networkType;
return this;
}
@@ -179,15 +190,15 @@ public final class TetherNetwork implements Parcelable {
}
/**
* Builds the {@link TetherNetwork} object.
* Builds the {@link HotspotNetwork} object.
*
* @return Returns the built {@link TetherNetwork} object.
* @return Returns the built {@link HotspotNetwork} object.
*/
@NonNull
public TetherNetwork build() {
return new TetherNetwork(
public HotspotNetwork build() {
return new HotspotNetwork(
mDeviceId,
mDeviceInfo,
mNetworkProviderInfo,
mNetworkType,
mNetworkName,
mHotspotSsid,
@@ -209,9 +220,9 @@ public final class TetherNetwork implements Parcelable {
}
}
private TetherNetwork(
private HotspotNetwork(
long deviceId,
DeviceInfo deviceInfo,
NetworkProviderInfo networkProviderInfo,
@NetworkType int networkType,
@NonNull String networkName,
@Nullable String hotspotSsid,
@@ -221,7 +232,7 @@ public final class TetherNetwork implements Parcelable {
networkType,
networkName);
mDeviceId = deviceId;
mDeviceInfo = deviceInfo;
mNetworkProviderInfo = networkProviderInfo;
mNetworkType = networkType;
mNetworkName = networkName;
mHotspotSsid = hotspotSsid;
@@ -232,7 +243,7 @@ public final class TetherNetwork implements Parcelable {
/**
* Gets the remote device ID.
*
* @return Returns the locally unique ID for this Instant Tether network.
* @return Returns the locally unique ID for this Hotspot network.
*/
public long getDeviceId() {
return mDeviceId;
@@ -241,11 +252,11 @@ public final class TetherNetwork implements Parcelable {
/**
* Gets information about the device providing connectivity.
*
* @return Returns the information of the device providing the Instant Tether network.
* @return Returns the information of the device providing the Hotspot network.
*/
@NonNull
public DeviceInfo getDeviceInfo() {
return mDeviceInfo;
public NetworkProviderInfo getNetworkProviderInfo() {
return mNetworkProviderInfo;
}
/**
@@ -254,7 +265,7 @@ public final class TetherNetwork implements Parcelable {
* @return Returns the network type as represented by IntDef {@link NetworkType}.
*/
@NetworkType
public int getNetworkType() {
public int getHostNetworkType() {
return mNetworkType;
}
@@ -301,11 +312,11 @@ public final class TetherNetwork implements Parcelable {
@Override
public boolean equals(Object obj) {
if (!(obj instanceof TetherNetwork)) return false;
TetherNetwork other = (TetherNetwork) obj;
if (!(obj instanceof HotspotNetwork)) return false;
HotspotNetwork other = (HotspotNetwork) obj;
return mDeviceId == other.getDeviceId()
&& Objects.equals(mDeviceInfo, other.getDeviceInfo())
&& mNetworkType == other.getNetworkType()
&& Objects.equals(mNetworkProviderInfo, other.getNetworkProviderInfo())
&& mNetworkType == other.getHostNetworkType()
&& Objects.equals(mNetworkName, other.getNetworkName())
&& Objects.equals(mHotspotSsid, other.getHotspotSsid())
&& Objects.equals(mHotspotBssid, other.getHotspotBssid())
@@ -314,8 +325,8 @@ public final class TetherNetwork implements Parcelable {
@Override
public int hashCode() {
return Objects.hash(mDeviceId, mDeviceInfo, mNetworkName, mHotspotSsid, mHotspotBssid,
mHotspotSecurityTypes);
return Objects.hash(mDeviceId, mNetworkProviderInfo, mNetworkName, mHotspotSsid,
mHotspotBssid, mHotspotSecurityTypes);
}
@Override
@@ -326,7 +337,7 @@ public final class TetherNetwork implements Parcelable {
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
dest.writeLong(mDeviceId);
mDeviceInfo.writeToParcel(dest, flags);
mNetworkProviderInfo.writeToParcel(dest, flags);
dest.writeInt(mNetworkType);
dest.writeString(mNetworkName);
dest.writeString(mHotspotSsid);
@@ -335,36 +346,36 @@ public final class TetherNetwork implements Parcelable {
}
/**
* Creates a {@link TetherNetwork} object from a parcel.
* Creates a {@link HotspotNetwork} object from a parcel.
*
* @hide
*/
@NonNull
public static TetherNetwork readFromParcel(@NonNull Parcel in) {
return new TetherNetwork(in.readLong(), DeviceInfo.readFromParcel(in),
public static HotspotNetwork readFromParcel(@NonNull Parcel in) {
return new HotspotNetwork(in.readLong(), NetworkProviderInfo.readFromParcel(in),
in.readInt(), in.readString(), in.readString(), in.readString(),
(ArraySet<Integer>) in.readArraySet(null));
}
@NonNull
public static final Creator<TetherNetwork> CREATOR = new Creator<>() {
public static final Creator<HotspotNetwork> CREATOR = new Creator<>() {
@Override
public TetherNetwork createFromParcel(Parcel in) {
public HotspotNetwork createFromParcel(Parcel in) {
return readFromParcel(in);
}
@Override
public TetherNetwork[] newArray(int size) {
return new TetherNetwork[size];
public HotspotNetwork[] newArray(int size) {
return new HotspotNetwork[size];
}
};
@Override
public String toString() {
return new StringBuilder("TetherNetwork[")
return new StringBuilder("HotspotNetwork[")
.append("deviceId=").append(mDeviceId)
.append(", networkType=").append(mNetworkType)
.append(", deviceInfo=").append(mDeviceInfo.toString())
.append(", networkProviderInfo=").append(mNetworkProviderInfo.toString())
.append(", networkName=").append(mNetworkName)
.append(", hotspotSsid=").append(mHotspotSsid)
.append(", hotspotBssid=").append(mHotspotBssid)

View File

@@ -16,4 +16,4 @@
package android.net.wifi.sharedconnectivity.app;
parcelable TetherNetworkConnectionStatus;
parcelable HotspotNetworkConnectionStatus;

View File

@@ -28,23 +28,23 @@ import java.lang.annotation.RetentionPolicy;
import java.util.Objects;
/**
* The status of a connection to an instant tether network after the client called
* {@link SharedConnectivityManager#connectTetherNetwork}.
* The status of a connection to a hotspot network after the client called
* {@link SharedConnectivityManager#connectHotspotNetwork}.
*
* @hide
*/
@SystemApi
public final class TetherNetworkConnectionStatus implements Parcelable {
public final class HotspotNetworkConnectionStatus implements Parcelable {
/**
* Connection status is unknown.
*/
public static final int CONNECTION_STATUS_UNKNOWN = 0;
public static final int CONNECTION_STATUS_UNKNOWN = 0;
/**
* The connection is being initiated.
*/
public static final int CONNECTION_STATUS_ENABLING_HOTSPOT = 1;
public static final int CONNECTION_STATUS_ENABLING_HOTSPOT = 1;
/**
* Device providing the hotspot failed to initiate it.
@@ -102,22 +102,23 @@ public final class TetherNetworkConnectionStatus implements Parcelable {
CONNECTION_STATUS_ENABLING_HOTSPOT_TIMEOUT,
CONNECTION_STATUS_CONNECT_TO_HOTSPOT_FAILED,
})
public @interface ConnectionStatus {}
public @interface ConnectionStatus {
}
@ConnectionStatus private final int mStatus;
private final TetherNetwork mTetherNetwork;
@ConnectionStatus
private final int mStatus;
private final HotspotNetwork mHotspotNetwork;
private final Bundle mExtras;
/**
* Builder class for {@link TetherNetworkConnectionStatus}.
* Builder class for {@link HotspotNetworkConnectionStatus}.
*/
public static final class Builder {
@ConnectionStatus private int mStatus;
private TetherNetwork mTetherNetwork;
@ConnectionStatus
private int mStatus;
private HotspotNetwork mHotspotNetwork;
private Bundle mExtras;
public Builder() {}
/**
* Sets the status of the connection
*
@@ -130,13 +131,13 @@ public final class TetherNetworkConnectionStatus implements Parcelable {
}
/**
* Sets the {@link TetherNetwork} object of the connection.
* Sets the {@link HotspotNetwork} object of the connection.
*
* @return Returns the Builder object.
*/
@NonNull
public Builder setTetherNetwork(@NonNull TetherNetwork tetherNetwork) {
mTetherNetwork = tetherNetwork;
public Builder setHotspotNetwork(@NonNull HotspotNetwork hotspotNetwork) {
mHotspotNetwork = hotspotNetwork;
return this;
}
@@ -152,20 +153,21 @@ public final class TetherNetworkConnectionStatus implements Parcelable {
}
/**
* Builds the {@link TetherNetworkConnectionStatus} object.
* Builds the {@link HotspotNetworkConnectionStatus} object.
*
* @return Returns the built {@link TetherNetworkConnectionStatus} object.
* @return Returns the built {@link HotspotNetworkConnectionStatus} object.
*/
@NonNull
public TetherNetworkConnectionStatus build() {
return new TetherNetworkConnectionStatus(mStatus, mTetherNetwork, mExtras);
public HotspotNetworkConnectionStatus build() {
return new HotspotNetworkConnectionStatus(mStatus, mHotspotNetwork, mExtras);
}
}
private TetherNetworkConnectionStatus(@ConnectionStatus int status, TetherNetwork tetherNetwork,
private HotspotNetworkConnectionStatus(@ConnectionStatus int status,
HotspotNetwork hotspotNetwork,
Bundle extras) {
mStatus = status;
mTetherNetwork = tetherNetwork;
mHotspotNetwork = hotspotNetwork;
mExtras = extras;
}
@@ -180,13 +182,13 @@ public final class TetherNetworkConnectionStatus implements Parcelable {
}
/**
* Gets the {@link TetherNetwork} object of the connection.
* Gets the {@link HotspotNetwork} object of the connection.
*
* @return Returns a TetherNetwork object.
* @return Returns a HotspotNetwork object.
*/
@NonNull
public TetherNetwork getTetherNetwork() {
return mTetherNetwork;
public HotspotNetwork getHotspotNetwork() {
return mHotspotNetwork;
}
/**
@@ -201,15 +203,15 @@ public final class TetherNetworkConnectionStatus implements Parcelable {
@Override
public boolean equals(Object obj) {
if (!(obj instanceof TetherNetworkConnectionStatus)) return false;
TetherNetworkConnectionStatus other = (TetherNetworkConnectionStatus) obj;
if (!(obj instanceof HotspotNetworkConnectionStatus)) return false;
HotspotNetworkConnectionStatus other = (HotspotNetworkConnectionStatus) obj;
return mStatus == other.getStatus()
&& Objects.equals(mTetherNetwork, other.getTetherNetwork());
&& Objects.equals(mHotspotNetwork, other.getHotspotNetwork());
}
@Override
public int hashCode() {
return Objects.hash(mStatus, mTetherNetwork);
return Objects.hash(mStatus, mHotspotNetwork);
}
@Override
@@ -220,39 +222,39 @@ public final class TetherNetworkConnectionStatus implements Parcelable {
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
dest.writeInt(mStatus);
mTetherNetwork.writeToParcel(dest, flags);
mHotspotNetwork.writeToParcel(dest, flags);
dest.writeBundle(mExtras);
}
/**
* Creates a {@link TetherNetworkConnectionStatus} object from a parcel.
* Creates a {@link HotspotNetworkConnectionStatus} object from a parcel.
*
* @hide
*/
@NonNull
public static TetherNetworkConnectionStatus readFromParcel(@NonNull Parcel in) {
return new TetherNetworkConnectionStatus(in.readInt(),
TetherNetwork.readFromParcel(in), in.readBundle());
public static HotspotNetworkConnectionStatus readFromParcel(@NonNull Parcel in) {
return new HotspotNetworkConnectionStatus(in.readInt(),
HotspotNetwork.readFromParcel(in), in.readBundle());
}
@NonNull
public static final Creator<TetherNetworkConnectionStatus> CREATOR = new Creator<>() {
public static final Creator<HotspotNetworkConnectionStatus> CREATOR = new Creator<>() {
@Override
public TetherNetworkConnectionStatus createFromParcel(Parcel in) {
public HotspotNetworkConnectionStatus createFromParcel(Parcel in) {
return readFromParcel(in);
}
@Override
public TetherNetworkConnectionStatus[] newArray(int size) {
return new TetherNetworkConnectionStatus[size];
public HotspotNetworkConnectionStatus[] newArray(int size) {
return new HotspotNetworkConnectionStatus[size];
}
};
@Override
public String toString() {
return new StringBuilder("TetherNetworkConnectionStatus[")
return new StringBuilder("HotspotNetworkConnectionStatus[")
.append("status=").append(mStatus)
.append("tether network=").append(mTetherNetwork.toString())
.append("hotspot network=").append(mHotspotNetwork.toString())
.append("extras=").append(mExtras.toString())
.append("]").toString();
}

View File

@@ -69,7 +69,7 @@ public final class KnownNetwork implements Parcelable {
@NetworkSource private final int mNetworkSource;
private final String mSsid;
@SecurityType private final ArraySet<Integer> mSecurityTypes;
private final DeviceInfo mDeviceInfo;
private final NetworkProviderInfo mNetworkProviderInfo;
/**
* Builder class for {@link KnownNetwork}.
@@ -78,7 +78,7 @@ public final class KnownNetwork implements Parcelable {
@NetworkSource private int mNetworkSource = -1;
private String mSsid;
@SecurityType private final ArraySet<Integer> mSecurityTypes = new ArraySet<>();
private android.net.wifi.sharedconnectivity.app.DeviceInfo mDeviceInfo;
private NetworkProviderInfo mNetworkProviderInfo;
/**
* Sets the indicated source of the known network.
@@ -120,12 +120,12 @@ public final class KnownNetwork implements Parcelable {
* Sets the device information of the device providing connectivity.
* Must be set if network source is {@link KnownNetwork#NETWORK_SOURCE_NEARBY_SELF}.
*
* @param deviceInfo The device information object.
* @param networkProviderInfo The device information object.
* @return Returns the Builder object.
*/
@NonNull
public Builder setDeviceInfo(@Nullable DeviceInfo deviceInfo) {
mDeviceInfo = deviceInfo;
public Builder setNetworkProviderInfo(@Nullable NetworkProviderInfo networkProviderInfo) {
mNetworkProviderInfo = networkProviderInfo;
return this;
}
@@ -140,12 +140,12 @@ public final class KnownNetwork implements Parcelable {
mNetworkSource,
mSsid,
mSecurityTypes,
mDeviceInfo);
mNetworkProviderInfo);
}
}
private static void validate(int networkSource, String ssid, Set<Integer> securityTypes,
DeviceInfo deviceInfo) {
NetworkProviderInfo networkProviderInfo) {
if (networkSource != NETWORK_SOURCE_UNKNOWN
&& networkSource != NETWORK_SOURCE_CLOUD_SELF
&& networkSource != NETWORK_SOURCE_NEARBY_SELF) {
@@ -157,7 +157,7 @@ public final class KnownNetwork implements Parcelable {
if (securityTypes.isEmpty()) {
throw new IllegalArgumentException("SecurityTypes must be set");
}
if (networkSource == NETWORK_SOURCE_NEARBY_SELF && deviceInfo == null) {
if (networkSource == NETWORK_SOURCE_NEARBY_SELF && networkProviderInfo == null) {
throw new IllegalArgumentException("Device info must be provided when network source"
+ " is NETWORK_SOURCE_NEARBY_SELF");
}
@@ -167,12 +167,12 @@ public final class KnownNetwork implements Parcelable {
@NetworkSource int networkSource,
@NonNull String ssid,
@NonNull @SecurityType ArraySet<Integer> securityTypes,
@Nullable DeviceInfo deviceInfo) {
validate(networkSource, ssid, securityTypes, deviceInfo);
@Nullable NetworkProviderInfo networkProviderInfo) {
validate(networkSource, ssid, securityTypes, networkProviderInfo);
mNetworkSource = networkSource;
mSsid = ssid;
mSecurityTypes = new ArraySet<>(securityTypes);
mDeviceInfo = deviceInfo;
mNetworkProviderInfo = networkProviderInfo;
}
/**
@@ -213,8 +213,8 @@ public final class KnownNetwork implements Parcelable {
* network source is cloud or unknown.
*/
@Nullable
public DeviceInfo getDeviceInfo() {
return mDeviceInfo;
public NetworkProviderInfo getNetworkProviderInfo() {
return mNetworkProviderInfo;
}
@Override
@@ -224,12 +224,12 @@ public final class KnownNetwork implements Parcelable {
return mNetworkSource == other.getNetworkSource()
&& Objects.equals(mSsid, other.getSsid())
&& Objects.equals(mSecurityTypes, other.getSecurityTypes())
&& Objects.equals(mDeviceInfo, other.getDeviceInfo());
&& Objects.equals(mNetworkProviderInfo, other.getNetworkProviderInfo());
}
@Override
public int hashCode() {
return Objects.hash(mNetworkSource, mSsid, mSecurityTypes, mDeviceInfo);
return Objects.hash(mNetworkSource, mSsid, mSecurityTypes, mNetworkProviderInfo);
}
@Override
@@ -242,7 +242,7 @@ public final class KnownNetwork implements Parcelable {
dest.writeInt(mNetworkSource);
dest.writeString(mSsid);
dest.writeArraySet(mSecurityTypes);
mDeviceInfo.writeToParcel(dest, flags);
mNetworkProviderInfo.writeToParcel(dest, flags);
}
/**
@@ -254,7 +254,7 @@ public final class KnownNetwork implements Parcelable {
public static KnownNetwork readFromParcel(@NonNull Parcel in) {
return new KnownNetwork(in.readInt(), in.readString(),
(ArraySet<Integer>) in.readArraySet(null),
DeviceInfo.readFromParcel(in));
NetworkProviderInfo.readFromParcel(in));
}
@NonNull
@@ -276,7 +276,7 @@ public final class KnownNetwork implements Parcelable {
.append("NetworkSource=").append(mNetworkSource)
.append(", ssid=").append(mSsid)
.append(", securityTypes=").append(mSecurityTypes.toString())
.append(", deviceInfo=").append(mDeviceInfo.toString())
.append(", networkProviderInfo=").append(mNetworkProviderInfo.toString())
.append("]").toString();
}
}

View File

@@ -16,4 +16,4 @@
package android.net.wifi.sharedconnectivity.app;
parcelable TetherNetwork;
parcelable NetworkProviderInfo;

View File

@@ -36,7 +36,7 @@ import java.util.Objects;
* @hide
*/
@SystemApi
public final class DeviceInfo implements Parcelable {
public final class NetworkProviderInfo implements Parcelable {
/**
* Device type providing connectivity is unknown.
@@ -58,6 +58,16 @@ public final class DeviceInfo implements Parcelable {
*/
public static final int DEVICE_TYPE_LAPTOP = 3;
/**
* Device providing connectivity is a watch.
*/
public static final int DEVICE_TYPE_WATCH = 4;
/**
* Device providing connectivity is a watch.
*/
public static final int DEVICE_TYPE_AUTO = 5;
/**
* @hide
*/
@@ -66,7 +76,9 @@ public final class DeviceInfo implements Parcelable {
DEVICE_TYPE_UNKNOWN,
DEVICE_TYPE_PHONE,
DEVICE_TYPE_TABLET,
DEVICE_TYPE_LAPTOP
DEVICE_TYPE_LAPTOP,
DEVICE_TYPE_WATCH,
DEVICE_TYPE_AUTO
})
public @interface DeviceType {}
@@ -77,7 +89,7 @@ public final class DeviceInfo implements Parcelable {
private final int mConnectionStrength;
/**
* Builder class for {@link DeviceInfo}.
* Builder class for {@link NetworkProviderInfo}.
*/
public static final class Builder {
private int mDeviceType;
@@ -149,13 +161,13 @@ public final class DeviceInfo implements Parcelable {
}
/**
* Builds the {@link DeviceInfo} object.
* Builds the {@link NetworkProviderInfo} object.
*
* @return Returns the built {@link DeviceInfo} object.
* @return Returns the built {@link NetworkProviderInfo} object.
*/
@NonNull
public DeviceInfo build() {
return new DeviceInfo(mDeviceType, mDeviceName, mModelName, mBatteryPercentage,
public NetworkProviderInfo build() {
return new NetworkProviderInfo(mDeviceType, mDeviceName, mModelName, mBatteryPercentage,
mConnectionStrength);
}
}
@@ -163,7 +175,8 @@ public final class DeviceInfo implements Parcelable {
private static void validate(int deviceType, String deviceName, String modelName,
int batteryPercentage, int connectionStrength) {
if (deviceType != DEVICE_TYPE_UNKNOWN && deviceType != DEVICE_TYPE_PHONE
&& deviceType != DEVICE_TYPE_TABLET && deviceType != DEVICE_TYPE_LAPTOP) {
&& deviceType != DEVICE_TYPE_TABLET && deviceType != DEVICE_TYPE_LAPTOP
&& deviceType != DEVICE_TYPE_WATCH && deviceType != DEVICE_TYPE_AUTO) {
throw new IllegalArgumentException("Illegal device type");
}
if (Objects.isNull(deviceName)) {
@@ -180,7 +193,7 @@ public final class DeviceInfo implements Parcelable {
}
}
private DeviceInfo(@DeviceType int deviceType, @NonNull String deviceName,
private NetworkProviderInfo(@DeviceType int deviceType, @NonNull String deviceName,
@NonNull String modelName, int batteryPercentage, int connectionStrength) {
validate(deviceType, deviceName, modelName, batteryPercentage, connectionStrength);
mDeviceType = deviceType;
@@ -242,8 +255,8 @@ public final class DeviceInfo implements Parcelable {
@Override
public boolean equals(Object obj) {
if (!(obj instanceof DeviceInfo)) return false;
DeviceInfo other = (DeviceInfo) obj;
if (!(obj instanceof NetworkProviderInfo)) return false;
NetworkProviderInfo other = (NetworkProviderInfo) obj;
return mDeviceType == other.getDeviceType()
&& Objects.equals(mDeviceName, other.mDeviceName)
&& Objects.equals(mModelName, other.mModelName)
@@ -271,32 +284,32 @@ public final class DeviceInfo implements Parcelable {
}
/**
* Creates a {@link DeviceInfo} object from a parcel.
* Creates a {@link NetworkProviderInfo} object from a parcel.
*
* @hide
*/
@NonNull
public static DeviceInfo readFromParcel(@NonNull Parcel in) {
return new DeviceInfo(in.readInt(), in.readString(), in.readString(), in.readInt(),
public static NetworkProviderInfo readFromParcel(@NonNull Parcel in) {
return new NetworkProviderInfo(in.readInt(), in.readString(), in.readString(), in.readInt(),
in.readInt());
}
@NonNull
public static final Creator<DeviceInfo> CREATOR = new Creator<DeviceInfo>() {
public static final Creator<NetworkProviderInfo> CREATOR = new Creator<NetworkProviderInfo>() {
@Override
public DeviceInfo createFromParcel(Parcel in) {
public NetworkProviderInfo createFromParcel(Parcel in) {
return readFromParcel(in);
}
@Override
public DeviceInfo[] newArray(int size) {
return new DeviceInfo[size];
public NetworkProviderInfo[] newArray(int size) {
return new NetworkProviderInfo[size];
}
};
@Override
public String toString() {
return new StringBuilder("DeviceInfo[")
return new StringBuilder("NetworkProviderInfo[")
.append("deviceType=").append(mDeviceType)
.append(", deviceName=").append(mDeviceName)
.append(", modelName=").append(mModelName)

View File

@@ -32,14 +32,16 @@ import java.util.List;
public interface SharedConnectivityClientCallback {
/**
* This method is being called by {@link SharedConnectivityService} to notify of a change in the
* list of available Tether Networks.
* @param networks Updated Tether Network list.
* list of available Hotspot Networks.
*
* @param networks Updated Hotspot Network list.
*/
void onTetherNetworksUpdated(@NonNull List<TetherNetwork> networks);
void onHotspotNetworksUpdated(@NonNull List<HotspotNetwork> networks);
/**
* This method is being called by {@link SharedConnectivityService} to notify of a change in the
* list of available Known Networks.
*
* @param networks Updated Known Network list.
*/
void onKnownNetworksUpdated(@NonNull List<KnownNetwork> networks);
@@ -47,20 +49,23 @@ public interface SharedConnectivityClientCallback {
/**
* This method is being called by {@link SharedConnectivityService} to notify of a change in the
* state of share connectivity settings.
*
* @param state The new state.
*/
void onSharedConnectivitySettingsChanged(@NonNull SharedConnectivitySettingsState state);
/**
* This method is being called by {@link SharedConnectivityService} to notify of a change in the
* status of the current tether network connection.
* status of the current hotspot network connection.
*
* @param status The new status.
*/
void onTetherNetworkConnectionStatusChanged(@NonNull TetherNetworkConnectionStatus status);
void onHotspotNetworkConnectionStatusChanged(@NonNull HotspotNetworkConnectionStatus status);
/**
* This method is being called by {@link SharedConnectivityService} to notify of a change in the
* status of the current known network connection.
*
* @param status The new status.
*/
void onKnownNetworkConnectionStatusChanged(@NonNull KnownNetworkConnectionStatus status);

View File

@@ -49,7 +49,7 @@ import java.util.concurrent.Executor;
* This class is the library used by consumers of Shared Connectivity data to bind to the service,
* receive callbacks from, and send user actions to the service.
*
* The methods {@link #connectTetherNetwork}, {@link #disconnectTetherNetwork},
* The methods {@link #connectHotspotNetwork}, {@link #disconnectHotspotNetwork},
* {@link #connectKnownNetwork} and {@link #forgetKnownNetwork} are not valid and will return false
* if not called between {@link SharedConnectivityClientCallback#onServiceConnected()}
* and {@link SharedConnectivityClientCallback#onServiceDisconnected()} or if
@@ -74,12 +74,11 @@ public class SharedConnectivityManager {
mCallback = callback;
}
@Override
public void onTetherNetworksUpdated(@NonNull List<TetherNetwork> networks) {
public void onHotspotNetworksUpdated(@NonNull List<HotspotNetwork> networks) {
if (mCallback != null) {
final long token = Binder.clearCallingIdentity();
try {
mExecutor.execute(() -> mCallback.onTetherNetworksUpdated(networks));
mExecutor.execute(() -> mCallback.onHotspotNetworksUpdated(networks));
} finally {
Binder.restoreCallingIdentity(token);
}
@@ -111,14 +110,13 @@ public class SharedConnectivityManager {
}
}
@Override
public void onTetherNetworkConnectionStatusChanged(
@NonNull TetherNetworkConnectionStatus status) {
public void onHotspotNetworkConnectionStatusChanged(
@NonNull HotspotNetworkConnectionStatus status) {
if (mCallback != null) {
final long token = Binder.clearCallingIdentity();
try {
mExecutor.execute(() ->
mCallback.onTetherNetworkConnectionStatusChanged(status));
mCallback.onHotspotNetworkConnectionStatusChanged(status));
} finally {
Binder.restoreCallingIdentity(token);
}
@@ -259,8 +257,8 @@ public class SharedConnectivityManager {
}
/**
* Registers a callback for receiving updates to the list of Tether Networks, Known Networks,
* shared connectivity settings state, tether network connection status and known network
* Registers a callback for receiving updates to the list of Hotspot Networks, Known Networks,
* shared connectivity settings state, hotspot network connection status and known network
* connection status.
* The {@link SharedConnectivityClientCallback#onRegisterCallbackFailed} will be called if the
* registration failed.
@@ -331,26 +329,26 @@ public class SharedConnectivityManager {
/**
* Send command to the implementation of {@link SharedConnectivityService} requesting connection
* to the specified Tether Network.
* to the specified Hotspot Network.
*
* @param network {@link TetherNetwork} object representing the network the user has requested
* @param network {@link HotspotNetwork} object representing the network the user has requested
* a connection to.
* @return Returns true if the service received the command. Does not guarantee that the
* connection was successful.
* connection was successful.
*/
@RequiresPermission(anyOf = {android.Manifest.permission.NETWORK_SETTINGS,
android.Manifest.permission.NETWORK_SETUP_WIZARD})
public boolean connectTetherNetwork(@NonNull TetherNetwork network) {
Objects.requireNonNull(network, "Tether network cannot be null");
public boolean connectHotspotNetwork(@NonNull HotspotNetwork network) {
Objects.requireNonNull(network, "Hotspot network cannot be null");
if (mService == null) {
return false;
}
try {
mService.connectTetherNetwork(network);
mService.connectHotspotNetwork(network);
} catch (RemoteException e) {
Log.e(TAG, "Exception in connectTetherNetwork", e);
Log.e(TAG, "Exception in connectHotspotNetwork", e);
return false;
}
return true;
@@ -358,24 +356,24 @@ public class SharedConnectivityManager {
/**
* Send command to the implementation of {@link SharedConnectivityService} requesting
* disconnection from the active Tether Network.
* disconnection from the active Hotspot Network.
*
* @param network {@link TetherNetwork} object representing the network the user has requested
* @param network {@link HotspotNetwork} object representing the network the user has requested
* to disconnect from.
* @return Returns true if the service received the command. Does not guarantee that the
* disconnection was successful.
* disconnection was successful.
*/
@RequiresPermission(anyOf = {android.Manifest.permission.NETWORK_SETTINGS,
android.Manifest.permission.NETWORK_SETUP_WIZARD})
public boolean disconnectTetherNetwork(@NonNull TetherNetwork network) {
public boolean disconnectHotspotNetwork(@NonNull HotspotNetwork network) {
if (mService == null) {
return false;
}
try {
mService.disconnectTetherNetwork(network);
mService.disconnectHotspotNetwork(network);
} catch (RemoteException e) {
Log.e(TAG, "Exception in disconnectTetherNetwork", e);
Log.e(TAG, "Exception in disconnectHotspotNetwork", e);
return false;
}
return true;
@@ -388,7 +386,7 @@ public class SharedConnectivityManager {
* @param network {@link KnownNetwork} object representing the network the user has requested
* a connection to.
* @return Returns true if the service received the command. Does not guarantee that the
* connection was successful.
* connection was successful.
*/
@RequiresPermission(anyOf = {android.Manifest.permission.NETWORK_SETTINGS,
android.Manifest.permission.NETWORK_SETUP_WIZARD})
@@ -413,7 +411,7 @@ public class SharedConnectivityManager {
* the specified Known Network from the list of Known Networks.
*
* @return Returns true if the service received the command. Does not guarantee that the
* forget action was successful.
* forget action was successful.
*/
@RequiresPermission(anyOf = {android.Manifest.permission.NETWORK_SETTINGS,
android.Manifest.permission.NETWORK_SETUP_WIZARD})
@@ -434,22 +432,22 @@ public class SharedConnectivityManager {
}
/**
* Gets the list of tether networks the user can select to connect to.
* Gets the list of hotspot networks the user can select to connect to.
*
* @return Returns a {@link List} of {@link TetherNetwork} objects, empty list on failure.
* @return Returns a {@link List} of {@link HotspotNetwork} objects, empty list on failure.
*/
@RequiresPermission(anyOf = {android.Manifest.permission.NETWORK_SETTINGS,
android.Manifest.permission.NETWORK_SETUP_WIZARD})
@NonNull
public List<TetherNetwork> getTetherNetworks() {
public List<HotspotNetwork> getHotspotNetworks() {
if (mService == null) {
return List.of();
}
try {
return mService.getTetherNetworks();
return mService.getHotspotNetworks();
} catch (RemoteException e) {
Log.e(TAG, "Exception in getTetherNetworks", e);
Log.e(TAG, "Exception in getHotspotNetworks", e);
}
return List.of();
}
@@ -498,24 +496,24 @@ public class SharedConnectivityManager {
}
/**
* Gets the connection status of the tether network the user selected to connect to.
* Gets the connection status of the hotspot network the user selected to connect to.
*
* @return Returns a {@link TetherNetworkConnectionStatus} object with the connection status,
* @return Returns a {@link HotspotNetworkConnectionStatus} object with the connection status,
* null on failure. If no connection is active the status will be
* {@link TetherNetworkConnectionStatus#CONNECTION_STATUS_UNKNOWN}.
* {@link HotspotNetworkConnectionStatus#CONNECTION_STATUS_UNKNOWN}.
*/
@RequiresPermission(anyOf = {android.Manifest.permission.NETWORK_SETTINGS,
android.Manifest.permission.NETWORK_SETUP_WIZARD})
@Nullable
public TetherNetworkConnectionStatus getTetherNetworkConnectionStatus() {
public HotspotNetworkConnectionStatus getHotspotNetworkConnectionStatus() {
if (mService == null) {
return null;
}
try {
return mService.getTetherNetworkConnectionStatus();
return mService.getHotspotNetworkConnectionStatus();
} catch (RemoteException e) {
Log.e(TAG, "Exception in getTetherNetworkConnectionStatus", e);
Log.e(TAG, "Exception in getHotspotNetworkConnectionStatus", e);
}
return null;
}

View File

@@ -19,15 +19,15 @@ package android.net.wifi.sharedconnectivity.service;
import android.net.wifi.sharedconnectivity.app.KnownNetwork;
import android.net.wifi.sharedconnectivity.app.KnownNetworkConnectionStatus;
import android.net.wifi.sharedconnectivity.app.SharedConnectivitySettingsState;
import android.net.wifi.sharedconnectivity.app.TetherNetwork;
import android.net.wifi.sharedconnectivity.app.TetherNetworkConnectionStatus;
import android.net.wifi.sharedconnectivity.app.HotspotNetwork;
import android.net.wifi.sharedconnectivity.app.HotspotNetworkConnectionStatus;
/*
* @hide
*/
interface ISharedConnectivityCallback {
oneway void onTetherNetworksUpdated(in List<TetherNetwork> networks);
oneway void onTetherNetworkConnectionStatusChanged(in TetherNetworkConnectionStatus status);
oneway void onHotspotNetworksUpdated(in List<HotspotNetwork> networks);
oneway void onHotspotNetworkConnectionStatusChanged(in HotspotNetworkConnectionStatus status);
oneway void onKnownNetworksUpdated(in List<KnownNetwork> networks);
oneway void onKnownNetworkConnectionStatusChanged(in KnownNetworkConnectionStatus status);
oneway void onSharedConnectivitySettingsChanged(in SharedConnectivitySettingsState state);

View File

@@ -17,10 +17,10 @@
package android.net.wifi.sharedconnectivity.service;
import android.net.wifi.sharedconnectivity.app.KnownNetwork;
import android.net.wifi.sharedconnectivity.app.TetherNetwork;
import android.net.wifi.sharedconnectivity.app.HotspotNetwork;
import android.net.wifi.sharedconnectivity.app.KnownNetworkConnectionStatus;
import android.net.wifi.sharedconnectivity.app.SharedConnectivitySettingsState;
import android.net.wifi.sharedconnectivity.app.TetherNetworkConnectionStatus;
import android.net.wifi.sharedconnectivity.app.HotspotNetworkConnectionStatus;
import android.net.wifi.sharedconnectivity.service.ISharedConnectivityCallback;
/*
@@ -29,13 +29,13 @@ import android.net.wifi.sharedconnectivity.service.ISharedConnectivityCallback;
interface ISharedConnectivityService {
void registerCallback(in ISharedConnectivityCallback callback);
void unregisterCallback(in ISharedConnectivityCallback callback);
void connectTetherNetwork(in TetherNetwork network);
void disconnectTetherNetwork(in TetherNetwork network);
void connectHotspotNetwork(in HotspotNetwork network);
void disconnectHotspotNetwork(in HotspotNetwork network);
void connectKnownNetwork(in KnownNetwork network);
void forgetKnownNetwork(in KnownNetwork network);
List<TetherNetwork> getTetherNetworks();
List<HotspotNetwork> getHotspotNetworks();
List<KnownNetwork> getKnownNetworks();
SharedConnectivitySettingsState getSettingsState();
TetherNetworkConnectionStatus getTetherNetworkConnectionStatus();
HotspotNetworkConnectionStatus getHotspotNetworkConnectionStatus();
KnownNetworkConnectionStatus getKnownNetworkConnectionStatus();
}

View File

@@ -27,12 +27,12 @@ import android.annotation.TestApi;
import android.app.Service;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.wifi.sharedconnectivity.app.HotspotNetwork;
import android.net.wifi.sharedconnectivity.app.HotspotNetworkConnectionStatus;
import android.net.wifi.sharedconnectivity.app.KnownNetwork;
import android.net.wifi.sharedconnectivity.app.KnownNetworkConnectionStatus;
import android.net.wifi.sharedconnectivity.app.SharedConnectivityManager;
import android.net.wifi.sharedconnectivity.app.SharedConnectivitySettingsState;
import android.net.wifi.sharedconnectivity.app.TetherNetwork;
import android.net.wifi.sharedconnectivity.app.TetherNetworkConnectionStatus;
import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
@@ -62,14 +62,14 @@ public abstract class SharedConnectivityService extends Service {
private Handler mHandler;
private final RemoteCallbackList<ISharedConnectivityCallback> mRemoteCallbackList =
new RemoteCallbackList<>();
private List<TetherNetwork> mTetherNetworks = Collections.emptyList();
private List<HotspotNetwork> mHotspotNetworks = Collections.emptyList();
private List<KnownNetwork> mKnownNetworks = Collections.emptyList();
private SharedConnectivitySettingsState mSettingsState =
new SharedConnectivitySettingsState.Builder().setInstantTetherEnabled(false)
.setExtras(Bundle.EMPTY).build();
private TetherNetworkConnectionStatus mTetherNetworkConnectionStatus =
new TetherNetworkConnectionStatus.Builder()
.setStatus(TetherNetworkConnectionStatus.CONNECTION_STATUS_UNKNOWN)
private HotspotNetworkConnectionStatus mHotspotNetworkConnectionStatus =
new HotspotNetworkConnectionStatus.Builder()
.setStatus(HotspotNetworkConnectionStatus.CONNECTION_STATUS_UNKNOWN)
.setExtras(Bundle.EMPTY).build();
private KnownNetworkConnectionStatus mKnownNetworkConnectionStatus =
new KnownNetworkConnectionStatus.Builder()
@@ -84,8 +84,8 @@ public abstract class SharedConnectivityService extends Service {
IBinder serviceStub = new ISharedConnectivityService.Stub() {
/**
* Registers a callback for receiving updates to the list of Tether Networks, Known
* Networks, shared connectivity settings state, tether network connection status and
* Registers a callback for receiving updates to the list of Hotspot Networks, Known
* Networks, shared connectivity settings state, hotspot network connection status and
* known network connection status.
*
* @param callback The callback of type {@link ISharedConnectivityCallback} to be called
@@ -113,29 +113,28 @@ public abstract class SharedConnectivityService extends Service {
}
/**
* Connects to a tether network.
* Connects to a hotspot network.
*
* @param network The network to connect to.
*/
@RequiresPermission(anyOf = {android.Manifest.permission.NETWORK_SETTINGS,
android.Manifest.permission.NETWORK_SETUP_WIZARD})
@Override
public void connectTetherNetwork(TetherNetwork network) {
public void connectHotspotNetwork(HotspotNetwork network) {
checkPermissions();
mHandler.post(() -> onConnectTetherNetwork(network));
mHandler.post(() -> onConnectHotspotNetwork(network));
}
/**
* Disconnects from a previously connected tether network.
* Disconnects from a previously connected hotspot network.
*
* @param network The network to disconnect from.
*/
@RequiresPermission(anyOf = {android.Manifest.permission.NETWORK_SETTINGS,
android.Manifest.permission.NETWORK_SETUP_WIZARD})
@Override
public void disconnectTetherNetwork(TetherNetwork network) {
public void disconnectHotspotNetwork(HotspotNetwork network) {
checkPermissions();
mHandler.post(() -> onDisconnectTetherNetwork(network));
mHandler.post(() -> onDisconnectHotspotNetwork(network));
}
/**
@@ -164,16 +163,16 @@ public abstract class SharedConnectivityService extends Service {
}
/**
* Gets the list of tether networks the user can select to connect to.
* Gets the list of hotspot networks the user can select to connect to.
*
* @return Returns a {@link List} of {@link TetherNetwork} objects
* @return Returns a {@link List} of {@link HotspotNetwork} objects
*/
@RequiresPermission(anyOf = {android.Manifest.permission.NETWORK_SETTINGS,
android.Manifest.permission.NETWORK_SETUP_WIZARD})
@Override
public List<TetherNetwork> getTetherNetworks() {
public List<HotspotNetwork> getHotspotNetworks() {
checkPermissions();
return mTetherNetworks;
return mHotspotNetworks;
}
/**
@@ -203,17 +202,17 @@ public abstract class SharedConnectivityService extends Service {
}
/**
* Gets the connection status of the tether network the user selected to connect to.
* Gets the connection status of the hotspot network the user selected to connect to.
*
* @return Returns a {@link TetherNetworkConnectionStatus} object with the connection
* @return Returns a {@link HotspotNetworkConnectionStatus} object with the connection
* status.
*/
@RequiresPermission(anyOf = {android.Manifest.permission.NETWORK_SETTINGS,
android.Manifest.permission.NETWORK_SETUP_WIZARD})
@Override
public TetherNetworkConnectionStatus getTetherNetworkConnectionStatus() {
public HotspotNetworkConnectionStatus getHotspotNetworkConnectionStatus() {
checkPermissions();
return mTetherNetworkConnectionStatus;
return mHotspotNetworkConnectionStatus;
}
/**
@@ -254,7 +253,8 @@ public abstract class SharedConnectivityService extends Service {
/** @hide */
@TestApi
public void onBind() {}
public void onBind() {
}
private void onRegisterCallback(ISharedConnectivityCallback callback) {
mRemoteCallbackList.register(callback);
@@ -265,23 +265,23 @@ public abstract class SharedConnectivityService extends Service {
}
/**
* Implementing application should call this method to provide an up-to-date list of Tether
* Implementing application should call this method to provide an up-to-date list of Hotspot
* Networks to be displayed to the user.
*
* This method updates the cached list and notifies all registered callbacks. Any callbacks that
* are inaccessible will be unregistered.
*
* @param networks The updated list of {@link TetherNetwork} objects.
* @param networks The updated list of {@link HotspotNetwork} objects.
*/
public final void setTetherNetworks(@NonNull List<TetherNetwork> networks) {
mTetherNetworks = networks;
public final void setHotspotNetworks(@NonNull List<HotspotNetwork> networks) {
mHotspotNetworks = networks;
int count = mRemoteCallbackList.beginBroadcast();
for (int i = 0; i < count; i++) {
try {
mRemoteCallbackList.getBroadcastItem(i).onTetherNetworksUpdated(mTetherNetworks);
mRemoteCallbackList.getBroadcastItem(i).onHotspotNetworksUpdated(mHotspotNetworks);
} catch (RemoteException e) {
if (DEBUG) Log.w(TAG, "Exception in setTetherNetworks", e);
if (DEBUG) Log.w(TAG, "Exception in setHotspotNetworks", e);
}
}
mRemoteCallbackList.finishBroadcast();
@@ -318,7 +318,7 @@ public abstract class SharedConnectivityService extends Service {
* that are inaccessible will be unregistered.
*
* @param settingsState The updated state {@link SharedConnectivitySettingsState}
* objects.
* objects.
*/
public final void setSettingsState(@NonNull SharedConnectivitySettingsState settingsState) {
mSettingsState = settingsState;
@@ -337,23 +337,22 @@ public abstract class SharedConnectivityService extends Service {
/**
* Implementing application should call this method to provide an up-to-date status of enabling
* and connecting to the tether network.
*
* @param status The updated status {@link TetherNetworkConnectionStatus} of the connection.
* and connecting to the hotspot network.
*
* @param status The updated status {@link HotspotNetworkConnectionStatus} of the connection.
*/
public final void updateTetherNetworkConnectionStatus(
@NonNull TetherNetworkConnectionStatus status) {
mTetherNetworkConnectionStatus = status;
public final void updateHotspotNetworkConnectionStatus(
@NonNull HotspotNetworkConnectionStatus status) {
mHotspotNetworkConnectionStatus = status;
int count = mRemoteCallbackList.beginBroadcast();
for (int i = 0; i < count; i++) {
try {
mRemoteCallbackList
.getBroadcastItem(i).onTetherNetworkConnectionStatusChanged(
mTetherNetworkConnectionStatus);
.getBroadcastItem(i).onHotspotNetworkConnectionStatusChanged(
mHotspotNetworkConnectionStatus);
} catch (RemoteException e) {
if (DEBUG) Log.w(TAG, "Exception in updateTetherNetworkConnectionStatus", e);
if (DEBUG) Log.w(TAG, "Exception in updateHotspotNetworkConnectionStatus", e);
}
}
mRemoteCallbackList.finishBroadcast();
@@ -364,7 +363,6 @@ public abstract class SharedConnectivityService extends Service {
* connecting to a known network.
*
* @param status The updated status {@link KnownNetworkConnectionStatus} of the connection.
*
*/
public final void updateKnownNetworkConnectionStatus(
@NonNull KnownNetworkConnectionStatus status) {
@@ -386,20 +384,20 @@ public abstract class SharedConnectivityService extends Service {
/**
* Implementing application should implement this method.
*
* Implementation should initiate a connection to the Tether Network indicated.
* Implementation should initiate a connection to the Hotspot Network indicated.
*
* @param network Object identifying the Tether Network the user has requested a connection to.
* @param network Object identifying the Hotspot Network the user has requested a connection to.
*/
public abstract void onConnectTetherNetwork(@NonNull TetherNetwork network);
public abstract void onConnectHotspotNetwork(@NonNull HotspotNetwork network);
/**
* Implementing application should implement this method.
*
* Implementation should initiate a disconnection from the active Tether Network.
* Implementation should initiate a disconnection from the active Hotspot Network.
*
* @param network Object identifying the Tether Network the user has requested to disconnect.
* @param network Object identifying the Hotspot Network the user has requested to disconnect.
*/
public abstract void onDisconnectTetherNetwork(@NonNull TetherNetwork network);
public abstract void onDisconnectHotspotNetwork(@NonNull HotspotNetwork network);
/**
* Implementing application should implement this method.

View File

@@ -18,10 +18,10 @@ package android.net.wifi.sharedconnectivity.app;
import static android.net.wifi.WifiInfo.SECURITY_TYPE_EAP;
import static android.net.wifi.WifiInfo.SECURITY_TYPE_WEP;
import static android.net.wifi.sharedconnectivity.app.DeviceInfo.DEVICE_TYPE_TABLET;
import static android.net.wifi.sharedconnectivity.app.TetherNetwork.NETWORK_TYPE_CELLULAR;
import static android.net.wifi.sharedconnectivity.app.TetherNetworkConnectionStatus.CONNECTION_STATUS_ENABLING_HOTSPOT;
import static android.net.wifi.sharedconnectivity.app.TetherNetworkConnectionStatus.CONNECTION_STATUS_TETHERING_TIMEOUT;
import static android.net.wifi.sharedconnectivity.app.HotspotNetwork.NETWORK_TYPE_CELLULAR;
import static android.net.wifi.sharedconnectivity.app.HotspotNetworkConnectionStatus.CONNECTION_STATUS_ENABLING_HOTSPOT;
import static android.net.wifi.sharedconnectivity.app.HotspotNetworkConnectionStatus.CONNECTION_STATUS_TETHERING_TIMEOUT;
import static android.net.wifi.sharedconnectivity.app.NetworkProviderInfo.DEVICE_TYPE_TABLET;
import static com.google.common.truth.Truth.assertThat;
@@ -35,14 +35,15 @@ import org.junit.Test;
import java.util.Arrays;
/**
* Unit tests for {@link TetherNetworkConnectionStatus}.
* Unit tests for {@link HotspotNetworkConnectionStatus}.
*/
@SmallTest
public class TetherNetworkConnectionStatusTest {
public class HotspotNetworkConnectionStatusTest {
private static final long DEVICE_ID = 11L;
private static final DeviceInfo DEVICE_INFO = new DeviceInfo.Builder()
.setDeviceType(DEVICE_TYPE_TABLET).setDeviceName("TEST_NAME").setModelName("TEST_MODEL")
.setConnectionStrength(2).setBatteryPercentage(50).build();
private static final NetworkProviderInfo NETWORK_PROVIDER_INFO =
new NetworkProviderInfo.Builder().setDeviceType(DEVICE_TYPE_TABLET)
.setDeviceName("TEST_NAME").setModelName("TEST_MODEL")
.setConnectionStrength(2).setBatteryPercentage(50).build();
private static final int NETWORK_TYPE = NETWORK_TYPE_CELLULAR;
private static final String NETWORK_NAME = "TEST_NETWORK";
private static final String HOTSPOT_SSID = "TEST_SSID";
@@ -57,7 +58,7 @@ public class TetherNetworkConnectionStatusTest {
*/
@Test
public void testParcelOperation() {
TetherNetworkConnectionStatus status = buildConnectionStatusBuilder().build();
HotspotNetworkConnectionStatus status = buildConnectionStatusBuilder().build();
Parcel parcelW = Parcel.obtain();
status.writeToParcel(parcelW, 0);
@@ -67,8 +68,8 @@ public class TetherNetworkConnectionStatusTest {
Parcel parcelR = Parcel.obtain();
parcelR.unmarshall(bytes, 0, bytes.length);
parcelR.setDataPosition(0);
TetherNetworkConnectionStatus fromParcel =
TetherNetworkConnectionStatus.CREATOR.createFromParcel(parcelR);
HotspotNetworkConnectionStatus fromParcel =
HotspotNetworkConnectionStatus.CREATOR.createFromParcel(parcelR);
assertThat(fromParcel).isEqualTo(status);
assertThat(fromParcel.hashCode()).isEqualTo(status.hashCode());
@@ -79,16 +80,16 @@ public class TetherNetworkConnectionStatusTest {
*/
@Test
public void testEqualsOperation() {
TetherNetworkConnectionStatus status1 = buildConnectionStatusBuilder().build();
TetherNetworkConnectionStatus status2 = buildConnectionStatusBuilder().build();
HotspotNetworkConnectionStatus status1 = buildConnectionStatusBuilder().build();
HotspotNetworkConnectionStatus status2 = buildConnectionStatusBuilder().build();
assertThat(status1).isEqualTo(status2);
TetherNetworkConnectionStatus.Builder builder = buildConnectionStatusBuilder()
HotspotNetworkConnectionStatus.Builder builder = buildConnectionStatusBuilder()
.setStatus(CONNECTION_STATUS_TETHERING_TIMEOUT);
assertThat(builder.build()).isNotEqualTo(status1);
builder = buildConnectionStatusBuilder()
.setTetherNetwork(buildTetherNetworkBuilder().setDeviceId(DEVICE_ID_1).build());
.setHotspotNetwork(buildHotspotNetworkBuilder().setDeviceId(DEVICE_ID_1).build());
assertThat(builder.build()).isNotEqualTo(status1);
}
@@ -97,24 +98,24 @@ public class TetherNetworkConnectionStatusTest {
*/
@Test
public void testGetMethods() {
TetherNetworkConnectionStatus status = buildConnectionStatusBuilder().build();
HotspotNetworkConnectionStatus status = buildConnectionStatusBuilder().build();
assertThat(status.getStatus()).isEqualTo(CONNECTION_STATUS_ENABLING_HOTSPOT);
assertThat(status.getTetherNetwork()).isEqualTo(buildTetherNetworkBuilder().build());
assertThat(status.getHotspotNetwork()).isEqualTo(buildHotspotNetworkBuilder().build());
assertThat(status.getExtras().getInt(BUNDLE_KEY)).isEqualTo(BUNDLE_VALUE);
}
@Test
public void testHashCode() {
TetherNetworkConnectionStatus status1 = buildConnectionStatusBuilder().build();
TetherNetworkConnectionStatus status2 = buildConnectionStatusBuilder().build();
HotspotNetworkConnectionStatus status1 = buildConnectionStatusBuilder().build();
HotspotNetworkConnectionStatus status2 = buildConnectionStatusBuilder().build();
assertThat(status1.hashCode()).isEqualTo(status2.hashCode());
}
private TetherNetworkConnectionStatus.Builder buildConnectionStatusBuilder() {
return new TetherNetworkConnectionStatus.Builder()
private HotspotNetworkConnectionStatus.Builder buildConnectionStatusBuilder() {
return new HotspotNetworkConnectionStatus.Builder()
.setStatus(CONNECTION_STATUS_ENABLING_HOTSPOT)
.setTetherNetwork(buildTetherNetworkBuilder().build())
.setHotspotNetwork(buildHotspotNetworkBuilder().build())
.setExtras(buildBundle());
}
@@ -124,11 +125,11 @@ public class TetherNetworkConnectionStatusTest {
return bundle;
}
private TetherNetwork.Builder buildTetherNetworkBuilder() {
TetherNetwork.Builder builder = new TetherNetwork.Builder()
private HotspotNetwork.Builder buildHotspotNetworkBuilder() {
HotspotNetwork.Builder builder = new HotspotNetwork.Builder()
.setDeviceId(DEVICE_ID)
.setDeviceInfo(DEVICE_INFO)
.setNetworkType(NETWORK_TYPE)
.setNetworkProviderInfo(NETWORK_PROVIDER_INFO)
.setHostNetworkType(NETWORK_TYPE)
.setNetworkName(NETWORK_NAME)
.setHotspotSsid(HOTSPOT_SSID)
.setHotspotBssid(HOTSPOT_BSSID);

View File

@@ -19,10 +19,10 @@ package android.net.wifi.sharedconnectivity.app;
import static android.net.wifi.WifiInfo.SECURITY_TYPE_EAP;
import static android.net.wifi.WifiInfo.SECURITY_TYPE_PSK;
import static android.net.wifi.WifiInfo.SECURITY_TYPE_WEP;
import static android.net.wifi.sharedconnectivity.app.DeviceInfo.DEVICE_TYPE_PHONE;
import static android.net.wifi.sharedconnectivity.app.DeviceInfo.DEVICE_TYPE_TABLET;
import static android.net.wifi.sharedconnectivity.app.TetherNetwork.NETWORK_TYPE_CELLULAR;
import static android.net.wifi.sharedconnectivity.app.TetherNetwork.NETWORK_TYPE_WIFI;
import static android.net.wifi.sharedconnectivity.app.HotspotNetwork.NETWORK_TYPE_CELLULAR;
import static android.net.wifi.sharedconnectivity.app.HotspotNetwork.NETWORK_TYPE_WIFI;
import static android.net.wifi.sharedconnectivity.app.NetworkProviderInfo.DEVICE_TYPE_PHONE;
import static android.net.wifi.sharedconnectivity.app.NetworkProviderInfo.DEVICE_TYPE_TABLET;
import static com.google.common.truth.Truth.assertThat;
@@ -36,14 +36,15 @@ import org.junit.Test;
import java.util.Arrays;
/**
* Unit tests for {@link TetherNetwork}.
* Unit tests for {@link HotspotNetwork}.
*/
@SmallTest
public class TetherNetworkTest {
public class HotspotNetworkTest {
private static final long DEVICE_ID = 11L;
private static final DeviceInfo DEVICE_INFO = new DeviceInfo.Builder()
.setDeviceType(DEVICE_TYPE_TABLET).setDeviceName("TEST_NAME").setModelName("TEST_MODEL")
.setConnectionStrength(2).setBatteryPercentage(50).build();
private static final NetworkProviderInfo NETWORK_PROVIDER_INFO =
new NetworkProviderInfo.Builder().setDeviceType(DEVICE_TYPE_TABLET)
.setDeviceName("TEST_NAME").setModelName("TEST_MODEL")
.setConnectionStrength(2).setBatteryPercentage(50).build();
private static final int NETWORK_TYPE = NETWORK_TYPE_CELLULAR;
private static final String NETWORK_NAME = "TEST_NETWORK";
private static final String HOTSPOT_SSID = "TEST_SSID";
@@ -51,9 +52,10 @@ public class TetherNetworkTest {
private static final int[] HOTSPOT_SECURITY_TYPES = {SECURITY_TYPE_WEP, SECURITY_TYPE_EAP};
private static final long DEVICE_ID_1 = 111L;
private static final DeviceInfo DEVICE_INFO_1 = new DeviceInfo.Builder()
.setDeviceType(DEVICE_TYPE_PHONE).setDeviceName("TEST_NAME").setModelName("TEST_MODEL")
.setConnectionStrength(2).setBatteryPercentage(50).build();
private static final NetworkProviderInfo NETWORK_PROVIDER_INFO1 =
new NetworkProviderInfo.Builder().setDeviceType(DEVICE_TYPE_PHONE)
.setDeviceName("TEST_NAME").setModelName("TEST_MODEL")
.setConnectionStrength(2).setBatteryPercentage(50).build();
private static final int NETWORK_TYPE_1 = NETWORK_TYPE_WIFI;
private static final String NETWORK_NAME_1 = "TEST_NETWORK1";
private static final String HOTSPOT_SSID_1 = "TEST_SSID1";
@@ -65,7 +67,7 @@ public class TetherNetworkTest {
*/
@Test
public void testParcelOperation() {
TetherNetwork network = buildTetherNetworkBuilder().build();
HotspotNetwork network = buildHotspotNetworkBuilder().build();
Parcel parcelW = Parcel.obtain();
network.writeToParcel(parcelW, 0);
@@ -75,7 +77,7 @@ public class TetherNetworkTest {
Parcel parcelR = Parcel.obtain();
parcelR.unmarshall(bytes, 0, bytes.length);
parcelR.setDataPosition(0);
TetherNetwork fromParcel = TetherNetwork.CREATOR.createFromParcel(parcelR);
HotspotNetwork fromParcel = HotspotNetwork.CREATOR.createFromParcel(parcelR);
assertThat(fromParcel).isEqualTo(network);
assertThat(fromParcel.hashCode()).isEqualTo(network.hashCode());
@@ -86,30 +88,30 @@ public class TetherNetworkTest {
*/
@Test
public void testEqualsOperation() {
TetherNetwork network1 = buildTetherNetworkBuilder().build();
TetherNetwork network2 = buildTetherNetworkBuilder().build();
HotspotNetwork network1 = buildHotspotNetworkBuilder().build();
HotspotNetwork network2 = buildHotspotNetworkBuilder().build();
assertThat(network1).isEqualTo(network2);
TetherNetwork.Builder builder = buildTetherNetworkBuilder().setDeviceId(DEVICE_ID_1);
HotspotNetwork.Builder builder = buildHotspotNetworkBuilder().setDeviceId(DEVICE_ID_1);
assertThat(builder.build()).isNotEqualTo(network1);
builder = buildTetherNetworkBuilder().setDeviceInfo(DEVICE_INFO_1);
builder = buildHotspotNetworkBuilder().setNetworkProviderInfo(NETWORK_PROVIDER_INFO1);
assertThat(builder.build()).isNotEqualTo(network1);
builder = buildTetherNetworkBuilder().setNetworkType(NETWORK_TYPE_1);
builder = buildHotspotNetworkBuilder().setHostNetworkType(NETWORK_TYPE_1);
assertThat(builder.build()).isNotEqualTo(network1);
builder = buildTetherNetworkBuilder().setNetworkName(NETWORK_NAME_1);
builder = buildHotspotNetworkBuilder().setNetworkName(NETWORK_NAME_1);
assertThat(builder.build()).isNotEqualTo(network1);
builder = buildTetherNetworkBuilder().setHotspotSsid(HOTSPOT_SSID_1);
builder = buildHotspotNetworkBuilder().setHotspotSsid(HOTSPOT_SSID_1);
assertThat(builder.build()).isNotEqualTo(network1);
builder = buildTetherNetworkBuilder().setHotspotBssid(HOTSPOT_BSSID_1);
builder = buildHotspotNetworkBuilder().setHotspotBssid(HOTSPOT_BSSID_1);
assertThat(builder.build()).isNotEqualTo(network1);
builder = buildTetherNetworkBuilder();
TetherNetwork.Builder builder1 = buildTetherNetworkBuilder();
builder = buildHotspotNetworkBuilder();
HotspotNetwork.Builder builder1 = buildHotspotNetworkBuilder();
Arrays.stream(HOTSPOT_SECURITY_TYPES_1).forEach(builder1::addHotspotSecurityType);
assertThat(builder1.build()).isNotEqualTo(builder.build());
@@ -120,13 +122,13 @@ public class TetherNetworkTest {
*/
@Test
public void testGetMethods() {
TetherNetwork network = buildTetherNetworkBuilder().build();
HotspotNetwork network = buildHotspotNetworkBuilder().build();
ArraySet<Integer> securityTypes = new ArraySet<>();
Arrays.stream(HOTSPOT_SECURITY_TYPES).forEach(securityTypes::add);
assertThat(network.getDeviceId()).isEqualTo(DEVICE_ID);
assertThat(network.getDeviceInfo()).isEqualTo(DEVICE_INFO);
assertThat(network.getNetworkType()).isEqualTo(NETWORK_TYPE);
assertThat(network.getNetworkProviderInfo()).isEqualTo(NETWORK_PROVIDER_INFO);
assertThat(network.getHostNetworkType()).isEqualTo(NETWORK_TYPE);
assertThat(network.getNetworkName()).isEqualTo(NETWORK_NAME);
assertThat(network.getHotspotSsid()).isEqualTo(HOTSPOT_SSID);
assertThat(network.getHotspotBssid()).isEqualTo(HOTSPOT_BSSID);
@@ -135,17 +137,17 @@ public class TetherNetworkTest {
@Test
public void testHashCode() {
TetherNetwork network1 = buildTetherNetworkBuilder().build();
TetherNetwork network2 = buildTetherNetworkBuilder().build();
HotspotNetwork network1 = buildHotspotNetworkBuilder().build();
HotspotNetwork network2 = buildHotspotNetworkBuilder().build();
assertThat(network1.hashCode()).isEqualTo(network2.hashCode());
}
private TetherNetwork.Builder buildTetherNetworkBuilder() {
TetherNetwork.Builder builder = new TetherNetwork.Builder()
private HotspotNetwork.Builder buildHotspotNetworkBuilder() {
HotspotNetwork.Builder builder = new HotspotNetwork.Builder()
.setDeviceId(DEVICE_ID)
.setDeviceInfo(DEVICE_INFO)
.setNetworkType(NETWORK_TYPE)
.setNetworkProviderInfo(NETWORK_PROVIDER_INFO)
.setHostNetworkType(NETWORK_TYPE)
.setNetworkName(NETWORK_NAME)
.setHotspotSsid(HOTSPOT_SSID)
.setHotspotBssid(HOTSPOT_BSSID);

View File

@@ -17,10 +17,10 @@
package android.net.wifi.sharedconnectivity.app;
import static android.net.wifi.WifiInfo.SECURITY_TYPE_WEP;
import static android.net.wifi.sharedconnectivity.app.DeviceInfo.DEVICE_TYPE_TABLET;
import static android.net.wifi.sharedconnectivity.app.KnownNetwork.NETWORK_SOURCE_NEARBY_SELF;
import static android.net.wifi.sharedconnectivity.app.KnownNetworkConnectionStatus.CONNECTION_STATUS_SAVED;
import static android.net.wifi.sharedconnectivity.app.KnownNetworkConnectionStatus.CONNECTION_STATUS_SAVE_FAILED;
import static android.net.wifi.sharedconnectivity.app.NetworkProviderInfo.DEVICE_TYPE_TABLET;
import static com.google.common.truth.Truth.assertThat;
@@ -41,9 +41,11 @@ public class KnownNetworkConnectionStatusTest {
private static final int NETWORK_SOURCE = NETWORK_SOURCE_NEARBY_SELF;
private static final String SSID = "TEST_SSID";
private static final int[] SECURITY_TYPES = {SECURITY_TYPE_WEP};
private static final DeviceInfo DEVICE_INFO = new DeviceInfo.Builder()
.setDeviceType(DEVICE_TYPE_TABLET).setDeviceName("TEST_NAME").setModelName("TEST_MODEL")
.setConnectionStrength(2).setBatteryPercentage(50).build();
private static final NetworkProviderInfo NETWORK_PROVIDER_INFO =
new NetworkProviderInfo.Builder()
.setDeviceType(DEVICE_TYPE_TABLET).setDeviceName("TEST_NAME").setModelName(
"TEST_MODEL")
.setConnectionStrength(2).setBatteryPercentage(50).build();
private static final String SSID_1 = "TEST_SSID1";
private static final String BUNDLE_KEY = "INT-KEY";
private static final int BUNDLE_VALUE = 1;
@@ -121,8 +123,8 @@ public class KnownNetworkConnectionStatusTest {
}
private KnownNetwork.Builder buildKnownNetworkBuilder() {
KnownNetwork.Builder builder = new KnownNetwork.Builder().setNetworkSource(NETWORK_SOURCE)
.setSsid(SSID).setDeviceInfo(DEVICE_INFO);
KnownNetwork.Builder builder = new KnownNetwork.Builder().setNetworkSource(NETWORK_SOURCE)
.setSsid(SSID).setNetworkProviderInfo(NETWORK_PROVIDER_INFO);
Arrays.stream(SECURITY_TYPES).forEach(builder::addSecurityType);
return builder;
}

View File

@@ -18,10 +18,10 @@ package android.net.wifi.sharedconnectivity.app;
import static android.net.wifi.WifiInfo.SECURITY_TYPE_PSK;
import static android.net.wifi.WifiInfo.SECURITY_TYPE_WEP;
import static android.net.wifi.sharedconnectivity.app.DeviceInfo.DEVICE_TYPE_PHONE;
import static android.net.wifi.sharedconnectivity.app.DeviceInfo.DEVICE_TYPE_TABLET;
import static android.net.wifi.sharedconnectivity.app.KnownNetwork.NETWORK_SOURCE_CLOUD_SELF;
import static android.net.wifi.sharedconnectivity.app.KnownNetwork.NETWORK_SOURCE_NEARBY_SELF;
import static android.net.wifi.sharedconnectivity.app.NetworkProviderInfo.DEVICE_TYPE_PHONE;
import static android.net.wifi.sharedconnectivity.app.NetworkProviderInfo.DEVICE_TYPE_TABLET;
import static com.google.common.truth.Truth.assertThat;
@@ -43,15 +43,17 @@ public class KnownNetworkTest {
private static final int NETWORK_SOURCE = NETWORK_SOURCE_NEARBY_SELF;
private static final String SSID = "TEST_SSID";
private static final int[] SECURITY_TYPES = {SECURITY_TYPE_WEP};
private static final DeviceInfo DEVICE_INFO = new DeviceInfo.Builder()
.setDeviceType(DEVICE_TYPE_TABLET).setDeviceName("TEST_NAME").setModelName("TEST_MODEL")
.setConnectionStrength(2).setBatteryPercentage(50).build();
private static final NetworkProviderInfo NETWORK_PROVIDER_INFO =
new NetworkProviderInfo.Builder().setDeviceType(DEVICE_TYPE_TABLET)
.setDeviceName("TEST_NAME").setModelName("TEST_MODEL").setConnectionStrength(2)
.setBatteryPercentage(50).build();
private static final int NETWORK_SOURCE_1 = NETWORK_SOURCE_CLOUD_SELF;
private static final String SSID_1 = "TEST_SSID1";
private static final int[] SECURITY_TYPES_1 = {SECURITY_TYPE_PSK};
private static final DeviceInfo DEVICE_INFO_1 = new DeviceInfo.Builder()
.setDeviceType(DEVICE_TYPE_PHONE).setDeviceName("TEST_NAME_1")
.setModelName("TEST_MODEL_1").setConnectionStrength(3).setBatteryPercentage(33).build();
private static final NetworkProviderInfo NETWORK_PROVIDER_INFO1 =
new NetworkProviderInfo.Builder().setDeviceType(DEVICE_TYPE_PHONE)
.setDeviceName("TEST_NAME_1").setModelName("TEST_MODEL_1")
.setConnectionStrength(3).setBatteryPercentage(33).build();
/**
* Verifies parcel serialization/deserialization.
@@ -94,7 +96,7 @@ public class KnownNetworkTest {
Arrays.stream(SECURITY_TYPES_1).forEach(builder::addSecurityType);
assertThat(builder.build()).isNotEqualTo(network1);
builder = buildKnownNetworkBuilder().setDeviceInfo(DEVICE_INFO_1);
builder = buildKnownNetworkBuilder().setNetworkProviderInfo(NETWORK_PROVIDER_INFO1);
assertThat(builder.build()).isNotEqualTo(network1);
}
@@ -110,7 +112,7 @@ public class KnownNetworkTest {
assertThat(network.getNetworkSource()).isEqualTo(NETWORK_SOURCE);
assertThat(network.getSsid()).isEqualTo(SSID);
assertThat(network.getSecurityTypes()).containsExactlyElementsIn(securityTypes);
assertThat(network.getDeviceInfo()).isEqualTo(DEVICE_INFO);
assertThat(network.getNetworkProviderInfo()).isEqualTo(NETWORK_PROVIDER_INFO);
}
@Test
@@ -122,8 +124,8 @@ public class KnownNetworkTest {
}
private KnownNetwork.Builder buildKnownNetworkBuilder() {
KnownNetwork.Builder builder = new KnownNetwork.Builder().setNetworkSource(NETWORK_SOURCE)
.setSsid(SSID).setDeviceInfo(DEVICE_INFO);
KnownNetwork.Builder builder = new KnownNetwork.Builder().setNetworkSource(NETWORK_SOURCE)
.setSsid(SSID).setNetworkProviderInfo(NETWORK_PROVIDER_INFO);
Arrays.stream(SECURITY_TYPES).forEach(builder::addSecurityType);
return builder;
}

View File

@@ -16,8 +16,8 @@
package android.net.wifi.sharedconnectivity.app;
import static android.net.wifi.sharedconnectivity.app.DeviceInfo.DEVICE_TYPE_LAPTOP;
import static android.net.wifi.sharedconnectivity.app.DeviceInfo.DEVICE_TYPE_PHONE;
import static android.net.wifi.sharedconnectivity.app.NetworkProviderInfo.DEVICE_TYPE_LAPTOP;
import static android.net.wifi.sharedconnectivity.app.NetworkProviderInfo.DEVICE_TYPE_PHONE;
import static com.google.common.truth.Truth.assertThat;
@@ -28,10 +28,10 @@ import androidx.test.filters.SmallTest;
import org.junit.Test;
/**
* Unit tests for {@link DeviceInfo}.
* Unit tests for {@link NetworkProviderInfo}.
*/
@SmallTest
public class DeviceInfoTest {
public class NetworkProviderInfoTest {
private static final int DEVICE_TYPE = DEVICE_TYPE_PHONE;
private static final String DEVICE_NAME = "TEST_NAME";
@@ -50,7 +50,7 @@ public class DeviceInfoTest {
*/
@Test
public void testParcelOperation() {
DeviceInfo info = buildDeviceInfoBuilder().build();
NetworkProviderInfo info = buildNetworkProviderInfoBuilder().build();
Parcel parcelW = Parcel.obtain();
info.writeToParcel(parcelW, 0);
@@ -60,7 +60,7 @@ public class DeviceInfoTest {
Parcel parcelR = Parcel.obtain();
parcelR.unmarshall(bytes, 0, bytes.length);
parcelR.setDataPosition(0);
DeviceInfo fromParcel = DeviceInfo.CREATOR.createFromParcel(parcelR);
NetworkProviderInfo fromParcel = NetworkProviderInfo.CREATOR.createFromParcel(parcelR);
assertThat(fromParcel).isEqualTo(info);
assertThat(fromParcel.hashCode()).isEqualTo(info.hashCode());
@@ -71,24 +71,25 @@ public class DeviceInfoTest {
*/
@Test
public void testEqualsOperation() {
DeviceInfo info1 = buildDeviceInfoBuilder().build();
DeviceInfo info2 = buildDeviceInfoBuilder().build();
NetworkProviderInfo info1 = buildNetworkProviderInfoBuilder().build();
NetworkProviderInfo info2 = buildNetworkProviderInfoBuilder().build();
assertThat(info1).isEqualTo(info2);
DeviceInfo.Builder builder = buildDeviceInfoBuilder().setDeviceType(DEVICE_TYPE_1);
NetworkProviderInfo.Builder builder = buildNetworkProviderInfoBuilder().setDeviceType(
DEVICE_TYPE_1);
assertThat(builder.build()).isNotEqualTo(info1);
builder = buildDeviceInfoBuilder().setDeviceName(DEVICE_NAME_1);
builder = buildNetworkProviderInfoBuilder().setDeviceName(DEVICE_NAME_1);
assertThat(builder.build()).isNotEqualTo(info1);
builder = buildDeviceInfoBuilder().setModelName(DEVICE_MODEL_1);
builder = buildNetworkProviderInfoBuilder().setModelName(DEVICE_MODEL_1);
assertThat(builder.build()).isNotEqualTo(info1);
builder = buildDeviceInfoBuilder()
builder = buildNetworkProviderInfoBuilder()
.setBatteryPercentage(BATTERY_PERCENTAGE_1);
assertThat(builder.build()).isNotEqualTo(info1);
builder = buildDeviceInfoBuilder()
builder = buildNetworkProviderInfoBuilder()
.setConnectionStrength(CONNECTION_STRENGTH_1);
assertThat(builder.build()).isNotEqualTo(info1);
}
@@ -98,7 +99,7 @@ public class DeviceInfoTest {
*/
@Test
public void testGetMethods() {
DeviceInfo info = buildDeviceInfoBuilder().build();
NetworkProviderInfo info = buildNetworkProviderInfoBuilder().build();
assertThat(info.getDeviceType()).isEqualTo(DEVICE_TYPE);
assertThat(info.getDeviceName()).isEqualTo(DEVICE_NAME);
assertThat(info.getModelName()).isEqualTo(DEVICE_MODEL);
@@ -108,15 +109,16 @@ public class DeviceInfoTest {
@Test
public void testHashCode() {
DeviceInfo info1 = buildDeviceInfoBuilder().build();
DeviceInfo info2 = buildDeviceInfoBuilder().build();
NetworkProviderInfo info1 = buildNetworkProviderInfoBuilder().build();
NetworkProviderInfo info2 = buildNetworkProviderInfoBuilder().build();
assertThat(info1.hashCode()).isEqualTo(info2.hashCode());
}
private DeviceInfo.Builder buildDeviceInfoBuilder() {
return new DeviceInfo.Builder().setDeviceType(DEVICE_TYPE).setDeviceName(DEVICE_NAME)
.setModelName(DEVICE_MODEL).setBatteryPercentage(BATTERY_PERCENTAGE)
private NetworkProviderInfo.Builder buildNetworkProviderInfoBuilder() {
return new NetworkProviderInfo.Builder().setDeviceType(DEVICE_TYPE)
.setDeviceName(DEVICE_NAME).setModelName(DEVICE_MODEL)
.setBatteryPercentage(BATTERY_PERCENTAGE)
.setConnectionStrength(CONNECTION_STRENGTH);
}
}

View File

@@ -18,9 +18,9 @@ package android.net.wifi.sharedconnectivity.app;
import static android.net.wifi.WifiInfo.SECURITY_TYPE_EAP;
import static android.net.wifi.WifiInfo.SECURITY_TYPE_WEP;
import static android.net.wifi.sharedconnectivity.app.DeviceInfo.DEVICE_TYPE_TABLET;
import static android.net.wifi.sharedconnectivity.app.HotspotNetwork.NETWORK_TYPE_CELLULAR;
import static android.net.wifi.sharedconnectivity.app.KnownNetwork.NETWORK_SOURCE_NEARBY_SELF;
import static android.net.wifi.sharedconnectivity.app.TetherNetwork.NETWORK_TYPE_CELLULAR;
import static android.net.wifi.sharedconnectivity.app.NetworkProviderInfo.DEVICE_TYPE_TABLET;
import static com.google.common.truth.Truth.assertThat;
@@ -56,9 +56,11 @@ import java.util.concurrent.Executor;
@SmallTest
public class SharedConnectivityManagerTest {
private static final long DEVICE_ID = 11L;
private static final DeviceInfo DEVICE_INFO = new DeviceInfo.Builder()
.setDeviceType(DEVICE_TYPE_TABLET).setDeviceName("TEST_NAME").setModelName("TEST_MODEL")
.setConnectionStrength(2).setBatteryPercentage(50).build();
private static final NetworkProviderInfo NETWORK_PROVIDER_INFO =
new NetworkProviderInfo.Builder()
.setDeviceType(DEVICE_TYPE_TABLET).setDeviceName("TEST_NAME").setModelName(
"TEST_MODEL")
.setConnectionStrength(2).setBatteryPercentage(50).build();
private static final int NETWORK_TYPE = NETWORK_TYPE_CELLULAR;
private static final String NETWORK_NAME = "TEST_NETWORK";
private static final String HOTSPOT_SSID = "TEST_SSID";
@@ -72,13 +74,16 @@ public class SharedConnectivityManagerTest {
private static final String SERVICE_INTENT_ACTION = "TEST_INTENT_ACTION";
@Mock Context mContext;
@Mock
Context mContext;
@Mock
ISharedConnectivityService mService;
@Mock Executor mExecutor;
@Mock
Executor mExecutor;
@Mock
SharedConnectivityClientCallback mClientCallback;
@Mock Resources mResources;
@Mock
Resources mResources;
@Mock
ISharedConnectivityService.Stub mIBinder;
@@ -284,69 +289,69 @@ public class SharedConnectivityManagerTest {
}
/**
* Verifies connectTetherNetwork behavior.
* Verifies connectHotspotNetwork behavior.
*/
@Test
public void connectTetherNetwork_serviceNotConnected_shouldFail() {
TetherNetwork network = buildTetherNetwork();
public void connectHotspotNetwork_serviceNotConnected_shouldFail() {
HotspotNetwork network = buildHotspotNetwork();
SharedConnectivityManager manager = SharedConnectivityManager.create(mContext);
manager.setService(null);
assertThat(manager.connectTetherNetwork(network)).isFalse();
assertThat(manager.connectHotspotNetwork(network)).isFalse();
}
@Test
public void connectTetherNetwork() throws RemoteException {
TetherNetwork network = buildTetherNetwork();
public void connectHotspotNetwork() throws RemoteException {
HotspotNetwork network = buildHotspotNetwork();
SharedConnectivityManager manager = SharedConnectivityManager.create(mContext);
manager.setService(mService);
manager.connectTetherNetwork(network);
manager.connectHotspotNetwork(network);
verify(mService).connectTetherNetwork(network);
verify(mService).connectHotspotNetwork(network);
}
@Test
public void connectTetherNetwork_remoteException_shouldFail() throws RemoteException {
TetherNetwork network = buildTetherNetwork();
public void connectHotspotNetwork_remoteException_shouldFail() throws RemoteException {
HotspotNetwork network = buildHotspotNetwork();
SharedConnectivityManager manager = SharedConnectivityManager.create(mContext);
manager.setService(mService);
doThrow(new RemoteException()).when(mService).connectTetherNetwork(network);
doThrow(new RemoteException()).when(mService).connectHotspotNetwork(network);
assertThat(manager.connectTetherNetwork(network)).isFalse();
assertThat(manager.connectHotspotNetwork(network)).isFalse();
}
/**
* Verifies disconnectTetherNetwork behavior.
* Verifies disconnectHotspotNetwork behavior.
*/
@Test
public void disconnectTetherNetwork_serviceNotConnected_shouldFail() {
TetherNetwork network = buildTetherNetwork();
public void disconnectHotspotNetwork_serviceNotConnected_shouldFail() {
HotspotNetwork network = buildHotspotNetwork();
SharedConnectivityManager manager = SharedConnectivityManager.create(mContext);
manager.setService(null);
assertThat(manager.disconnectTetherNetwork(network)).isFalse();
assertThat(manager.disconnectHotspotNetwork(network)).isFalse();
}
@Test
public void disconnectTetherNetwork() throws RemoteException {
TetherNetwork network = buildTetherNetwork();
public void disconnectHotspotNetwork() throws RemoteException {
HotspotNetwork network = buildHotspotNetwork();
SharedConnectivityManager manager = SharedConnectivityManager.create(mContext);
manager.setService(mService);
manager.disconnectTetherNetwork(network);
manager.disconnectHotspotNetwork(network);
verify(mService).disconnectTetherNetwork(network);
verify(mService).disconnectHotspotNetwork(network);
}
@Test
public void disconnectTetherNetwork_remoteException_shouldFail() throws RemoteException {
TetherNetwork network = buildTetherNetwork();
public void disconnectHotspotNetwork_remoteException_shouldFail() throws RemoteException {
HotspotNetwork network = buildHotspotNetwork();
SharedConnectivityManager manager = SharedConnectivityManager.create(mContext);
manager.setService(mService);
doThrow(new RemoteException()).when(mService).disconnectTetherNetwork(any());
doThrow(new RemoteException()).when(mService).disconnectHotspotNetwork(any());
assertThat(manager.disconnectTetherNetwork(network)).isFalse();
assertThat(manager.disconnectHotspotNetwork(network)).isFalse();
}
/**
@@ -419,7 +424,7 @@ public class SharedConnectivityManagerTest {
* Verify getters.
*/
@Test
public void getTetherNetworks_serviceNotConnected_shouldReturnEmptyList() {
public void getHotspotNetworks_serviceNotConnected_shouldReturnEmptyList() {
SharedConnectivityManager manager = SharedConnectivityManager.create(mContext);
manager.setService(null);
@@ -427,22 +432,22 @@ public class SharedConnectivityManagerTest {
}
@Test
public void getTetherNetworks_remoteException_shouldReturnEmptyList() throws RemoteException {
public void getHotspotNetworks_remoteException_shouldReturnEmptyList() throws RemoteException {
SharedConnectivityManager manager = SharedConnectivityManager.create(mContext);
manager.setService(mService);
doThrow(new RemoteException()).when(mService).getTetherNetworks();
doThrow(new RemoteException()).when(mService).getHotspotNetworks();
assertThat(manager.getKnownNetworks()).isEmpty();
}
@Test
public void getTetherNetworks_shouldReturnNetworksList() throws RemoteException {
public void getHotspotNetworks_shouldReturnNetworksList() throws RemoteException {
SharedConnectivityManager manager = SharedConnectivityManager.create(mContext);
List<TetherNetwork> networks = List.of(buildTetherNetwork());
List<HotspotNetwork> networks = List.of(buildHotspotNetwork());
manager.setService(mService);
when(mService.getTetherNetworks()).thenReturn(networks);
when(mService.getHotspotNetworks()).thenReturn(networks);
assertThat(manager.getTetherNetworks()).containsExactly(buildTetherNetwork());
assertThat(manager.getHotspotNetworks()).containsExactly(buildHotspotNetwork());
}
@Test
@@ -502,35 +507,35 @@ public class SharedConnectivityManagerTest {
}
@Test
public void getTetherNetworkConnectionStatus_serviceNotConnected_shouldReturnNull()
public void getHotspotNetworkConnectionStatus_serviceNotConnected_shouldReturnNull()
throws RemoteException {
SharedConnectivityManager manager = SharedConnectivityManager.create(mContext);
manager.setService(null);
assertThat(manager.getTetherNetworkConnectionStatus()).isNull();
assertThat(manager.getHotspotNetworkConnectionStatus()).isNull();
}
@Test
public void getTetherNetworkConnectionStatus_remoteException_shouldReturnNull()
public void getHotspotNetworkConnectionStatus_remoteException_shouldReturnNull()
throws RemoteException {
SharedConnectivityManager manager = SharedConnectivityManager.create(mContext);
manager.setService(mService);
doThrow(new RemoteException()).when(mService).getTetherNetworkConnectionStatus();
doThrow(new RemoteException()).when(mService).getHotspotNetworkConnectionStatus();
assertThat(manager.getTetherNetworkConnectionStatus()).isNull();
assertThat(manager.getHotspotNetworkConnectionStatus()).isNull();
}
@Test
public void getTetherNetworkConnectionStatus_serviceConnected_shouldReturnStatus()
public void getHotspotNetworkConnectionStatus_serviceConnected_shouldReturnStatus()
throws RemoteException {
SharedConnectivityManager manager = SharedConnectivityManager.create(mContext);
TetherNetworkConnectionStatus status = new TetherNetworkConnectionStatus.Builder()
.setStatus(TetherNetworkConnectionStatus.CONNECTION_STATUS_ENABLING_HOTSPOT)
HotspotNetworkConnectionStatus status = new HotspotNetworkConnectionStatus.Builder()
.setStatus(HotspotNetworkConnectionStatus.CONNECTION_STATUS_ENABLING_HOTSPOT)
.setExtras(new Bundle()).build();
manager.setService(mService);
when(mService.getTetherNetworkConnectionStatus()).thenReturn(status);
when(mService.getHotspotNetworkConnectionStatus()).thenReturn(status);
assertThat(manager.getTetherNetworkConnectionStatus()).isEqualTo(status);
assertThat(manager.getHotspotNetworkConnectionStatus()).isEqualTo(status);
}
@Test
@@ -571,11 +576,11 @@ public class SharedConnectivityManagerTest {
.thenReturn(SERVICE_PACKAGE_NAME, SERVICE_INTENT_ACTION);
}
private TetherNetwork buildTetherNetwork() {
TetherNetwork.Builder builder = new TetherNetwork.Builder()
private HotspotNetwork buildHotspotNetwork() {
HotspotNetwork.Builder builder = new HotspotNetwork.Builder()
.setDeviceId(DEVICE_ID)
.setDeviceInfo(DEVICE_INFO)
.setNetworkType(NETWORK_TYPE)
.setNetworkProviderInfo(NETWORK_PROVIDER_INFO)
.setHostNetworkType(NETWORK_TYPE)
.setNetworkName(NETWORK_NAME)
.setHotspotSsid(HOTSPOT_SSID);
Arrays.stream(HOTSPOT_SECURITY_TYPES).forEach(builder::addHotspotSecurityType);
@@ -583,8 +588,8 @@ public class SharedConnectivityManagerTest {
}
private KnownNetwork buildKnownNetwork() {
KnownNetwork.Builder builder = new KnownNetwork.Builder().setNetworkSource(NETWORK_SOURCE)
.setSsid(SSID).setDeviceInfo(DEVICE_INFO);
KnownNetwork.Builder builder = new KnownNetwork.Builder().setNetworkSource(NETWORK_SOURCE)
.setSsid(SSID).setNetworkProviderInfo(NETWORK_PROVIDER_INFO);
Arrays.stream(SECURITY_TYPES).forEach(builder::addSecurityType);
return builder.build();
}

View File

@@ -18,11 +18,11 @@ package android.net.wifi.sharedconnectivity.service;
import static android.net.wifi.WifiInfo.SECURITY_TYPE_EAP;
import static android.net.wifi.WifiInfo.SECURITY_TYPE_WEP;
import static android.net.wifi.sharedconnectivity.app.DeviceInfo.DEVICE_TYPE_TABLET;
import static android.net.wifi.sharedconnectivity.app.HotspotNetwork.NETWORK_TYPE_CELLULAR;
import static android.net.wifi.sharedconnectivity.app.HotspotNetworkConnectionStatus.CONNECTION_STATUS_UNKNOWN;
import static android.net.wifi.sharedconnectivity.app.KnownNetwork.NETWORK_SOURCE_NEARBY_SELF;
import static android.net.wifi.sharedconnectivity.app.KnownNetworkConnectionStatus.CONNECTION_STATUS_SAVED;
import static android.net.wifi.sharedconnectivity.app.TetherNetwork.NETWORK_TYPE_CELLULAR;
import static android.net.wifi.sharedconnectivity.app.TetherNetworkConnectionStatus.CONNECTION_STATUS_UNKNOWN;
import static android.net.wifi.sharedconnectivity.app.NetworkProviderInfo.DEVICE_TYPE_TABLET;
import static com.google.common.truth.Truth.assertThat;
@@ -30,12 +30,12 @@ import static org.mockito.Mockito.when;
import android.content.Context;
import android.content.Intent;
import android.net.wifi.sharedconnectivity.app.DeviceInfo;
import android.net.wifi.sharedconnectivity.app.HotspotNetwork;
import android.net.wifi.sharedconnectivity.app.HotspotNetworkConnectionStatus;
import android.net.wifi.sharedconnectivity.app.KnownNetwork;
import android.net.wifi.sharedconnectivity.app.KnownNetworkConnectionStatus;
import android.net.wifi.sharedconnectivity.app.NetworkProviderInfo;
import android.net.wifi.sharedconnectivity.app.SharedConnectivitySettingsState;
import android.net.wifi.sharedconnectivity.app.TetherNetwork;
import android.net.wifi.sharedconnectivity.app.TetherNetworkConnectionStatus;
import android.os.Bundle;
import android.os.Looper;
import android.os.RemoteException;
@@ -55,27 +55,31 @@ import java.util.List;
*/
@SmallTest
public class SharedConnectivityServiceTest {
private static final DeviceInfo DEVICE_INFO = new DeviceInfo.Builder()
.setDeviceType(DEVICE_TYPE_TABLET).setDeviceName("TEST_NAME").setModelName("TEST_MODEL")
.setConnectionStrength(2).setBatteryPercentage(50).build();
private static final TetherNetwork TETHER_NETWORK =
new TetherNetwork.Builder().setDeviceId(1).setDeviceInfo(DEVICE_INFO)
.setNetworkType(NETWORK_TYPE_CELLULAR).setNetworkName("TEST_NETWORK")
private static final NetworkProviderInfo NETWORK_PROVIDER_INFO =
new NetworkProviderInfo.Builder()
.setDeviceType(DEVICE_TYPE_TABLET).setDeviceName("TEST_NAME").setModelName(
"TEST_MODEL")
.setConnectionStrength(2).setBatteryPercentage(50).build();
private static final HotspotNetwork HOTSPOT_NETWORK =
new HotspotNetwork.Builder().setDeviceId(1).setNetworkProviderInfo(
NETWORK_PROVIDER_INFO)
.setHostNetworkType(NETWORK_TYPE_CELLULAR).setNetworkName("TEST_NETWORK")
.setHotspotSsid("TEST_SSID").setHotspotBssid("TEST_BSSID")
.addHotspotSecurityType(SECURITY_TYPE_WEP)
.addHotspotSecurityType(SECURITY_TYPE_EAP).build();
private static final List<TetherNetwork> TETHER_NETWORKS = List.of(TETHER_NETWORK);
private static final List<HotspotNetwork> HOTSPOT_NETWORKS = List.of(HOTSPOT_NETWORK);
private static final KnownNetwork KNOWN_NETWORK =
new KnownNetwork.Builder().setNetworkSource(NETWORK_SOURCE_NEARBY_SELF)
.setSsid("TEST_SSID").addSecurityType(SECURITY_TYPE_WEP)
.addSecurityType(SECURITY_TYPE_EAP).setDeviceInfo(DEVICE_INFO).build();
.addSecurityType(SECURITY_TYPE_EAP).setNetworkProviderInfo(
NETWORK_PROVIDER_INFO).build();
private static final List<KnownNetwork> KNOWN_NETWORKS = List.of(KNOWN_NETWORK);
private static final SharedConnectivitySettingsState SETTINGS_STATE =
new SharedConnectivitySettingsState.Builder().setInstantTetherEnabled(true)
.setExtras(Bundle.EMPTY).build();
private static final TetherNetworkConnectionStatus TETHER_NETWORK_CONNECTION_STATUS =
new TetherNetworkConnectionStatus.Builder().setStatus(CONNECTION_STATUS_UNKNOWN)
.setTetherNetwork(TETHER_NETWORK).setExtras(Bundle.EMPTY).build();
private static final HotspotNetworkConnectionStatus TETHER_NETWORK_CONNECTION_STATUS =
new HotspotNetworkConnectionStatus.Builder().setStatus(CONNECTION_STATUS_UNKNOWN)
.setHotspotNetwork(HOTSPOT_NETWORK).setExtras(Bundle.EMPTY).build();
private static final KnownNetworkConnectionStatus KNOWN_NETWORK_CONNECTION_STATUS =
new KnownNetworkConnectionStatus.Builder().setStatus(CONNECTION_STATUS_SAVED)
.setKnownNetwork(KNOWN_NETWORK).setExtras(Bundle.EMPTY).build();
@@ -89,16 +93,20 @@ public class SharedConnectivityServiceTest {
}
@Override
public void onConnectTetherNetwork(@NonNull TetherNetwork network) {}
public void onConnectHotspotNetwork(@NonNull HotspotNetwork network) {
}
@Override
public void onDisconnectTetherNetwork(@NonNull TetherNetwork network) {}
public void onDisconnectHotspotNetwork(@NonNull HotspotNetwork network) {
}
@Override
public void onConnectKnownNetwork(@NonNull KnownNetwork network) {}
public void onConnectKnownNetwork(@NonNull KnownNetwork network) {
}
@Override
public void onForgetKnownNetwork(@NonNull KnownNetwork network) {}
public void onForgetKnownNetwork(@NonNull KnownNetwork network) {
}
}
@Before
@@ -115,15 +123,15 @@ public class SharedConnectivityServiceTest {
}
@Test
public void getTetherNetworks() throws RemoteException {
public void getHotspotNetworks() throws RemoteException {
SharedConnectivityService service = createService();
ISharedConnectivityService.Stub binder =
(ISharedConnectivityService.Stub) service.onBind(new Intent());
service.setTetherNetworks(TETHER_NETWORKS);
service.setHotspotNetworks(HOTSPOT_NETWORKS);
assertThat(binder.getTetherNetworks())
.containsExactlyElementsIn(List.copyOf(TETHER_NETWORKS));
assertThat(binder.getHotspotNetworks())
.containsExactlyElementsIn(List.copyOf(HOTSPOT_NETWORKS));
}
@Test
@@ -150,14 +158,14 @@ public class SharedConnectivityServiceTest {
}
@Test
public void updateTetherNetworkConnectionStatus() throws RemoteException {
public void updateHotspotNetworkConnectionStatus() throws RemoteException {
SharedConnectivityService service = createService();
ISharedConnectivityService.Stub binder =
(ISharedConnectivityService.Stub) service.onBind(new Intent());
service.updateTetherNetworkConnectionStatus(TETHER_NETWORK_CONNECTION_STATUS);
service.updateHotspotNetworkConnectionStatus(TETHER_NETWORK_CONNECTION_STATUS);
assertThat(binder.getTetherNetworkConnectionStatus())
assertThat(binder.getHotspotNetworkConnectionStatus())
.isEqualTo(TETHER_NETWORK_CONNECTION_STATUS);
}