Loading core/api/system-current.txt +3 −1 Original line number Diff line number Diff line Loading @@ -10141,16 +10141,18 @@ package android.net.wifi.sharedconnectivity.app { public final class SharedConnectivitySettingsState implements android.os.Parcelable { method public int describeContents(); method @NonNull public android.os.Bundle getExtras(); method @Nullable public android.app.PendingIntent getInstantTetherSettingsPendingIntent(); method public boolean isInstantTetherEnabled(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.net.wifi.sharedconnectivity.app.SharedConnectivitySettingsState> CREATOR; } public static final class SharedConnectivitySettingsState.Builder { ctor public SharedConnectivitySettingsState.Builder(); ctor public SharedConnectivitySettingsState.Builder(@NonNull android.content.Context); method @NonNull public android.net.wifi.sharedconnectivity.app.SharedConnectivitySettingsState build(); method @NonNull public android.net.wifi.sharedconnectivity.app.SharedConnectivitySettingsState.Builder setExtras(@NonNull android.os.Bundle); method @NonNull public android.net.wifi.sharedconnectivity.app.SharedConnectivitySettingsState.Builder setInstantTetherEnabled(boolean); method @NonNull public android.net.wifi.sharedconnectivity.app.SharedConnectivitySettingsState.Builder setInstantTetherSettingsPendingIntent(@NonNull android.content.Intent); } } wifi/java/src/android/net/wifi/sharedconnectivity/app/SharedConnectivitySettingsState.java +56 −7 Original line number Diff line number Diff line Loading @@ -17,7 +17,11 @@ package android.net.wifi.sharedconnectivity.app; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SystemApi; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.os.Parcel; import android.os.Parcelable; Loading @@ -37,6 +41,7 @@ import java.util.Objects; public final class SharedConnectivitySettingsState implements Parcelable { private final boolean mInstantTetherEnabled; private final PendingIntent mInstantTetherSettingsPendingIntent; private final Bundle mExtras; /** Loading @@ -44,9 +49,13 @@ public final class SharedConnectivitySettingsState implements Parcelable { */ public static final class Builder { private boolean mInstantTetherEnabled; private Intent mInstantTetherSettingsIntent; private final Context mContext; private Bundle mExtras; public Builder() {} public Builder(@NonNull Context context) { mContext = context; } /** * Sets the state of Instant Tether in settings Loading @@ -59,6 +68,20 @@ public final class SharedConnectivitySettingsState implements Parcelable { return this; } /** * Sets the intent that will open the Instant Tether settings page. * The intent will be stored as a {@link PendingIntent} in the settings object. The pending * intent will be set as {@link PendingIntent#FLAG_IMMUTABLE} and * {@link PendingIntent#FLAG_ONE_SHOT}. * * @return Returns the Builder object. */ @NonNull public Builder setInstantTetherSettingsPendingIntent(@NonNull Intent intent) { mInstantTetherSettingsIntent = intent; return this; } /** * Sets the extras bundle * Loading @@ -77,12 +100,22 @@ public final class SharedConnectivitySettingsState implements Parcelable { */ @NonNull public SharedConnectivitySettingsState build() { return new SharedConnectivitySettingsState(mInstantTetherEnabled, mExtras); if (mInstantTetherSettingsIntent != null) { PendingIntent pendingIntent = PendingIntent.getActivity(mContext, 0, mInstantTetherSettingsIntent, PendingIntent.FLAG_IMMUTABLE | PendingIntent.FLAG_ONE_SHOT); return new SharedConnectivitySettingsState(mInstantTetherEnabled, pendingIntent, mExtras); } return new SharedConnectivitySettingsState(mInstantTetherEnabled, null, mExtras); } } private SharedConnectivitySettingsState(boolean instantTetherEnabled, Bundle extras) { private SharedConnectivitySettingsState(boolean instantTetherEnabled, PendingIntent pendingIntent, Bundle extras) { mInstantTetherEnabled = instantTetherEnabled; mInstantTetherSettingsPendingIntent = pendingIntent; mExtras = extras; } Loading @@ -95,6 +128,16 @@ public final class SharedConnectivitySettingsState implements Parcelable { return mInstantTetherEnabled; } /** * Gets the pending intent to open Instant Tether settings page. * * @return Returns the pending intent that opens the settings page, null if none. */ @Nullable public PendingIntent getInstantTetherSettingsPendingIntent() { return mInstantTetherSettingsPendingIntent; } /** * Gets the extras Bundle. * Loading @@ -109,12 +152,14 @@ public final class SharedConnectivitySettingsState implements Parcelable { public boolean equals(Object obj) { if (!(obj instanceof SharedConnectivitySettingsState)) return false; SharedConnectivitySettingsState other = (SharedConnectivitySettingsState) obj; return mInstantTetherEnabled == other.isInstantTetherEnabled(); return mInstantTetherEnabled == other.isInstantTetherEnabled() && Objects.equals(mInstantTetherSettingsPendingIntent, other.getInstantTetherSettingsPendingIntent()); } @Override public int hashCode() { return Objects.hash(mInstantTetherEnabled); return Objects.hash(mInstantTetherEnabled, mInstantTetherSettingsPendingIntent); } @Override Loading @@ -124,6 +169,7 @@ public final class SharedConnectivitySettingsState implements Parcelable { @Override public void writeToParcel(@NonNull Parcel dest, int flags) { mInstantTetherSettingsPendingIntent.writeToParcel(dest, 0); dest.writeBoolean(mInstantTetherEnabled); dest.writeBundle(mExtras); } Loading @@ -135,8 +181,10 @@ public final class SharedConnectivitySettingsState implements Parcelable { */ @NonNull public static SharedConnectivitySettingsState readFromParcel(@NonNull Parcel in) { return new SharedConnectivitySettingsState(in.readBoolean(), in.readBundle()); PendingIntent pendingIntent = PendingIntent.CREATOR.createFromParcel(in); boolean instantTetherEnabled = in.readBoolean(); Bundle extras = in.readBundle(); return new SharedConnectivitySettingsState(instantTetherEnabled, pendingIntent, extras); } @NonNull Loading @@ -156,6 +204,7 @@ public final class SharedConnectivitySettingsState implements Parcelable { public String toString() { return new StringBuilder("SharedConnectivitySettingsState[") .append("instantTetherEnabled=").append(mInstantTetherEnabled) .append("PendingIntent=").append(mInstantTetherSettingsPendingIntent.toString()) .append("extras=").append(mExtras.toString()) .append("]").toString(); } Loading wifi/java/src/android/net/wifi/sharedconnectivity/service/SharedConnectivityService.java +8 −3 Original line number Diff line number Diff line Loading @@ -68,9 +68,7 @@ public abstract class SharedConnectivityService extends Service { new RemoteCallbackList<>(); 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 SharedConnectivitySettingsState mSettingsState = null; private HotspotNetworkConnectionStatus mHotspotNetworkConnectionStatus = new HotspotNetworkConnectionStatus.Builder() .setStatus(HotspotNetworkConnectionStatus.CONNECTION_STATUS_UNKNOWN) Loading Loading @@ -202,6 +200,13 @@ public abstract class SharedConnectivityService extends Service { @Override public SharedConnectivitySettingsState getSettingsState() { checkPermissions(); // Done lazily since creating it needs a context. if (mSettingsState == null) { mSettingsState = new SharedConnectivitySettingsState .Builder(getApplicationContext()) .setInstantTetherEnabled(false) .setExtras(Bundle.EMPTY).build(); } return mSettingsState; } Loading wifi/tests/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ android_test { static_libs: [ "androidx.test.rules", "androidx.test.core", "frameworks-base-testutils", "guava", "mockito-target-minus-junit4", Loading wifi/tests/src/android/net/wifi/sharedconnectivity/app/SharedConnectivityManagerTest.java +3 −2 Original line number Diff line number Diff line Loading @@ -497,8 +497,9 @@ public class SharedConnectivityManagerTest { @Test public void getSettingsState_serviceConnected_shouldReturnState() throws RemoteException { SharedConnectivityManager manager = SharedConnectivityManager.create(mContext); SharedConnectivitySettingsState state = new SharedConnectivitySettingsState.Builder() .setInstantTetherEnabled(true).setExtras(new Bundle()).build(); SharedConnectivitySettingsState state = new SharedConnectivitySettingsState.Builder(mContext).setInstantTetherEnabled(true) .setExtras(new Bundle()).build(); manager.setService(mService); when(mService.getSettingsState()).thenReturn(state); Loading Loading
core/api/system-current.txt +3 −1 Original line number Diff line number Diff line Loading @@ -10141,16 +10141,18 @@ package android.net.wifi.sharedconnectivity.app { public final class SharedConnectivitySettingsState implements android.os.Parcelable { method public int describeContents(); method @NonNull public android.os.Bundle getExtras(); method @Nullable public android.app.PendingIntent getInstantTetherSettingsPendingIntent(); method public boolean isInstantTetherEnabled(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.net.wifi.sharedconnectivity.app.SharedConnectivitySettingsState> CREATOR; } public static final class SharedConnectivitySettingsState.Builder { ctor public SharedConnectivitySettingsState.Builder(); ctor public SharedConnectivitySettingsState.Builder(@NonNull android.content.Context); method @NonNull public android.net.wifi.sharedconnectivity.app.SharedConnectivitySettingsState build(); method @NonNull public android.net.wifi.sharedconnectivity.app.SharedConnectivitySettingsState.Builder setExtras(@NonNull android.os.Bundle); method @NonNull public android.net.wifi.sharedconnectivity.app.SharedConnectivitySettingsState.Builder setInstantTetherEnabled(boolean); method @NonNull public android.net.wifi.sharedconnectivity.app.SharedConnectivitySettingsState.Builder setInstantTetherSettingsPendingIntent(@NonNull android.content.Intent); } }
wifi/java/src/android/net/wifi/sharedconnectivity/app/SharedConnectivitySettingsState.java +56 −7 Original line number Diff line number Diff line Loading @@ -17,7 +17,11 @@ package android.net.wifi.sharedconnectivity.app; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SystemApi; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.os.Parcel; import android.os.Parcelable; Loading @@ -37,6 +41,7 @@ import java.util.Objects; public final class SharedConnectivitySettingsState implements Parcelable { private final boolean mInstantTetherEnabled; private final PendingIntent mInstantTetherSettingsPendingIntent; private final Bundle mExtras; /** Loading @@ -44,9 +49,13 @@ public final class SharedConnectivitySettingsState implements Parcelable { */ public static final class Builder { private boolean mInstantTetherEnabled; private Intent mInstantTetherSettingsIntent; private final Context mContext; private Bundle mExtras; public Builder() {} public Builder(@NonNull Context context) { mContext = context; } /** * Sets the state of Instant Tether in settings Loading @@ -59,6 +68,20 @@ public final class SharedConnectivitySettingsState implements Parcelable { return this; } /** * Sets the intent that will open the Instant Tether settings page. * The intent will be stored as a {@link PendingIntent} in the settings object. The pending * intent will be set as {@link PendingIntent#FLAG_IMMUTABLE} and * {@link PendingIntent#FLAG_ONE_SHOT}. * * @return Returns the Builder object. */ @NonNull public Builder setInstantTetherSettingsPendingIntent(@NonNull Intent intent) { mInstantTetherSettingsIntent = intent; return this; } /** * Sets the extras bundle * Loading @@ -77,12 +100,22 @@ public final class SharedConnectivitySettingsState implements Parcelable { */ @NonNull public SharedConnectivitySettingsState build() { return new SharedConnectivitySettingsState(mInstantTetherEnabled, mExtras); if (mInstantTetherSettingsIntent != null) { PendingIntent pendingIntent = PendingIntent.getActivity(mContext, 0, mInstantTetherSettingsIntent, PendingIntent.FLAG_IMMUTABLE | PendingIntent.FLAG_ONE_SHOT); return new SharedConnectivitySettingsState(mInstantTetherEnabled, pendingIntent, mExtras); } return new SharedConnectivitySettingsState(mInstantTetherEnabled, null, mExtras); } } private SharedConnectivitySettingsState(boolean instantTetherEnabled, Bundle extras) { private SharedConnectivitySettingsState(boolean instantTetherEnabled, PendingIntent pendingIntent, Bundle extras) { mInstantTetherEnabled = instantTetherEnabled; mInstantTetherSettingsPendingIntent = pendingIntent; mExtras = extras; } Loading @@ -95,6 +128,16 @@ public final class SharedConnectivitySettingsState implements Parcelable { return mInstantTetherEnabled; } /** * Gets the pending intent to open Instant Tether settings page. * * @return Returns the pending intent that opens the settings page, null if none. */ @Nullable public PendingIntent getInstantTetherSettingsPendingIntent() { return mInstantTetherSettingsPendingIntent; } /** * Gets the extras Bundle. * Loading @@ -109,12 +152,14 @@ public final class SharedConnectivitySettingsState implements Parcelable { public boolean equals(Object obj) { if (!(obj instanceof SharedConnectivitySettingsState)) return false; SharedConnectivitySettingsState other = (SharedConnectivitySettingsState) obj; return mInstantTetherEnabled == other.isInstantTetherEnabled(); return mInstantTetherEnabled == other.isInstantTetherEnabled() && Objects.equals(mInstantTetherSettingsPendingIntent, other.getInstantTetherSettingsPendingIntent()); } @Override public int hashCode() { return Objects.hash(mInstantTetherEnabled); return Objects.hash(mInstantTetherEnabled, mInstantTetherSettingsPendingIntent); } @Override Loading @@ -124,6 +169,7 @@ public final class SharedConnectivitySettingsState implements Parcelable { @Override public void writeToParcel(@NonNull Parcel dest, int flags) { mInstantTetherSettingsPendingIntent.writeToParcel(dest, 0); dest.writeBoolean(mInstantTetherEnabled); dest.writeBundle(mExtras); } Loading @@ -135,8 +181,10 @@ public final class SharedConnectivitySettingsState implements Parcelable { */ @NonNull public static SharedConnectivitySettingsState readFromParcel(@NonNull Parcel in) { return new SharedConnectivitySettingsState(in.readBoolean(), in.readBundle()); PendingIntent pendingIntent = PendingIntent.CREATOR.createFromParcel(in); boolean instantTetherEnabled = in.readBoolean(); Bundle extras = in.readBundle(); return new SharedConnectivitySettingsState(instantTetherEnabled, pendingIntent, extras); } @NonNull Loading @@ -156,6 +204,7 @@ public final class SharedConnectivitySettingsState implements Parcelable { public String toString() { return new StringBuilder("SharedConnectivitySettingsState[") .append("instantTetherEnabled=").append(mInstantTetherEnabled) .append("PendingIntent=").append(mInstantTetherSettingsPendingIntent.toString()) .append("extras=").append(mExtras.toString()) .append("]").toString(); } Loading
wifi/java/src/android/net/wifi/sharedconnectivity/service/SharedConnectivityService.java +8 −3 Original line number Diff line number Diff line Loading @@ -68,9 +68,7 @@ public abstract class SharedConnectivityService extends Service { new RemoteCallbackList<>(); 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 SharedConnectivitySettingsState mSettingsState = null; private HotspotNetworkConnectionStatus mHotspotNetworkConnectionStatus = new HotspotNetworkConnectionStatus.Builder() .setStatus(HotspotNetworkConnectionStatus.CONNECTION_STATUS_UNKNOWN) Loading Loading @@ -202,6 +200,13 @@ public abstract class SharedConnectivityService extends Service { @Override public SharedConnectivitySettingsState getSettingsState() { checkPermissions(); // Done lazily since creating it needs a context. if (mSettingsState == null) { mSettingsState = new SharedConnectivitySettingsState .Builder(getApplicationContext()) .setInstantTetherEnabled(false) .setExtras(Bundle.EMPTY).build(); } return mSettingsState; } Loading
wifi/tests/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ android_test { static_libs: [ "androidx.test.rules", "androidx.test.core", "frameworks-base-testutils", "guava", "mockito-target-minus-junit4", Loading
wifi/tests/src/android/net/wifi/sharedconnectivity/app/SharedConnectivityManagerTest.java +3 −2 Original line number Diff line number Diff line Loading @@ -497,8 +497,9 @@ public class SharedConnectivityManagerTest { @Test public void getSettingsState_serviceConnected_shouldReturnState() throws RemoteException { SharedConnectivityManager manager = SharedConnectivityManager.create(mContext); SharedConnectivitySettingsState state = new SharedConnectivitySettingsState.Builder() .setInstantTetherEnabled(true).setExtras(new Bundle()).build(); SharedConnectivitySettingsState state = new SharedConnectivitySettingsState.Builder(mContext).setInstantTetherEnabled(true) .setExtras(new Bundle()).build(); manager.setService(mService); when(mService.getSettingsState()).thenReturn(state); Loading