[IT4.21] Update the label type of idle timer
The first parameter of adding idle timer is an unique identity to communicate between ConnectivityService and netd. Netd will notify the activity change using the identity, so it's fine to replace the legacy type with transport type since we should deprecate the usage of legacy type. Bug: 170598012 Test: atest FrameworksNetTests Change-Id: Ia00606539b86872cca9a92285bd940c8a720a033
This commit is contained in:
@@ -1779,12 +1779,28 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
|
||||
private INetworkManagementEventObserver mDataActivityObserver = new BaseNetworkObserver() {
|
||||
@Override
|
||||
public void interfaceClassDataActivityChanged(int networkType, boolean active, long tsNanos,
|
||||
int uid) {
|
||||
sendDataActivityBroadcast(networkType, active, tsNanos);
|
||||
public void interfaceClassDataActivityChanged(int transportType, boolean active,
|
||||
long tsNanos, int uid) {
|
||||
sendDataActivityBroadcast(transportTypeToLegacyType(transportType), active, tsNanos);
|
||||
}
|
||||
};
|
||||
|
||||
// This is deprecated and only to support legacy use cases.
|
||||
private int transportTypeToLegacyType(int type) {
|
||||
switch (type) {
|
||||
case NetworkCapabilities.TRANSPORT_CELLULAR:
|
||||
return ConnectivityManager.TYPE_MOBILE;
|
||||
case NetworkCapabilities.TRANSPORT_WIFI:
|
||||
return ConnectivityManager.TYPE_WIFI;
|
||||
case NetworkCapabilities.TRANSPORT_BLUETOOTH:
|
||||
return ConnectivityManager.TYPE_BLUETOOTH;
|
||||
case NetworkCapabilities.TRANSPORT_ETHERNET:
|
||||
return ConnectivityManager.TYPE_ETHERNET;
|
||||
default:
|
||||
loge("Unexpected transport in transportTypeToLegacyType: " + type);
|
||||
}
|
||||
return ConnectivityManager.TYPE_NONE;
|
||||
}
|
||||
/**
|
||||
* Ensures that the system cannot call a particular method.
|
||||
*/
|
||||
@@ -2368,13 +2384,13 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
timeout = Settings.Global.getInt(mContext.getContentResolver(),
|
||||
Settings.Global.DATA_ACTIVITY_TIMEOUT_MOBILE,
|
||||
10);
|
||||
type = ConnectivityManager.TYPE_MOBILE;
|
||||
type = NetworkCapabilities.TRANSPORT_CELLULAR;
|
||||
} else if (networkAgent.networkCapabilities.hasTransport(
|
||||
NetworkCapabilities.TRANSPORT_WIFI)) {
|
||||
timeout = Settings.Global.getInt(mContext.getContentResolver(),
|
||||
Settings.Global.DATA_ACTIVITY_TIMEOUT_WIFI,
|
||||
15);
|
||||
type = ConnectivityManager.TYPE_WIFI;
|
||||
type = NetworkCapabilities.TRANSPORT_WIFI;
|
||||
} else {
|
||||
return; // do not track any other networks
|
||||
}
|
||||
|
||||
@@ -7202,7 +7202,7 @@ public class ConnectivityServiceTest {
|
||||
mCellNetworkAgent.connect(true);
|
||||
networkCallback.expectAvailableThenValidatedCallbacks(mCellNetworkAgent);
|
||||
verify(mNetworkManagementService, times(1)).addIdleTimer(eq(MOBILE_IFNAME), anyInt(),
|
||||
eq(ConnectivityManager.TYPE_MOBILE));
|
||||
eq(NetworkCapabilities.TRANSPORT_CELLULAR));
|
||||
|
||||
mWiFiNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_WIFI);
|
||||
final LinkProperties wifiLp = new LinkProperties();
|
||||
@@ -7216,7 +7216,7 @@ public class ConnectivityServiceTest {
|
||||
networkCallback.expectCallback(CallbackEntry.LOSING, mCellNetworkAgent);
|
||||
networkCallback.expectCapabilitiesWith(NET_CAPABILITY_VALIDATED, mWiFiNetworkAgent);
|
||||
verify(mNetworkManagementService, times(1)).addIdleTimer(eq(WIFI_IFNAME), anyInt(),
|
||||
eq(ConnectivityManager.TYPE_WIFI));
|
||||
eq(NetworkCapabilities.TRANSPORT_WIFI));
|
||||
verify(mNetworkManagementService, times(1)).removeIdleTimer(eq(MOBILE_IFNAME));
|
||||
|
||||
// Disconnect wifi and switch back to cell
|
||||
@@ -7226,7 +7226,7 @@ public class ConnectivityServiceTest {
|
||||
assertNoCallbacks(networkCallback);
|
||||
verify(mNetworkManagementService, times(1)).removeIdleTimer(eq(WIFI_IFNAME));
|
||||
verify(mNetworkManagementService, times(1)).addIdleTimer(eq(MOBILE_IFNAME), anyInt(),
|
||||
eq(ConnectivityManager.TYPE_MOBILE));
|
||||
eq(NetworkCapabilities.TRANSPORT_CELLULAR));
|
||||
|
||||
// reconnect wifi
|
||||
mWiFiNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_WIFI);
|
||||
|
||||
Reference in New Issue
Block a user