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_PAID;
|
||||||
import static android.net.NetworkCapabilities.NET_CAPABILITY_OEM_PRIVATE;
|
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_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_CAPABILITY_VALIDATED;
|
||||||
import static android.net.NetworkCapabilities.NET_ENTERPRISE_ID_1;
|
import static android.net.NetworkCapabilities.NET_ENTERPRISE_ID_1;
|
||||||
import static android.net.NetworkCapabilities.NET_ENTERPRISE_ID_5;
|
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 oldMetered = prevNc.isMetered();
|
||||||
final boolean newMetered = newNc.isMetered();
|
final boolean newMetered = newNc.isMetered();
|
||||||
final boolean meteredChanged = oldMetered != newMetered;
|
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) {
|
if (meteredChanged) {
|
||||||
maybeNotifyNetworkBlocked(nai, oldMetered, newMetered,
|
maybeNotifyNetworkBlocked(nai, oldMetered, newMetered,
|
||||||
@@ -8057,7 +8062,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
!= newNc.hasCapability(NET_CAPABILITY_NOT_ROAMING);
|
!= newNc.hasCapability(NET_CAPABILITY_NOT_ROAMING);
|
||||||
|
|
||||||
// Report changes that are interesting for network statistics tracking.
|
// Report changes that are interesting for network statistics tracking.
|
||||||
if (meteredChanged || roamingChanged) {
|
if (meteredChanged || roamingChanged || tempMeteredChanged) {
|
||||||
notifyIfacesChangedForNetworkStats();
|
notifyIfacesChangedForNetworkStats();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7332,9 +7332,15 @@ public class ConnectivityServiceTest {
|
|||||||
expectNotifyNetworkStatus(onlyCell(), onlyCell(), MOBILE_IFNAME);
|
expectNotifyNetworkStatus(onlyCell(), onlyCell(), MOBILE_IFNAME);
|
||||||
reset(mStatsManager);
|
reset(mStatsManager);
|
||||||
|
|
||||||
// Temp metered change shouldn't update ifaces
|
// Temp metered change should update ifaces
|
||||||
mCellNetworkAgent.addCapability(NET_CAPABILITY_TEMPORARILY_NOT_METERED);
|
mCellNetworkAgent.addCapability(NET_CAPABILITY_TEMPORARILY_NOT_METERED);
|
||||||
waitForIdle();
|
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()),
|
verify(mStatsManager, never()).notifyNetworkStatus(eq(onlyCell()),
|
||||||
any(List.class), eq(MOBILE_IFNAME), any(List.class));
|
any(List.class), eq(MOBILE_IFNAME), any(List.class));
|
||||||
reset(mStatsManager);
|
reset(mStatsManager);
|
||||||
|
|||||||
Reference in New Issue
Block a user