Add an API hint for metered multipath traffic.
This allows an application that knows how to provide seamless network connectivity (e.g., using QUIC multipath) to find out if doing so is desired. Test: builds, boots, runtest frameworks-net passes. Bug: 34630278 Change-Id: Ic7fd0b9e1cd879fdfaf84009d7125391895e9087
This commit is contained in:
@@ -595,6 +595,7 @@ public class ConnectivityServiceTest extends AndroidTestCase {
|
||||
|
||||
private class WrappedMultinetworkPolicyTracker extends MultinetworkPolicyTracker {
|
||||
public volatile boolean configRestrictsAvoidBadWifi;
|
||||
public volatile int configMeteredMultipathPreference;
|
||||
|
||||
public WrappedMultinetworkPolicyTracker(Context c, Handler h, Runnable r) {
|
||||
super(c, h, r);
|
||||
@@ -604,6 +605,11 @@ public class ConnectivityServiceTest extends AndroidTestCase {
|
||||
public boolean configRestrictsAvoidBadWifi() {
|
||||
return configRestrictsAvoidBadWifi;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int configMeteredMultipathPreference() {
|
||||
return configMeteredMultipathPreference;
|
||||
}
|
||||
}
|
||||
|
||||
private class WrappedConnectivityService extends ConnectivityService {
|
||||
@@ -2282,6 +2288,26 @@ public class ConnectivityServiceTest extends AndroidTestCase {
|
||||
mCm.unregisterNetworkCallback(defaultCallback);
|
||||
}
|
||||
|
||||
@SmallTest
|
||||
public void testMeteredMultipathPreferenceSetting() throws Exception {
|
||||
final ContentResolver cr = mServiceContext.getContentResolver();
|
||||
final WrappedMultinetworkPolicyTracker tracker = mService.getMultinetworkPolicyTracker();
|
||||
final String settingName = Settings.Global.NETWORK_METERED_MULTIPATH_PREFERENCE;
|
||||
|
||||
for (int config : Arrays.asList(0, 3, 2)) {
|
||||
for (String setting: Arrays.asList(null, "0", "2", "1")) {
|
||||
tracker.configMeteredMultipathPreference = config;
|
||||
Settings.Global.putString(cr, settingName, setting);
|
||||
tracker.reevaluate();
|
||||
mService.waitForIdle();
|
||||
|
||||
final int expected = (setting != null) ? Integer.parseInt(setting) : config;
|
||||
String msg = String.format("config=%d, setting=%s", config, setting);
|
||||
assertEquals(msg, expected, mCm.getMultipathPreference(null));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate that a satisfied network request does not trigger onUnavailable() once the
|
||||
* time-out period expires.
|
||||
|
||||
Reference in New Issue
Block a user