Change the parameter type from ContentResolver to Context

Context is more useful than ContentResolver, it can provide more
information if we want to change the behavior in the future.

Bug: 172183305
Test: atest FrameworksNetTests
Change-Id: I5702c7d74b862a76558b94f1abe2c6df9eb7f097
Merged-In: I5702c7d74b862a76558b94f1abe2c6df9eb7f097
This commit is contained in:
lucaslin
2021-03-16 17:11:14 +08:00
committed by Lucas Lin
parent 6228e2c6c8
commit 20f0488017
4 changed files with 16 additions and 10 deletions

View File

@@ -8,7 +8,7 @@ package android.net {
public class ConnectivityManager { public class ConnectivityManager {
method @NonNull @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_STACK, android.Manifest.permission.NETWORK_SETTINGS}) public java.util.List<android.net.NetworkStateSnapshot> getAllNetworkStateSnapshot(); method @NonNull @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_STACK, android.Manifest.permission.NETWORK_SETTINGS}) public java.util.List<android.net.NetworkStateSnapshot> getAllNetworkStateSnapshot();
method @NonNull public static android.util.Range<java.lang.Integer> getIpSecNetIdRange(); method @NonNull public static android.util.Range<java.lang.Integer> getIpSecNetIdRange();
method @NonNull public static String getPrivateDnsMode(@NonNull android.content.ContentResolver); method @NonNull public static String getPrivateDnsMode(@NonNull android.content.Context);
method @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_SETTINGS}) public void registerSystemDefaultNetworkCallback(@NonNull android.net.ConnectivityManager.NetworkCallback, @NonNull android.os.Handler); method @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_SETTINGS}) public void registerSystemDefaultNetworkCallback(@NonNull android.net.ConnectivityManager.NetworkCallback, @NonNull android.os.Handler);
method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_STACK, android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK}) public void requestBackgroundNetwork(@NonNull android.net.NetworkRequest, @NonNull android.os.Handler, @NonNull android.net.ConnectivityManager.NetworkCallback); method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_STACK, android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK}) public void requestBackgroundNetwork(@NonNull android.net.NetworkRequest, @NonNull android.os.Handler, @NonNull android.net.ConnectivityManager.NetworkCallback);
method @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_TEST_NETWORKS, android.Manifest.permission.NETWORK_STACK}) public void simulateDataStall(int, long, @NonNull android.net.Network, @NonNull android.os.PersistableBundle); method @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_TEST_NETWORKS, android.Manifest.permission.NETWORK_STACK}) public void simulateDataStall(int, long, @NonNull android.net.Network, @NonNull android.os.PersistableBundle);

View File

@@ -5124,7 +5124,8 @@ public class ConnectivityManager {
/** /**
* Get private DNS mode from settings. * Get private DNS mode from settings.
* *
* @param cr The ContentResolver to query private DNS mode from settings. * @param context The Context to get its ContentResolver to query the private DNS mode from
* settings.
* @return A string of private DNS mode as one of the PRIVATE_DNS_MODE_* constants. * @return A string of private DNS mode as one of the PRIVATE_DNS_MODE_* constants.
* *
* @hide * @hide
@@ -5132,7 +5133,8 @@ public class ConnectivityManager {
@SystemApi(client = MODULE_LIBRARIES) @SystemApi(client = MODULE_LIBRARIES)
@NonNull @NonNull
@PrivateDnsMode @PrivateDnsMode
public static String getPrivateDnsMode(@NonNull ContentResolver cr) { public static String getPrivateDnsMode(@NonNull Context context) {
final ContentResolver cr = context.getContentResolver();
String mode = Settings.Global.getString(cr, PRIVATE_DNS_MODE); String mode = Settings.Global.getString(cr, PRIVATE_DNS_MODE);
if (TextUtils.isEmpty(mode)) mode = Settings.Global.getString(cr, PRIVATE_DNS_DEFAULT_MODE); if (TextUtils.isEmpty(mode)) mode = Settings.Global.getString(cr, PRIVATE_DNS_DEFAULT_MODE);
// If both PRIVATE_DNS_MODE and PRIVATE_DNS_DEFAULT_MODE are not set, choose // If both PRIVATE_DNS_MODE and PRIVATE_DNS_DEFAULT_MODE are not set, choose

View File

@@ -127,13 +127,17 @@ public class DnsManager {
private static final int DNS_RESOLVER_DEFAULT_MIN_SAMPLES = 8; private static final int DNS_RESOLVER_DEFAULT_MIN_SAMPLES = 8;
private static final int DNS_RESOLVER_DEFAULT_MAX_SAMPLES = 64; private static final int DNS_RESOLVER_DEFAULT_MAX_SAMPLES = 64;
public static PrivateDnsConfig getPrivateDnsConfig(ContentResolver cr) { /**
final String mode = ConnectivityManager.getPrivateDnsMode(cr); * Get PrivateDnsConfig.
*/
public static PrivateDnsConfig getPrivateDnsConfig(Context context) {
final String mode = ConnectivityManager.getPrivateDnsMode(context);
final boolean useTls = !TextUtils.isEmpty(mode) && !PRIVATE_DNS_MODE_OFF.equals(mode); final boolean useTls = !TextUtils.isEmpty(mode) && !PRIVATE_DNS_MODE_OFF.equals(mode);
if (PRIVATE_DNS_MODE_PROVIDER_HOSTNAME.equals(mode)) { if (PRIVATE_DNS_MODE_PROVIDER_HOSTNAME.equals(mode)) {
final String specifier = getStringSetting(cr, PRIVATE_DNS_SPECIFIER); final String specifier = getStringSetting(context.getContentResolver(),
PRIVATE_DNS_SPECIFIER);
return new PrivateDnsConfig(specifier, null); return new PrivateDnsConfig(specifier, null);
} }
@@ -268,7 +272,7 @@ public class DnsManager {
} }
public PrivateDnsConfig getPrivateDnsConfig() { public PrivateDnsConfig getPrivateDnsConfig() {
return getPrivateDnsConfig(mContentResolver); return getPrivateDnsConfig(mContext);
} }
public void removeNetwork(Network network) { public void removeNetwork(Network network) {

View File

@@ -312,14 +312,14 @@ public class DnsManagerTest {
@Test @Test
public void testOverrideDefaultMode() throws Exception { public void testOverrideDefaultMode() throws Exception {
// Hard-coded default is opportunistic mode. // Hard-coded default is opportunistic mode.
final PrivateDnsConfig cfgAuto = DnsManager.getPrivateDnsConfig(mContentResolver); final PrivateDnsConfig cfgAuto = DnsManager.getPrivateDnsConfig(mCtx);
assertTrue(cfgAuto.useTls); assertTrue(cfgAuto.useTls);
assertEquals("", cfgAuto.hostname); assertEquals("", cfgAuto.hostname);
assertEquals(new InetAddress[0], cfgAuto.ips); assertEquals(new InetAddress[0], cfgAuto.ips);
// Pretend a gservices push sets the default to "off". // Pretend a gservices push sets the default to "off".
Settings.Global.putString(mContentResolver, PRIVATE_DNS_DEFAULT_MODE, "off"); Settings.Global.putString(mContentResolver, PRIVATE_DNS_DEFAULT_MODE, "off");
final PrivateDnsConfig cfgOff = DnsManager.getPrivateDnsConfig(mContentResolver); final PrivateDnsConfig cfgOff = DnsManager.getPrivateDnsConfig(mCtx);
assertFalse(cfgOff.useTls); assertFalse(cfgOff.useTls);
assertEquals("", cfgOff.hostname); assertEquals("", cfgOff.hostname);
assertEquals(new InetAddress[0], cfgOff.ips); assertEquals(new InetAddress[0], cfgOff.ips);
@@ -328,7 +328,7 @@ public class DnsManagerTest {
Settings.Global.putString( Settings.Global.putString(
mContentResolver, PRIVATE_DNS_MODE, PRIVATE_DNS_MODE_PROVIDER_HOSTNAME); mContentResolver, PRIVATE_DNS_MODE, PRIVATE_DNS_MODE_PROVIDER_HOSTNAME);
Settings.Global.putString(mContentResolver, PRIVATE_DNS_SPECIFIER, "strictmode.com"); Settings.Global.putString(mContentResolver, PRIVATE_DNS_SPECIFIER, "strictmode.com");
final PrivateDnsConfig cfgStrict = DnsManager.getPrivateDnsConfig(mContentResolver); final PrivateDnsConfig cfgStrict = DnsManager.getPrivateDnsConfig(mCtx);
assertTrue(cfgStrict.useTls); assertTrue(cfgStrict.useTls);
assertEquals("strictmode.com", cfgStrict.hostname); assertEquals("strictmode.com", cfgStrict.hostname);
assertEquals(new InetAddress[0], cfgStrict.ips); assertEquals(new InetAddress[0], cfgStrict.ips);