Marking setOemNetworkPreference as @SystemApi
Marking setOemNetworkPreference in ConnectivityManager as @SystemApi. Bug: 176496438 Bug: 176494815 Test: atest FrameworksNetTests atest FrameworksNetIntegrationTests atest CtsNetTestCasesLatestSdk Change-Id: I4681c88dc3a83f71c387b29610c33594e57cb43f
This commit is contained in:
@@ -18,6 +18,7 @@ package android.net;
|
|||||||
|
|
||||||
import android.annotation.IntDef;
|
import android.annotation.IntDef;
|
||||||
import android.annotation.NonNull;
|
import android.annotation.NonNull;
|
||||||
|
import android.annotation.SystemApi;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Parcelable;
|
import android.os.Parcelable;
|
||||||
|
|
||||||
@@ -29,6 +30,7 @@ import java.util.Map;
|
|||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
/** @hide */
|
/** @hide */
|
||||||
|
@SystemApi
|
||||||
public final class OemNetworkPreferences implements Parcelable {
|
public final class OemNetworkPreferences implements Parcelable {
|
||||||
/**
|
/**
|
||||||
* Default in case this value is not set. Using it will result in an error.
|
* Default in case this value is not set. Using it will result in an error.
|
||||||
@@ -45,17 +47,17 @@ public final class OemNetworkPreferences implements Parcelable {
|
|||||||
/**
|
/**
|
||||||
* If an unmetered network is available, use it.
|
* If an unmetered network is available, use it.
|
||||||
* Otherwise, if a network with the OEM_PAID capability is available, use it.
|
* Otherwise, if a network with the OEM_PAID capability is available, use it.
|
||||||
* Otherwise, the app doesn't get a network.
|
* Otherwise, the app doesn't get a default network.
|
||||||
*/
|
*/
|
||||||
public static final int OEM_NETWORK_PREFERENCE_OEM_PAID_NO_FALLBACK = 2;
|
public static final int OEM_NETWORK_PREFERENCE_OEM_PAID_NO_FALLBACK = 2;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prefer only NET_CAPABILITY_OEM_PAID networks.
|
* Use only NET_CAPABILITY_OEM_PAID networks.
|
||||||
*/
|
*/
|
||||||
public static final int OEM_NETWORK_PREFERENCE_OEM_PAID_ONLY = 3;
|
public static final int OEM_NETWORK_PREFERENCE_OEM_PAID_ONLY = 3;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prefer only NET_CAPABILITY_OEM_PRIVATE networks.
|
* Use only NET_CAPABILITY_OEM_PRIVATE networks.
|
||||||
*/
|
*/
|
||||||
public static final int OEM_NETWORK_PREFERENCE_OEM_PRIVATE_ONLY = 4;
|
public static final int OEM_NETWORK_PREFERENCE_OEM_PRIVATE_ONLY = 4;
|
||||||
|
|
||||||
@@ -95,8 +97,6 @@ public final class OemNetworkPreferences implements Parcelable {
|
|||||||
/**
|
/**
|
||||||
* Builder used to create {@link OemNetworkPreferences} objects. Specify the preferred Network
|
* Builder used to create {@link OemNetworkPreferences} objects. Specify the preferred Network
|
||||||
* to package name mappings.
|
* to package name mappings.
|
||||||
*
|
|
||||||
* @hide
|
|
||||||
*/
|
*/
|
||||||
public static final class Builder {
|
public static final class Builder {
|
||||||
private final Bundle mNetworkMappings;
|
private final Bundle mNetworkMappings;
|
||||||
@@ -135,7 +135,7 @@ public final class OemNetworkPreferences implements Parcelable {
|
|||||||
* @return The builder to facilitate chaining.
|
* @return The builder to facilitate chaining.
|
||||||
*/
|
*/
|
||||||
@NonNull
|
@NonNull
|
||||||
public Builder removeNetworkPreference(@NonNull final String packageName) {
|
public Builder clearNetworkPreference(@NonNull final String packageName) {
|
||||||
Objects.requireNonNull(packageName);
|
Objects.requireNonNull(packageName);
|
||||||
mNetworkMappings.remove(packageName);
|
mNetworkMappings.remove(packageName);
|
||||||
return this;
|
return this;
|
||||||
@@ -174,6 +174,8 @@ public final class OemNetworkPreferences implements Parcelable {
|
|||||||
*
|
*
|
||||||
* @param value int value of OemNetworkPreference
|
* @param value int value of OemNetworkPreference
|
||||||
* @return string version of OemNetworkPreference
|
* @return string version of OemNetworkPreference
|
||||||
|
*
|
||||||
|
* @hide
|
||||||
*/
|
*/
|
||||||
@NonNull
|
@NonNull
|
||||||
public static String oemNetworkPreferenceToString(@OemNetworkPreference int value) {
|
public static String oemNetworkPreferenceToString(@OemNetworkPreference int value) {
|
||||||
|
|||||||
@@ -5091,8 +5091,10 @@ public class ConnectivityManager {
|
|||||||
/**
|
/**
|
||||||
* Listener for {@link #setOemNetworkPreference(OemNetworkPreferences, Executor,
|
* Listener for {@link #setOemNetworkPreference(OemNetworkPreferences, Executor,
|
||||||
* OnSetOemNetworkPreferenceListener)}.
|
* OnSetOemNetworkPreferenceListener)}.
|
||||||
|
* @hide
|
||||||
*/
|
*/
|
||||||
private interface OnSetOemNetworkPreferenceListener {
|
@SystemApi
|
||||||
|
public interface OnSetOemNetworkPreferenceListener {
|
||||||
/**
|
/**
|
||||||
* Called when setOemNetworkPreference() successfully completes.
|
* Called when setOemNetworkPreference() successfully completes.
|
||||||
*/
|
*/
|
||||||
@@ -5115,9 +5117,11 @@ public class ConnectivityManager {
|
|||||||
* @throws IllegalArgumentException if {@code preference} contains invalid preference values.
|
* @throws IllegalArgumentException if {@code preference} contains invalid preference values.
|
||||||
* @throws SecurityException if missing the appropriate permissions.
|
* @throws SecurityException if missing the appropriate permissions.
|
||||||
* @throws UnsupportedOperationException if called on a non-automotive device.
|
* @throws UnsupportedOperationException if called on a non-automotive device.
|
||||||
|
* @hide
|
||||||
*/
|
*/
|
||||||
|
@SystemApi
|
||||||
@RequiresPermission(android.Manifest.permission.CONTROL_OEM_PAID_NETWORK_PREFERENCE)
|
@RequiresPermission(android.Manifest.permission.CONTROL_OEM_PAID_NETWORK_PREFERENCE)
|
||||||
private void setOemNetworkPreference(@NonNull final OemNetworkPreferences preference,
|
public void setOemNetworkPreference(@NonNull final OemNetworkPreferences preference,
|
||||||
@Nullable @CallbackExecutor final Executor executor,
|
@Nullable @CallbackExecutor final Executor executor,
|
||||||
@Nullable final OnSetOemNetworkPreferenceListener listener) {
|
@Nullable final OnSetOemNetworkPreferenceListener listener) {
|
||||||
Objects.requireNonNull(preference, "OemNetworkPreferences must be non-null");
|
Objects.requireNonNull(preference, "OemNetworkPreferences must be non-null");
|
||||||
|
|||||||
@@ -9332,17 +9332,17 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
*
|
*
|
||||||
* Calling this will overwrite the existing preference.
|
* Calling this will overwrite the existing preference.
|
||||||
*
|
*
|
||||||
|
* @param preference {@link OemNetworkPreferences} The application network preference to be set.
|
||||||
* @param listener {@link ConnectivityManager.OnSetOemNetworkPreferenceListener} Listener used
|
* @param listener {@link ConnectivityManager.OnSetOemNetworkPreferenceListener} Listener used
|
||||||
* to communicate completion of setOemNetworkPreference();
|
* to communicate completion of setOemNetworkPreference();
|
||||||
* @param preference {@link OemNetworkPreferences} The application network preference to be set.
|
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void setOemNetworkPreference(
|
public void setOemNetworkPreference(
|
||||||
@NonNull final OemNetworkPreferences preference,
|
@NonNull final OemNetworkPreferences preference,
|
||||||
@Nullable final IOnSetOemNetworkPreferenceListener listener) {
|
@Nullable final IOnSetOemNetworkPreferenceListener listener) {
|
||||||
|
|
||||||
enforceOemNetworkPreferencesPermission();
|
|
||||||
enforceAutomotiveDevice();
|
enforceAutomotiveDevice();
|
||||||
|
enforceOemNetworkPreferencesPermission();
|
||||||
|
|
||||||
Objects.requireNonNull(preference, "OemNetworkPreferences must be non-null");
|
Objects.requireNonNull(preference, "OemNetworkPreferences must be non-null");
|
||||||
validateOemNetworkPreferences(preference);
|
validateOemNetworkPreferences(preference);
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ public class OemNetworkPreferencesTest {
|
|||||||
@Test
|
@Test
|
||||||
public void testBuilderRemoveNetworkPreferenceRequiresNonNullPackageName() {
|
public void testBuilderRemoveNetworkPreferenceRequiresNonNullPackageName() {
|
||||||
assertThrows(NullPointerException.class,
|
assertThrows(NullPointerException.class,
|
||||||
() -> mBuilder.removeNetworkPreference(null));
|
() -> mBuilder.clearNetworkPreference(null));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -129,7 +129,7 @@ public class OemNetworkPreferencesTest {
|
|||||||
|
|
||||||
assertTrue(networkPreferences.containsKey(TEST_PACKAGE));
|
assertTrue(networkPreferences.containsKey(TEST_PACKAGE));
|
||||||
|
|
||||||
mBuilder.removeNetworkPreference(TEST_PACKAGE);
|
mBuilder.clearNetworkPreference(TEST_PACKAGE);
|
||||||
networkPreferences = mBuilder.build().getNetworkPreferences();
|
networkPreferences = mBuilder.build().getNetworkPreferences();
|
||||||
|
|
||||||
assertFalse(networkPreferences.containsKey(TEST_PACKAGE));
|
assertFalse(networkPreferences.containsKey(TEST_PACKAGE));
|
||||||
|
|||||||
Reference in New Issue
Block a user