Merge "Notify NetworkStatsService if TEMPORARILY_NOT_METERED changed"
This commit is contained in:
@@ -75,6 +75,7 @@ import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_VPN;
|
||||
import static android.net.NetworkCapabilities.NET_CAPABILITY_OEM_PAID;
|
||||
import static android.net.NetworkCapabilities.NET_CAPABILITY_OEM_PRIVATE;
|
||||
import static android.net.NetworkCapabilities.NET_CAPABILITY_PARTIAL_CONNECTIVITY;
|
||||
import static android.net.NetworkCapabilities.NET_CAPABILITY_TEMPORARILY_NOT_METERED;
|
||||
import static android.net.NetworkCapabilities.NET_CAPABILITY_VALIDATED;
|
||||
import static android.net.NetworkCapabilities.NET_ENTERPRISE_ID_1;
|
||||
import static android.net.NetworkCapabilities.NET_ENTERPRISE_ID_5;
|
||||
@@ -8047,6 +8048,10 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
final boolean oldMetered = prevNc.isMetered();
|
||||
final boolean newMetered = newNc.isMetered();
|
||||
final boolean meteredChanged = oldMetered != newMetered;
|
||||
final boolean oldTempMetered = prevNc.hasCapability(NET_CAPABILITY_TEMPORARILY_NOT_METERED);
|
||||
final boolean newTempMetered = newNc.hasCapability(NET_CAPABILITY_TEMPORARILY_NOT_METERED);
|
||||
final boolean tempMeteredChanged = oldTempMetered != newTempMetered;
|
||||
|
||||
|
||||
if (meteredChanged) {
|
||||
maybeNotifyNetworkBlocked(nai, oldMetered, newMetered,
|
||||
@@ -8057,7 +8062,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
!= newNc.hasCapability(NET_CAPABILITY_NOT_ROAMING);
|
||||
|
||||
// Report changes that are interesting for network statistics tracking.
|
||||
if (meteredChanged || roamingChanged) {
|
||||
if (meteredChanged || roamingChanged || tempMeteredChanged) {
|
||||
notifyIfacesChangedForNetworkStats();
|
||||
}
|
||||
|
||||
|
||||
@@ -7332,9 +7332,15 @@ public class ConnectivityServiceTest {
|
||||
expectNotifyNetworkStatus(onlyCell(), onlyCell(), MOBILE_IFNAME);
|
||||
reset(mStatsManager);
|
||||
|
||||
// Temp metered change shouldn't update ifaces
|
||||
// Temp metered change should update ifaces
|
||||
mCellNetworkAgent.addCapability(NET_CAPABILITY_TEMPORARILY_NOT_METERED);
|
||||
waitForIdle();
|
||||
expectNotifyNetworkStatus(onlyCell(), onlyCell(), MOBILE_IFNAME);
|
||||
reset(mStatsManager);
|
||||
|
||||
// Congested change shouldn't update ifaces
|
||||
mCellNetworkAgent.addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_CONGESTED);
|
||||
waitForIdle();
|
||||
verify(mStatsManager, never()).notifyNetworkStatus(eq(onlyCell()),
|
||||
any(List.class), eq(MOBILE_IFNAME), any(List.class));
|
||||
reset(mStatsManager);
|
||||
|
||||
Reference in New Issue
Block a user