diff options
| author | 2016-01-29 18:16:09 +0000 | |
|---|---|---|
| committer | 2016-01-29 18:16:09 +0000 | |
| commit | c4f7e07b1f57eaf16f1561a730a23f19ea86e355 (patch) | |
| tree | bbaf325036b675f1fc57f68ab877baa54c33dd29 | |
| parent | 7fc4866ff26629f3d008013db6b46815fd7bb451 (diff) | |
| parent | 0b93c5dd988250a0f0d6d9e7400c86e5801a3a30 (diff) | |
Merge "Notify NetworkStatsService of roaming status changes."
| -rw-r--r-- | services/core/java/com/android/server/ConnectivityService.java | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index 2d1f96b0a76b..3fd8b40dbc14 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -33,7 +33,6 @@ import static android.net.NetworkPolicyManager.RULE_REJECT_ALL; import static android.net.NetworkPolicyManager.RULE_REJECT_METERED; import android.annotation.Nullable; -import android.app.AlarmManager; import android.app.BroadcastOptions; import android.app.Notification; import android.app.NotificationManager; @@ -88,7 +87,6 @@ import android.os.PowerManager; import android.os.Process; import android.os.RemoteException; import android.os.ResultReceiver; -import android.os.SystemClock; import android.os.SystemProperties; import android.os.UserHandle; import android.os.UserManager; @@ -115,7 +113,6 @@ import com.android.internal.net.NetworkStatsFactory; import com.android.internal.net.VpnConfig; import com.android.internal.net.VpnInfo; import com.android.internal.net.VpnProfile; -import com.android.internal.telephony.DctConstants; import com.android.internal.util.AsyncChannel; import com.android.internal.util.IndentingPrintWriter; import com.android.internal.util.XmlUtils; @@ -155,11 +152,9 @@ import java.util.HashMap; import java.util.HashSet; import java.util.SortedSet; import java.util.TreeSet; -import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Objects; -import java.util.concurrent.atomic.AtomicInteger; /** * @hide @@ -2186,7 +2181,7 @@ public class ConnectivityService extends IConnectivityManager.Stub if (wasDefault) { mDefaultInetConditionPublished = 0; } - notifyIfacesChanged(); + notifyIfacesChangedForNetworkStats(); // TODO - we shouldn't send CALLBACK_LOST to requests that can be satisfied // by other networks that are already connected. Perhaps that can be done by // sending all CALLBACK_LOST messages (for requests, not listens) at the end @@ -4095,7 +4090,7 @@ public class ConnectivityService extends IConnectivityManager.Stub } // TODO - move this check to cover the whole function if (!Objects.equals(newLp, oldLp)) { - notifyIfacesChanged(); + notifyIfacesChangedForNetworkStats(); notifyNetworkCallbacks(networkAgent, ConnectivityManager.CALLBACK_IP_CHANGED); } @@ -4719,7 +4714,11 @@ public class ConnectivityService extends IConnectivityManager.Stub notifyLockdownVpn(networkAgent); if (oldInfo != null && oldInfo.getState() == state) { - if (VDBG) log("ignoring duplicate network state non-change"); + if (oldInfo.isRoaming() != newInfo.isRoaming()) { + if (VDBG) log("roaming status changed, notifying NetworkStatsService"); + notifyIfacesChangedForNetworkStats(); + } else if (VDBG) log("ignoring duplicate network state non-change"); + // In either case, no further work should be needed. return; } if (DBG) { @@ -4749,7 +4748,7 @@ public class ConnectivityService extends IConnectivityManager.Stub } networkAgent.created = true; updateLinkProperties(networkAgent, null); - notifyIfacesChanged(); + notifyIfacesChangedForNetworkStats(); networkAgent.networkMonitor.sendMessage(NetworkMonitor.CMD_NETWORK_CONNECTED); scheduleUnvalidatedPrompt(networkAgent); @@ -4913,9 +4912,10 @@ public class ConnectivityService extends IConnectivityManager.Stub } /** - * Notify other system services that set of active ifaces has changed. + * Notify NetworkStatsService that the set of active ifaces has changed, or that one of the + * properties tracked by NetworkStatsService on an active iface has changed. */ - private void notifyIfacesChanged() { + private void notifyIfacesChangedForNetworkStats() { try { mStatsService.forceUpdateIfaces(); } catch (Exception ignored) { @@ -4949,7 +4949,7 @@ public class ConnectivityService extends IConnectivityManager.Stub success = mVpns.get(user).setUnderlyingNetworks(networks); } if (success) { - notifyIfacesChanged(); + notifyIfacesChangedForNetworkStats(); } return success; } |