diff options
author | Jeff Sharkey <jsharkey@android.com> | 2011-11-17 15:12:45 -0800 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2011-11-17 15:12:45 -0800 |
commit | f0c22dc4a043264a2b15d225fd97909b403c02cf (patch) | |
tree | ffba2318e2e04969368cede566875861ad875acc /services | |
parent | 94b064e11216310c813e72459bc89aa962263ab6 (diff) | |
parent | 7892cbffbeffb6e73f4c88e9965064b3985971c2 (diff) | |
download | frameworks_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.java | 10 | ||||
-rw-r--r-- | services/tests/servicestests/src/com/android/server/NetworkPolicyManagerServiceTest.java | 9 |
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 { |