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
This commit is contained in:
Remi NGUYEN VAN
2018-04-04 14:51:26 +09:00
parent 65ef843176
commit 27d62a0a32
2 changed files with 11 additions and 3 deletions

View File

@@ -35,6 +35,7 @@ import android.os.Messenger;
import android.os.RemoteException; import android.os.RemoteException;
import android.os.ServiceManager; import android.os.ServiceManager;
import android.os.ServiceManager.ServiceNotFoundException; import android.os.ServiceManager.ServiceNotFoundException;
import android.util.DataUnit;
import android.util.Log; import android.util.Log;
import com.android.internal.annotations.VisibleForTesting; import com.android.internal.annotations.VisibleForTesting;
@@ -95,6 +96,15 @@ public class NetworkStatsManager {
/** @hide */ /** @hide */
public static final int CALLBACK_RELEASED = 1; 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 Context mContext;
private final INetworkStatsService mService; private final INetworkStatsService mService;

View File

@@ -16,7 +16,7 @@
package com.android.server.net; 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; import static com.android.internal.util.Preconditions.checkArgument;
@@ -52,8 +52,6 @@ class NetworkStatsObservers {
private static final String TAG = "NetworkStatsObservers"; private static final String TAG = "NetworkStatsObservers";
private static final boolean LOGV = false; 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_REGISTER = 1;
private static final int MSG_UNREGISTER = 2; private static final int MSG_UNREGISTER = 2;
private static final int MSG_UPDATE_STATS = 3; private static final int MSG_UPDATE_STATS = 3;