summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorJeff Sharkey <jsharkey@android.com>2011-09-14 21:44:19 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-09-14 21:44:19 -0700
commitfc0ab4c065babdda912d0a1b9fce9ab59140482a (patch)
tree80ffe1e0172c44cb4b3bb9517cddac00c1596f25 /services
parent93578af23ecfb8f5b6001346d63c6214cdec5d17 (diff)
parent991d1b1b3f303ad247a959881b1d5b57766f678b (diff)
downloadframeworks_base-fc0ab4c065babdda912d0a1b9fce9ab59140482a.zip
frameworks_base-fc0ab4c065babdda912d0a1b9fce9ab59140482a.tar.gz
frameworks_base-fc0ab4c065babdda912d0a1b9fce9ab59140482a.tar.bz2
Merge "Network stats flag to force complete poll."
Diffstat (limited to 'services')
-rw-r--r--services/java/com/android/server/net/NetworkStatsService.java21
-rw-r--r--services/tests/servicestests/src/com/android/server/NetworkStatsServiceTest.java1
2 files changed, 20 insertions, 2 deletions
diff --git a/services/java/com/android/server/net/NetworkStatsService.java b/services/java/com/android/server/net/NetworkStatsService.java
index af29d85..a2b097e 100644
--- a/services/java/com/android/server/net/NetworkStatsService.java
+++ b/services/java/com/android/server/net/NetworkStatsService.java
@@ -34,6 +34,7 @@ import static android.net.NetworkStats.UID_ALL;
import static android.net.NetworkTemplate.buildTemplateMobileAll;
import static android.net.NetworkTemplate.buildTemplateWifi;
import static android.net.TrafficStats.UID_REMOVED;
+import static android.provider.Settings.Secure.NETSTATS_FORCE_COMPLETE_POLL;
import static android.provider.Settings.Secure.NETSTATS_NETWORK_BUCKET_DURATION;
import static android.provider.Settings.Secure.NETSTATS_NETWORK_MAX_HISTORY;
import static android.provider.Settings.Secure.NETSTATS_PERSIST_THRESHOLD;
@@ -176,6 +177,7 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
public long getUidMaxHistory();
public long getTagMaxHistory();
public long getTimeCacheMaxAge();
+ public boolean getForceCompletePoll();
}
private final Object mStatsLock = new Object();
@@ -682,8 +684,16 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
if (LOGV) Slog.v(TAG, "performPollLocked(flags=0x" + Integer.toHexString(flags) + ")");
final long startRealtime = SystemClock.elapsedRealtime();
- final boolean pollNetwork = (flags & FLAG_POLL_NETWORK) != 0;
- final boolean pollUid = (flags & FLAG_POLL_UID) != 0;
+ boolean pollNetwork = (flags & FLAG_POLL_NETWORK) != 0;
+ boolean pollUid = (flags & FLAG_POLL_UID) != 0;
+
+ // when complete poll requested, any partial poll enables everything
+ final boolean forceCompletePoll = mSettings.getForceCompletePoll();
+ if (forceCompletePoll && (pollNetwork || pollUid)) {
+ pollNetwork = true;
+ pollUid = true;
+ }
+
final boolean persistNetwork = (flags & FLAG_PERSIST_NETWORK) != 0;
final boolean persistUid = (flags & FLAG_PERSIST_UID) != 0;
final boolean forcePersist = (flags & FLAG_FORCE_PERSIST) != 0;
@@ -1360,6 +1370,10 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
private long getSecureLong(String name, long def) {
return Settings.Secure.getLong(mResolver, name, def);
}
+ private boolean getSecureBoolean(String name, boolean def) {
+ final int defInt = def ? 1 : 0;
+ return Settings.Secure.getInt(mResolver, name, defInt) != 0;
+ }
public long getPollInterval() {
return getSecureLong(NETSTATS_POLL_INTERVAL, 30 * MINUTE_IN_MILLIS);
@@ -1385,5 +1399,8 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
public long getTimeCacheMaxAge() {
return DAY_IN_MILLIS;
}
+ public boolean getForceCompletePoll() {
+ return getSecureBoolean(NETSTATS_FORCE_COMPLETE_POLL, false);
+ }
}
}
diff --git a/services/tests/servicestests/src/com/android/server/NetworkStatsServiceTest.java b/services/tests/servicestests/src/com/android/server/NetworkStatsServiceTest.java
index e7f1d9a..2b1eea1 100644
--- a/services/tests/servicestests/src/com/android/server/NetworkStatsServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/NetworkStatsServiceTest.java
@@ -758,6 +758,7 @@ public class NetworkStatsServiceTest extends AndroidTestCase {
expect(mSettings.getUidMaxHistory()).andReturn(maxHistory).anyTimes();
expect(mSettings.getTagMaxHistory()).andReturn(maxHistory).anyTimes();
expect(mSettings.getTimeCacheMaxAge()).andReturn(DAY_IN_MILLIS).anyTimes();
+ expect(mSettings.getForceCompletePoll()).andReturn(false).anyTimes();
}
private void expectCurrentTime() throws Exception {