From 27d62a0a320cc5a531920e1f53be13068766d595 Mon Sep 17 00:00:00 2001 From: Remi NGUYEN VAN Date: Wed, 4 Apr 2018 14:51:26 +0900 Subject: [PATCH] Do not register callback for < MIN_THRESHOLD_BYTES This also avoids returning a nonzero multipath preference if remaining data is low but nonzero. Bug: b/72877610 Change-Id: I2459ded06de77d284ae1fe81a60d9e1df56b0c26 Fixes: b/72877610 Test: Tests in go/ag/3842960 pass --- core/java/android/app/usage/NetworkStatsManager.java | 10 ++++++++++ .../com/android/server/net/NetworkStatsObservers.java | 4 +--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/core/java/android/app/usage/NetworkStatsManager.java b/core/java/android/app/usage/NetworkStatsManager.java index b2fe958691..34f3a8da95 100644 --- a/core/java/android/app/usage/NetworkStatsManager.java +++ b/core/java/android/app/usage/NetworkStatsManager.java @@ -35,6 +35,7 @@ import android.os.Messenger; import android.os.RemoteException; import android.os.ServiceManager; import android.os.ServiceManager.ServiceNotFoundException; +import android.util.DataUnit; import android.util.Log; import com.android.internal.annotations.VisibleForTesting; @@ -95,6 +96,15 @@ public class NetworkStatsManager { /** @hide */ public static final int CALLBACK_RELEASED = 1; + /** + * Minimum data usage threshold for registering usage callbacks. + * + * Requests registered with a threshold lower than this will only be triggered once this minimum + * is reached. + * @hide + */ + public static final long MIN_THRESHOLD_BYTES = DataUnit.MEBIBYTES.toBytes(2); + private final Context mContext; private final INetworkStatsService mService; diff --git a/services/core/java/com/android/server/net/NetworkStatsObservers.java b/services/core/java/com/android/server/net/NetworkStatsObservers.java index 741c2062bd..d8408730dd 100644 --- a/services/core/java/com/android/server/net/NetworkStatsObservers.java +++ b/services/core/java/com/android/server/net/NetworkStatsObservers.java @@ -16,7 +16,7 @@ package com.android.server.net; -import static android.net.TrafficStats.MB_IN_BYTES; +import static android.app.usage.NetworkStatsManager.MIN_THRESHOLD_BYTES; import static com.android.internal.util.Preconditions.checkArgument; @@ -52,8 +52,6 @@ class NetworkStatsObservers { private static final String TAG = "NetworkStatsObservers"; private static final boolean LOGV = false; - private static final long MIN_THRESHOLD_BYTES = 2 * MB_IN_BYTES; - private static final int MSG_REGISTER = 1; private static final int MSG_UNREGISTER = 2; private static final int MSG_UPDATE_STATS = 3;