From 3c6fb30f243e0a62c02b3e7ef8f9e834188fc3f8 Mon Sep 17 00:00:00 2001 From: Lei Yu Date: Thu, 9 May 2019 11:53:57 -0700 Subject: [PATCH] Use merged NetworkTemplate to query data usage This CL uses merged NetworkTemplate so that it shows correct data for carrier which is a virtual that has multiple subscriberId under the hood. By doing this, this CL also adds several hidden API so settings can query by NetworkTemplate directly. Fixes: 120566366 Test: RunSettingsLibRoboTests Change-Id: I8b747697933c75b48b14387adafb5ac9ca165926 --- .../app/usage/NetworkStatsManager.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/core/java/android/app/usage/NetworkStatsManager.java b/core/java/android/app/usage/NetworkStatsManager.java index 59ae3347f4..8e40449fa5 100644 --- a/core/java/android/app/usage/NetworkStatsManager.java +++ b/core/java/android/app/usage/NetworkStatsManager.java @@ -278,6 +278,12 @@ public class NetworkStatsManager { return null; } + return querySummary(template, startTime, endTime); + } + + /** @hide */ + public NetworkStats querySummary(NetworkTemplate template, long startTime, + long endTime) throws SecurityException, RemoteException { NetworkStats result; result = new NetworkStats(mContext, template, mFlags, startTime, endTime, mService); result.startSummaryEnumeration(); @@ -296,6 +302,13 @@ public class NetworkStatsManager { NetworkStats.Bucket.TAG_NONE, NetworkStats.Bucket.STATE_ALL); } + /** @hide */ + public NetworkStats queryDetailsForUid(NetworkTemplate template, + long startTime, long endTime, int uid) throws SecurityException { + return queryDetailsForUidTagState(template, startTime, endTime, uid, + NetworkStats.Bucket.TAG_NONE, NetworkStats.Bucket.STATE_ALL); + } + /** * Query network usage statistics details for a given uid and tag. * @@ -340,6 +353,13 @@ public class NetworkStatsManager { NetworkTemplate template; template = createTemplate(networkType, subscriberId); + return queryDetailsForUidTagState(template, startTime, endTime, uid, tag, state); + } + + /** @hide */ + public NetworkStats queryDetailsForUidTagState(NetworkTemplate template, + long startTime, long endTime, int uid, int tag, int state) throws SecurityException { + NetworkStats result; try { result = new NetworkStats(mContext, template, mFlags, startTime, endTime, mService);