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:
committed by
Andrew Sapperstein
parent
44d3fa63ff
commit
a6c820b5dd
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -16,4 +16,4 @@
|
||||
|
||||
package android.net.wifi.sharedconnectivity.app;
|
||||
|
||||
parcelable DeviceInfo;
|
||||
parcelable HotspotNetwork;
|
||||
@@ -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)
|
||||
@@ -16,4 +16,4 @@
|
||||
|
||||
package android.net.wifi.sharedconnectivity.app;
|
||||
|
||||
parcelable TetherNetworkConnectionStatus;
|
||||
parcelable HotspotNetworkConnectionStatus;
|
||||
@@ -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();
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,4 +16,4 @@
|
||||
|
||||
package android.net.wifi.sharedconnectivity.app;
|
||||
|
||||
parcelable TetherNetwork;
|
||||
parcelable NetworkProviderInfo;
|
||||
@@ -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)
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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);
|
||||
@@ -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);
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user