Merge "Update mobile data preference getter/setter" am: a035d3a77c am: a7d1ee6f5e
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1702486 Change-Id: I950d4f95759fe17e2164014ab016d39d46ad5539
This commit is contained in:
@@ -57,7 +57,7 @@ package android.net {
|
|||||||
method @Nullable public static android.net.ProxyInfo getGlobalProxy(@NonNull android.content.Context);
|
method @Nullable public static android.net.ProxyInfo getGlobalProxy(@NonNull android.content.Context);
|
||||||
method @NonNull public static java.time.Duration getMobileDataActivityTimeout(@NonNull android.content.Context, @NonNull java.time.Duration);
|
method @NonNull public static java.time.Duration getMobileDataActivityTimeout(@NonNull android.content.Context, @NonNull java.time.Duration);
|
||||||
method public static boolean getMobileDataAlwaysOn(@NonNull android.content.Context, boolean);
|
method public static boolean getMobileDataAlwaysOn(@NonNull android.content.Context, boolean);
|
||||||
method @Nullable public static String getMobileDataPreferredApps(@NonNull android.content.Context);
|
method @NonNull public static java.util.Set<java.lang.Integer> getMobileDataPreferredUids(@NonNull android.content.Context);
|
||||||
method public static int getNetworkAvoidBadWifi(@NonNull android.content.Context);
|
method public static int getNetworkAvoidBadWifi(@NonNull android.content.Context);
|
||||||
method @Nullable public static String getNetworkMeteredMultipathPreference(@NonNull android.content.Context);
|
method @Nullable public static String getNetworkMeteredMultipathPreference(@NonNull android.content.Context);
|
||||||
method public static int getNetworkSwitchNotificationMaximumDailyCount(@NonNull android.content.Context, int);
|
method public static int getNetworkSwitchNotificationMaximumDailyCount(@NonNull android.content.Context, int);
|
||||||
@@ -77,7 +77,7 @@ package android.net {
|
|||||||
method public static void setGlobalProxy(@NonNull android.content.Context, @NonNull android.net.ProxyInfo);
|
method public static void setGlobalProxy(@NonNull android.content.Context, @NonNull android.net.ProxyInfo);
|
||||||
method public static void setMobileDataActivityTimeout(@NonNull android.content.Context, @NonNull java.time.Duration);
|
method public static void setMobileDataActivityTimeout(@NonNull android.content.Context, @NonNull java.time.Duration);
|
||||||
method public static void setMobileDataAlwaysOn(@NonNull android.content.Context, boolean);
|
method public static void setMobileDataAlwaysOn(@NonNull android.content.Context, boolean);
|
||||||
method public static void setMobileDataPreferredApps(@NonNull android.content.Context, @Nullable String);
|
method public static void setMobileDataPreferredUids(@NonNull android.content.Context, @NonNull java.util.Set<java.lang.Integer>);
|
||||||
method public static void setNetworkAvoidBadWifi(@NonNull android.content.Context, int);
|
method public static void setNetworkAvoidBadWifi(@NonNull android.content.Context, int);
|
||||||
method public static void setNetworkMeteredMultipathPreference(@NonNull android.content.Context, @NonNull String);
|
method public static void setNetworkMeteredMultipathPreference(@NonNull android.content.Context, @NonNull String);
|
||||||
method public static void setNetworkSwitchNotificationMaximumDailyCount(@NonNull android.content.Context, @IntRange(from=0) int);
|
method public static void setNetworkSwitchNotificationMaximumDailyCount(@NonNull android.content.Context, @IntRange(from=0) int);
|
||||||
|
|||||||
@@ -28,6 +28,8 @@ import android.annotation.SystemApi;
|
|||||||
import android.content.ContentResolver;
|
import android.content.ContentResolver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.net.ConnectivityManager.MultipathPreference;
|
import android.net.ConnectivityManager.MultipathPreference;
|
||||||
|
import android.os.Process;
|
||||||
|
import android.os.UserHandle;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.ArraySet;
|
import android.util.ArraySet;
|
||||||
@@ -334,12 +336,12 @@ public class ConnectivitySettingsManager {
|
|||||||
"network_metered_multipath_preference";
|
"network_metered_multipath_preference";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A list of apps that should go on cellular networks in preference even when higher-priority
|
* A list of uids that should go on cellular networks in preference even when higher-priority
|
||||||
* networks are connected.
|
* networks are connected.
|
||||||
*
|
*
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
public static final String MOBILE_DATA_PREFERRED_APPS = "mobile_data_preferred_apps";
|
public static final String MOBILE_DATA_PREFERRED_UIDS = "mobile_data_preferred_uids";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* One of the private DNS modes that indicates the private DNS mode is off.
|
* One of the private DNS modes that indicates the private DNS mode is off.
|
||||||
@@ -1002,28 +1004,46 @@ public class ConnectivitySettingsManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the list of apps(from {@link Settings}) that should go on cellular networks in preference
|
* Get the list of uids(from {@link Settings}) that should go on cellular networks in preference
|
||||||
* even when higher-priority networks are connected.
|
* even when higher-priority networks are connected.
|
||||||
*
|
*
|
||||||
* @param context The {@link Context} to query the setting.
|
* @param context The {@link Context} to query the setting.
|
||||||
* @return A list of apps that should go on cellular networks in preference even when
|
* @return A list of uids that should go on cellular networks in preference even when
|
||||||
* higher-priority networks are connected or null if no setting value.
|
* higher-priority networks are connected or null if no setting value.
|
||||||
*/
|
*/
|
||||||
@Nullable
|
@NonNull
|
||||||
public static String getMobileDataPreferredApps(@NonNull Context context) {
|
public static Set<Integer> getMobileDataPreferredUids(@NonNull Context context) {
|
||||||
return Settings.Secure.getString(context.getContentResolver(), MOBILE_DATA_PREFERRED_APPS);
|
final String uidList = Settings.Secure.getString(
|
||||||
|
context.getContentResolver(), MOBILE_DATA_PREFERRED_UIDS);
|
||||||
|
final Set<Integer> uids = new ArraySet<>();
|
||||||
|
if (TextUtils.isEmpty(uidList)) {
|
||||||
|
return uids;
|
||||||
|
}
|
||||||
|
for (String uid : uidList.split(";")) {
|
||||||
|
uids.add(Integer.valueOf(uid));
|
||||||
|
}
|
||||||
|
return uids;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the list of apps(to {@link Settings}) that should go on cellular networks in preference
|
* Set the list of uids(to {@link Settings}) that should go on cellular networks in preference
|
||||||
* even when higher-priority networks are connected.
|
* even when higher-priority networks are connected.
|
||||||
*
|
*
|
||||||
* @param context The {@link Context} to set the setting.
|
* @param context The {@link Context} to set the setting.
|
||||||
* @param list A list of apps that should go on cellular networks in preference even when
|
* @param uidList A list of uids that should go on cellular networks in preference even when
|
||||||
* higher-priority networks are connected.
|
* higher-priority networks are connected.
|
||||||
*/
|
*/
|
||||||
public static void setMobileDataPreferredApps(@NonNull Context context, @Nullable String list) {
|
public static void setMobileDataPreferredUids(@NonNull Context context,
|
||||||
Settings.Secure.putString(context.getContentResolver(), MOBILE_DATA_PREFERRED_APPS, list);
|
@NonNull Set<Integer> uidList) {
|
||||||
|
final StringJoiner joiner = new StringJoiner(";");
|
||||||
|
for (Integer uid : uidList) {
|
||||||
|
if (uid < 0 || UserHandle.getAppId(uid) > Process.LAST_APPLICATION_UID) {
|
||||||
|
throw new IllegalArgumentException("Invalid uid");
|
||||||
|
}
|
||||||
|
joiner.add(uid.toString());
|
||||||
|
}
|
||||||
|
Settings.Secure.putString(
|
||||||
|
context.getContentResolver(), MOBILE_DATA_PREFERRED_UIDS, joiner.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user