Loading core/api/system-current.txt +2 −2 Original line number Diff line number Diff line Loading @@ -10178,11 +10178,11 @@ package android.net.wifi.sharedconnectivity.app { } public static final class SharedConnectivitySettingsState.Builder { ctor public SharedConnectivitySettingsState.Builder(@NonNull android.content.Context); ctor public SharedConnectivitySettingsState.Builder(); 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); method @NonNull public android.net.wifi.sharedconnectivity.app.SharedConnectivitySettingsState.Builder setInstantTetherSettingsPendingIntent(@NonNull android.app.PendingIntent); } } wifi/java/src/android/net/wifi/sharedconnectivity/app/SharedConnectivitySettingsState.java +15 −22 Original line number Diff line number Diff line Loading @@ -20,8 +20,6 @@ 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 Loading @@ -49,14 +47,9 @@ public final class SharedConnectivitySettingsState implements Parcelable { */ public static final class Builder { private boolean mInstantTetherEnabled; private Intent mInstantTetherSettingsIntent; private final Context mContext; private PendingIntent mInstantTetherSettingsPendingIntent; private Bundle mExtras = Bundle.EMPTY; public Builder(@NonNull Context context) { mContext = context; } /** * Sets the state of Instant Tether in settings * Loading @@ -69,16 +62,14 @@ public final class SharedConnectivitySettingsState implements Parcelable { } /** * 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}. * Sets the {@link PendingIntent} that will open the Instant Tether settings page. * The pending intent must be set as {@link PendingIntent#FLAG_IMMUTABLE}. * * @return Returns the Builder object. */ @NonNull public Builder setInstantTetherSettingsPendingIntent(@NonNull Intent intent) { mInstantTetherSettingsIntent = intent; public Builder setInstantTetherSettingsPendingIntent(@NonNull PendingIntent pendingIntent) { mInstantTetherSettingsPendingIntent = pendingIntent; return this; } Loading @@ -100,19 +91,21 @@ public final class SharedConnectivitySettingsState implements Parcelable { */ @NonNull public SharedConnectivitySettingsState build() { if (mInstantTetherSettingsIntent != null) { PendingIntent pendingIntent = PendingIntent.getActivity(mContext, 0, mInstantTetherSettingsIntent, PendingIntent.FLAG_IMMUTABLE | PendingIntent.FLAG_ONE_SHOT); return new SharedConnectivitySettingsState(mInstantTetherEnabled, pendingIntent, mExtras); mInstantTetherSettingsPendingIntent, mExtras); } } return new SharedConnectivitySettingsState(mInstantTetherEnabled, null, mExtras); private static void validate(PendingIntent pendingIntent) { if (pendingIntent != null && !pendingIntent.isImmutable()) { throw new IllegalArgumentException("Pending intent must be immutable"); } } private SharedConnectivitySettingsState(boolean instantTetherEnabled, PendingIntent pendingIntent, @NonNull Bundle extras) { validate(pendingIntent); mInstantTetherEnabled = instantTetherEnabled; mInstantTetherSettingsPendingIntent = pendingIntent; mExtras = extras; Loading wifi/java/src/android/net/wifi/sharedconnectivity/service/SharedConnectivityService.java +1 −1 Original line number Diff line number Diff line Loading @@ -206,7 +206,7 @@ public abstract class SharedConnectivityService extends Service { // Done lazily since creating it needs a context. if (mSettingsState == null) { mSettingsState = new SharedConnectivitySettingsState .Builder(getApplicationContext()) .Builder() .setInstantTetherEnabled(false) .setExtras(Bundle.EMPTY).build(); } Loading wifi/tests/src/android/net/wifi/sharedconnectivity/app/SharedConnectivityManagerTest.java +1 −1 Original line number Diff line number Diff line Loading @@ -498,7 +498,7 @@ public class SharedConnectivityManagerTest { public void getSettingsState_serviceConnected_shouldReturnState() throws RemoteException { SharedConnectivityManager manager = SharedConnectivityManager.create(mContext); SharedConnectivitySettingsState state = new SharedConnectivitySettingsState.Builder(mContext).setInstantTetherEnabled(true) new SharedConnectivitySettingsState.Builder().setInstantTetherEnabled(true) .setExtras(new Bundle()).build(); manager.setService(mService); when(mService.getSettingsState()).thenReturn(state); Loading wifi/tests/src/android/net/wifi/sharedconnectivity/app/SharedConnectivitySettingsStateTest.java +42 −26 Original line number Diff line number Diff line Loading @@ -18,6 +18,10 @@ package android.net.wifi.sharedconnectivity.app; import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.assertThrows; import android.app.PendingIntent; import android.content.ComponentName; import android.content.Intent; import android.os.Parcel; Loading @@ -37,13 +41,24 @@ public class SharedConnectivitySettingsStateTest { private static final boolean INSTANT_TETHER_STATE_1 = false; private static final String INTENT_ACTION_1 = "instant.tether.settings1"; @Test public void pendingIntentMutable_buildShouldThrow() { SharedConnectivitySettingsState.Builder builder = new SharedConnectivitySettingsState.Builder() .setInstantTetherEnabled(INSTANT_TETHER_STATE) .setInstantTetherSettingsPendingIntent(PendingIntent.getActivity( ApplicationProvider.getApplicationContext(), 0, new Intent(INTENT_ACTION).setComponent(new ComponentName( "com.test.package", "TestClass")), PendingIntent.FLAG_MUTABLE)); Exception e = assertThrows(IllegalArgumentException.class, builder::build); assertThat(e.getMessage()).contains("Pending intent must be immutable"); } /** * Verifies parcel serialization/deserialization. */ @Test public void testParcelOperation() { SharedConnectivitySettingsState state = buildSettingsStateBuilder().build(); public void parcelOperation() { SharedConnectivitySettingsState state = buildSettingsStateBuilder(INTENT_ACTION).build(); Parcel parcel = Parcel.obtain(); state.writeToParcel(parcel, 0); Loading @@ -55,45 +70,46 @@ public class SharedConnectivitySettingsStateTest { assertThat(fromParcel.hashCode()).isEqualTo(state.hashCode()); } /** * Verifies the Equals operation */ @Test public void testEqualsOperation() { SharedConnectivitySettingsState state1 = buildSettingsStateBuilder().build(); SharedConnectivitySettingsState state2 = buildSettingsStateBuilder().build(); public void equalsOperation() { SharedConnectivitySettingsState state1 = buildSettingsStateBuilder(INTENT_ACTION).build(); SharedConnectivitySettingsState state2 = buildSettingsStateBuilder(INTENT_ACTION).build(); assertThat(state1).isEqualTo(state2); SharedConnectivitySettingsState.Builder builder = buildSettingsStateBuilder() SharedConnectivitySettingsState.Builder builder = buildSettingsStateBuilder(INTENT_ACTION) .setInstantTetherEnabled(INSTANT_TETHER_STATE_1); assertThat(builder.build()).isNotEqualTo(state1); builder = buildSettingsStateBuilder() .setInstantTetherSettingsPendingIntent(new Intent(INTENT_ACTION_1)); builder = buildSettingsStateBuilder(INTENT_ACTION_1); assertThat(builder.build()).isNotEqualTo(state1); } /** * Verifies the get methods return the expected data. */ @Test public void testGetMethods() { SharedConnectivitySettingsState state = buildSettingsStateBuilder().build(); public void getMethods() { SharedConnectivitySettingsState state = buildSettingsStateBuilder(INTENT_ACTION).build(); assertThat(state.isInstantTetherEnabled()).isEqualTo(INSTANT_TETHER_STATE); assertThat(state.getInstantTetherSettingsPendingIntent()) .isEqualTo(buildPendingIntent(INTENT_ACTION)); } @Test public void testHashCode() { SharedConnectivitySettingsState state1 = buildSettingsStateBuilder().build(); SharedConnectivitySettingsState state2 = buildSettingsStateBuilder().build(); public void hashCodeCalculation() { SharedConnectivitySettingsState state1 = buildSettingsStateBuilder(INTENT_ACTION).build(); SharedConnectivitySettingsState state2 = buildSettingsStateBuilder(INTENT_ACTION).build(); assertThat(state1.hashCode()).isEqualTo(state2.hashCode()); } private SharedConnectivitySettingsState.Builder buildSettingsStateBuilder() { return new SharedConnectivitySettingsState.Builder( ApplicationProvider.getApplicationContext()) private SharedConnectivitySettingsState.Builder buildSettingsStateBuilder(String intentAction) { return new SharedConnectivitySettingsState.Builder() .setInstantTetherEnabled(INSTANT_TETHER_STATE) .setInstantTetherSettingsPendingIntent(new Intent(INTENT_ACTION)); .setInstantTetherSettingsPendingIntent(buildPendingIntent(intentAction)); } private PendingIntent buildPendingIntent(String intentAction) { return PendingIntent.getActivity( ApplicationProvider.getApplicationContext(), 0, new Intent(intentAction), PendingIntent.FLAG_IMMUTABLE); } } Loading
core/api/system-current.txt +2 −2 Original line number Diff line number Diff line Loading @@ -10178,11 +10178,11 @@ package android.net.wifi.sharedconnectivity.app { } public static final class SharedConnectivitySettingsState.Builder { ctor public SharedConnectivitySettingsState.Builder(@NonNull android.content.Context); ctor public SharedConnectivitySettingsState.Builder(); 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); method @NonNull public android.net.wifi.sharedconnectivity.app.SharedConnectivitySettingsState.Builder setInstantTetherSettingsPendingIntent(@NonNull android.app.PendingIntent); } }
wifi/java/src/android/net/wifi/sharedconnectivity/app/SharedConnectivitySettingsState.java +15 −22 Original line number Diff line number Diff line Loading @@ -20,8 +20,6 @@ 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 Loading @@ -49,14 +47,9 @@ public final class SharedConnectivitySettingsState implements Parcelable { */ public static final class Builder { private boolean mInstantTetherEnabled; private Intent mInstantTetherSettingsIntent; private final Context mContext; private PendingIntent mInstantTetherSettingsPendingIntent; private Bundle mExtras = Bundle.EMPTY; public Builder(@NonNull Context context) { mContext = context; } /** * Sets the state of Instant Tether in settings * Loading @@ -69,16 +62,14 @@ public final class SharedConnectivitySettingsState implements Parcelable { } /** * 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}. * Sets the {@link PendingIntent} that will open the Instant Tether settings page. * The pending intent must be set as {@link PendingIntent#FLAG_IMMUTABLE}. * * @return Returns the Builder object. */ @NonNull public Builder setInstantTetherSettingsPendingIntent(@NonNull Intent intent) { mInstantTetherSettingsIntent = intent; public Builder setInstantTetherSettingsPendingIntent(@NonNull PendingIntent pendingIntent) { mInstantTetherSettingsPendingIntent = pendingIntent; return this; } Loading @@ -100,19 +91,21 @@ public final class SharedConnectivitySettingsState implements Parcelable { */ @NonNull public SharedConnectivitySettingsState build() { if (mInstantTetherSettingsIntent != null) { PendingIntent pendingIntent = PendingIntent.getActivity(mContext, 0, mInstantTetherSettingsIntent, PendingIntent.FLAG_IMMUTABLE | PendingIntent.FLAG_ONE_SHOT); return new SharedConnectivitySettingsState(mInstantTetherEnabled, pendingIntent, mExtras); mInstantTetherSettingsPendingIntent, mExtras); } } return new SharedConnectivitySettingsState(mInstantTetherEnabled, null, mExtras); private static void validate(PendingIntent pendingIntent) { if (pendingIntent != null && !pendingIntent.isImmutable()) { throw new IllegalArgumentException("Pending intent must be immutable"); } } private SharedConnectivitySettingsState(boolean instantTetherEnabled, PendingIntent pendingIntent, @NonNull Bundle extras) { validate(pendingIntent); mInstantTetherEnabled = instantTetherEnabled; mInstantTetherSettingsPendingIntent = pendingIntent; mExtras = extras; Loading
wifi/java/src/android/net/wifi/sharedconnectivity/service/SharedConnectivityService.java +1 −1 Original line number Diff line number Diff line Loading @@ -206,7 +206,7 @@ public abstract class SharedConnectivityService extends Service { // Done lazily since creating it needs a context. if (mSettingsState == null) { mSettingsState = new SharedConnectivitySettingsState .Builder(getApplicationContext()) .Builder() .setInstantTetherEnabled(false) .setExtras(Bundle.EMPTY).build(); } Loading
wifi/tests/src/android/net/wifi/sharedconnectivity/app/SharedConnectivityManagerTest.java +1 −1 Original line number Diff line number Diff line Loading @@ -498,7 +498,7 @@ public class SharedConnectivityManagerTest { public void getSettingsState_serviceConnected_shouldReturnState() throws RemoteException { SharedConnectivityManager manager = SharedConnectivityManager.create(mContext); SharedConnectivitySettingsState state = new SharedConnectivitySettingsState.Builder(mContext).setInstantTetherEnabled(true) new SharedConnectivitySettingsState.Builder().setInstantTetherEnabled(true) .setExtras(new Bundle()).build(); manager.setService(mService); when(mService.getSettingsState()).thenReturn(state); Loading
wifi/tests/src/android/net/wifi/sharedconnectivity/app/SharedConnectivitySettingsStateTest.java +42 −26 Original line number Diff line number Diff line Loading @@ -18,6 +18,10 @@ package android.net.wifi.sharedconnectivity.app; import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.assertThrows; import android.app.PendingIntent; import android.content.ComponentName; import android.content.Intent; import android.os.Parcel; Loading @@ -37,13 +41,24 @@ public class SharedConnectivitySettingsStateTest { private static final boolean INSTANT_TETHER_STATE_1 = false; private static final String INTENT_ACTION_1 = "instant.tether.settings1"; @Test public void pendingIntentMutable_buildShouldThrow() { SharedConnectivitySettingsState.Builder builder = new SharedConnectivitySettingsState.Builder() .setInstantTetherEnabled(INSTANT_TETHER_STATE) .setInstantTetherSettingsPendingIntent(PendingIntent.getActivity( ApplicationProvider.getApplicationContext(), 0, new Intent(INTENT_ACTION).setComponent(new ComponentName( "com.test.package", "TestClass")), PendingIntent.FLAG_MUTABLE)); Exception e = assertThrows(IllegalArgumentException.class, builder::build); assertThat(e.getMessage()).contains("Pending intent must be immutable"); } /** * Verifies parcel serialization/deserialization. */ @Test public void testParcelOperation() { SharedConnectivitySettingsState state = buildSettingsStateBuilder().build(); public void parcelOperation() { SharedConnectivitySettingsState state = buildSettingsStateBuilder(INTENT_ACTION).build(); Parcel parcel = Parcel.obtain(); state.writeToParcel(parcel, 0); Loading @@ -55,45 +70,46 @@ public class SharedConnectivitySettingsStateTest { assertThat(fromParcel.hashCode()).isEqualTo(state.hashCode()); } /** * Verifies the Equals operation */ @Test public void testEqualsOperation() { SharedConnectivitySettingsState state1 = buildSettingsStateBuilder().build(); SharedConnectivitySettingsState state2 = buildSettingsStateBuilder().build(); public void equalsOperation() { SharedConnectivitySettingsState state1 = buildSettingsStateBuilder(INTENT_ACTION).build(); SharedConnectivitySettingsState state2 = buildSettingsStateBuilder(INTENT_ACTION).build(); assertThat(state1).isEqualTo(state2); SharedConnectivitySettingsState.Builder builder = buildSettingsStateBuilder() SharedConnectivitySettingsState.Builder builder = buildSettingsStateBuilder(INTENT_ACTION) .setInstantTetherEnabled(INSTANT_TETHER_STATE_1); assertThat(builder.build()).isNotEqualTo(state1); builder = buildSettingsStateBuilder() .setInstantTetherSettingsPendingIntent(new Intent(INTENT_ACTION_1)); builder = buildSettingsStateBuilder(INTENT_ACTION_1); assertThat(builder.build()).isNotEqualTo(state1); } /** * Verifies the get methods return the expected data. */ @Test public void testGetMethods() { SharedConnectivitySettingsState state = buildSettingsStateBuilder().build(); public void getMethods() { SharedConnectivitySettingsState state = buildSettingsStateBuilder(INTENT_ACTION).build(); assertThat(state.isInstantTetherEnabled()).isEqualTo(INSTANT_TETHER_STATE); assertThat(state.getInstantTetherSettingsPendingIntent()) .isEqualTo(buildPendingIntent(INTENT_ACTION)); } @Test public void testHashCode() { SharedConnectivitySettingsState state1 = buildSettingsStateBuilder().build(); SharedConnectivitySettingsState state2 = buildSettingsStateBuilder().build(); public void hashCodeCalculation() { SharedConnectivitySettingsState state1 = buildSettingsStateBuilder(INTENT_ACTION).build(); SharedConnectivitySettingsState state2 = buildSettingsStateBuilder(INTENT_ACTION).build(); assertThat(state1.hashCode()).isEqualTo(state2.hashCode()); } private SharedConnectivitySettingsState.Builder buildSettingsStateBuilder() { return new SharedConnectivitySettingsState.Builder( ApplicationProvider.getApplicationContext()) private SharedConnectivitySettingsState.Builder buildSettingsStateBuilder(String intentAction) { return new SharedConnectivitySettingsState.Builder() .setInstantTetherEnabled(INSTANT_TETHER_STATE) .setInstantTetherSettingsPendingIntent(new Intent(INTENT_ACTION)); .setInstantTetherSettingsPendingIntent(buildPendingIntent(intentAction)); } private PendingIntent buildPendingIntent(String intentAction) { return PendingIntent.getActivity( ApplicationProvider.getApplicationContext(), 0, new Intent(intentAction), PendingIntent.FLAG_IMMUTABLE); } }