summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorJeff Sharkey <jsharkey@android.com>2011-11-17 15:12:45 -0800
committerAndroid Git Automerger <android-git-automerger@android.com>2011-11-17 15:12:45 -0800
commitf0c22dc4a043264a2b15d225fd97909b403c02cf (patch)
treeffba2318e2e04969368cede566875861ad875acc /services
parent94b064e11216310c813e72459bc89aa962263ab6 (diff)
parent7892cbffbeffb6e73f4c88e9965064b3985971c2 (diff)
downloadframeworks_base-f0c22dc4a043264a2b15d225fd97909b403c02cf.zip
frameworks_base-f0c22dc4a043264a2b15d225fd97909b403c02cf.tar.gz
frameworks_base-f0c22dc4a043264a2b15d225fd97909b403c02cf.tar.bz2
am 7892cbff: am 8ac35e30: Merge "Only write network stats when already loaded." into ics-mr1
* commit '7892cbffbeffb6e73f4c88e9965064b3985971c2': Only write network stats when already loaded.
Diffstat (limited to 'services')
-rw-r--r--services/java/com/android/server/net/NetworkStatsService.java10
-rw-r--r--services/tests/servicestests/src/com/android/server/NetworkPolicyManagerServiceTest.java9
2 files changed, 14 insertions, 5 deletions
diff --git a/services/java/com/android/server/net/NetworkStatsService.java b/services/java/com/android/server/net/NetworkStatsService.java
index b77e67e..871ed68 100644
--- a/services/java/com/android/server/net/NetworkStatsService.java
+++ b/services/java/com/android/server/net/NetworkStatsService.java
@@ -203,6 +203,8 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
/** Set of historical {@code xtables} stats for known UIDs. */
private HashMap<UidStatsKey, NetworkStatsHistory> mUidStats = Maps.newHashMap();
+ /** Flag if {@link #mNetworkDevStats} have been loaded from disk. */
+ private boolean mNetworkStatsLoaded = false;
/** Flag if {@link #mUidStats} have been loaded from disk. */
private boolean mUidStatsLoaded = false;
@@ -272,6 +274,7 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
// until actually needed.
readNetworkDevStatsLocked();
readNetworkXtStatsLocked();
+ mNetworkStatsLoaded = true;
}
// bootstrap initial stats to prevent double-counting later
@@ -322,14 +325,17 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
mTeleManager.listen(mPhoneListener, LISTEN_NONE);
- writeNetworkDevStatsLocked();
- writeNetworkXtStatsLocked();
+ if (mNetworkStatsLoaded) {
+ writeNetworkDevStatsLocked();
+ writeNetworkXtStatsLocked();
+ }
if (mUidStatsLoaded) {
writeUidStatsLocked();
}
mNetworkDevStats.clear();
mNetworkXtStats.clear();
mUidStats.clear();
+ mNetworkStatsLoaded = false;
mUidStatsLoaded = false;
}
diff --git a/services/tests/servicestests/src/com/android/server/NetworkPolicyManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/NetworkPolicyManagerServiceTest.java
index 0618374..7c61e9a 100644
--- a/services/tests/servicestests/src/com/android/server/NetworkPolicyManagerServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/NetworkPolicyManagerServiceTest.java
@@ -693,12 +693,13 @@ public class NetworkPolicyManagerServiceTest extends AndroidTestCase {
expectSetInterfaceQuota(TEST_IFACE, Long.MAX_VALUE);
expectMeteredIfacesChanged(TEST_IFACE);
- expectClearNotifications();
+ future = expectClearNotifications();
tagFuture = expectEnqueueNotification();
replay();
mService.snoozePolicy(sTemplateWifi);
assertNotificationType(TYPE_LIMIT_SNOOZED, tagFuture.get());
+ future.get();
verifyAndReset();
}
}
@@ -734,9 +735,11 @@ public class NetworkPolicyManagerServiceTest extends AndroidTestCase {
expectLastCall().atLeastOnce();
}
- private void expectClearNotifications() throws Exception {
+ private Future<Void> expectClearNotifications() throws Exception {
+ final FutureAnswer future = new FutureAnswer();
mNotifManager.cancelNotificationWithTag(isA(String.class), isA(String.class), anyInt());
- expectLastCall().anyTimes();
+ expectLastCall().andAnswer(future).anyTimes();
+ return future;
}
private Future<String> expectEnqueueNotification() throws Exception {