summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--api/test-current.txt4
-rw-r--r--core/java/android/app/usage/NetworkStatsManager.java15
-rw-r--r--services/core/java/com/android/server/net/NetworkStatsService.java3
3 files changed, 20 insertions, 2 deletions
diff --git a/api/test-current.txt b/api/test-current.txt
index 2ef20253e950..f7bfeaeb02b0 100644
--- a/api/test-current.txt
+++ b/api/test-current.txt
@@ -204,6 +204,10 @@ package android.app.backup {
package android.app.usage {
+ public class NetworkStatsManager {
+ method public void setPollForce(boolean);
+ }
+
public class StorageStatsManager {
method public boolean isQuotaSupported(java.util.UUID);
method public boolean isReservedSupported(java.util.UUID);
diff --git a/core/java/android/app/usage/NetworkStatsManager.java b/core/java/android/app/usage/NetworkStatsManager.java
index 0b21196f5d0f..9f46f207d645 100644
--- a/core/java/android/app/usage/NetworkStatsManager.java
+++ b/core/java/android/app/usage/NetworkStatsManager.java
@@ -20,6 +20,7 @@ import static com.android.internal.util.Preconditions.checkNotNull;
import android.annotation.Nullable;
import android.annotation.SystemService;
+import android.annotation.TestApi;
import android.app.usage.NetworkStats.Bucket;
import android.content.Context;
import android.net.ConnectivityManager;
@@ -111,7 +112,9 @@ public class NetworkStatsManager {
/** @hide */
public static final int FLAG_POLL_ON_OPEN = 1 << 0;
/** @hide */
- public static final int FLAG_AUGMENT_WITH_SUBSCRIPTION_PLAN = 1 << 1;
+ public static final int FLAG_POLL_FORCE = 1 << 1;
+ /** @hide */
+ public static final int FLAG_AUGMENT_WITH_SUBSCRIPTION_PLAN = 1 << 2;
private int mFlags;
@@ -141,6 +144,16 @@ public class NetworkStatsManager {
}
/** @hide */
+ @TestApi
+ public void setPollForce(boolean pollForce) {
+ if (pollForce) {
+ mFlags |= FLAG_POLL_FORCE;
+ } else {
+ mFlags &= ~FLAG_POLL_FORCE;
+ }
+ }
+
+ /** @hide */
public void setAugmentWithSubscriptionPlan(boolean augmentWithSubscriptionPlan) {
if (augmentWithSubscriptionPlan) {
mFlags |= FLAG_AUGMENT_WITH_SUBSCRIPTION_PLAN;
diff --git a/services/core/java/com/android/server/net/NetworkStatsService.java b/services/core/java/com/android/server/net/NetworkStatsService.java
index ae7058d42e73..9ef6c66b070a 100644
--- a/services/core/java/com/android/server/net/NetworkStatsService.java
+++ b/services/core/java/com/android/server/net/NetworkStatsService.java
@@ -544,7 +544,8 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
final int usedFlags = isRateLimitedForPoll(callingUid)
? flags & (~NetworkStatsManager.FLAG_POLL_ON_OPEN)
: flags;
- if ((usedFlags & NetworkStatsManager.FLAG_POLL_ON_OPEN) != 0) {
+ if ((usedFlags & (NetworkStatsManager.FLAG_POLL_ON_OPEN
+ | NetworkStatsManager.FLAG_POLL_FORCE)) != 0) {
final long ident = Binder.clearCallingIdentity();
try {
performPoll(FLAG_PERSIST_ALL);