summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorEsteban Talavera <etalavera@google.com>2015-08-17 14:47:49 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-08-17 14:47:49 +0000
commit5d467ac54ab0390d6b911628d56294bb4277d2f1 (patch)
tree69bf6acfeb61220c6cf26766e3a441d25852ee58 /core
parent4fd784e15228fb208368869b7190d5dfb9b6f95b (diff)
parent887cffea244c88ec06d9dbec1792f05eea87a7c6 (diff)
downloadframeworks_base-5d467ac54ab0390d6b911628d56294bb4277d2f1.zip
frameworks_base-5d467ac54ab0390d6b911628d56294bb4277d2f1.tar.gz
frameworks_base-5d467ac54ab0390d6b911628d56294bb4277d2f1.tar.bz2
Merge "Remove uids with empty history from NetworkStats uid enumeration" into mnc-dev
Diffstat (limited to 'core')
-rw-r--r--core/java/android/app/usage/NetworkStats.java26
1 files changed, 20 insertions, 6 deletions
diff --git a/core/java/android/app/usage/NetworkStats.java b/core/java/android/app/usage/NetworkStats.java
index 9d5eabb..ef08eb9 100644
--- a/core/java/android/app/usage/NetworkStats.java
+++ b/core/java/android/app/usage/NetworkStats.java
@@ -24,6 +24,7 @@ import android.net.NetworkTemplate;
import android.net.TrafficStats;
import android.os.RemoteException;
import android.os.ServiceManager;
+import android.util.IntArray;
import android.util.Log;
import dalvik.system.CloseGuard;
@@ -353,7 +354,25 @@ public final class NetworkStats implements AutoCloseable {
* @throws RemoteException
*/
void startUserUidEnumeration() throws RemoteException {
- setUidEnumeration(mSession.getRelevantUids());
+ // TODO: getRelevantUids should be sensitive to time interval. When that's done,
+ // the filtering logic below can be removed.
+ int[] uids = mSession.getRelevantUids();
+ // Filtering of uids with empty history.
+ IntArray filteredUids = new IntArray(uids.length);
+ for (int uid : uids) {
+ try {
+ NetworkStatsHistory history = mSession.getHistoryIntervalForUid(mTemplate, uid,
+ android.net.NetworkStats.SET_ALL, android.net.NetworkStats.TAG_NONE,
+ NetworkStatsHistory.FIELD_ALL, mStartTimeStamp, mEndTimeStamp);
+ if (history != null && history.size() > 0) {
+ filteredUids.add(uid);
+ }
+ } catch (RemoteException e) {
+ Log.w(TAG, "Error while getting history of uid " + uid, e);
+ }
+ }
+ mUids = filteredUids.toArray();
+ mUidOrUidIndex = -1;
stepHistory();
}
@@ -468,11 +487,6 @@ public final class NetworkStats implements AutoCloseable {
mUidOrUidIndex = uid;
}
- private void setUidEnumeration(int[] uids) {
- mUids = uids;
- mUidOrUidIndex = -1;
- }
-
private void stepUid() {
if (mUids != null) {
++mUidOrUidIndex;