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
This commit is contained in:
Lei Yu
2019-05-09 11:53:57 -07:00
parent 22e0b2c514
commit 3c6fb30f24

View File

@@ -278,6 +278,12 @@ public class NetworkStatsManager {
return null; return null;
} }
return querySummary(template, startTime, endTime);
}
/** @hide */
public NetworkStats querySummary(NetworkTemplate template, long startTime,
long endTime) throws SecurityException, RemoteException {
NetworkStats result; NetworkStats result;
result = new NetworkStats(mContext, template, mFlags, startTime, endTime, mService); result = new NetworkStats(mContext, template, mFlags, startTime, endTime, mService);
result.startSummaryEnumeration(); result.startSummaryEnumeration();
@@ -296,6 +302,13 @@ public class NetworkStatsManager {
NetworkStats.Bucket.TAG_NONE, NetworkStats.Bucket.STATE_ALL); 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. * Query network usage statistics details for a given uid and tag.
* *
@@ -340,6 +353,13 @@ public class NetworkStatsManager {
NetworkTemplate template; NetworkTemplate template;
template = createTemplate(networkType, subscriberId); 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; NetworkStats result;
try { try {
result = new NetworkStats(mContext, template, mFlags, startTime, endTime, mService); result = new NetworkStats(mContext, template, mFlags, startTime, endTime, mService);