Merge "Remove NetworkStats hidden API dependencies from StatsPullAtomService" am: 3f9910630b am: 9570d3f1fa am: 16856ba3fd am: c39849d986
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1960189 Change-Id: Ic45e6b3a5697ce9d31ccc477805e980c6ab795cb
This commit is contained in:
@@ -1190,13 +1190,14 @@ public class StatsPullAtomService extends SystemService {
|
||||
Slog.e(TAG, "baseline is null for " + atomTag + ", return.");
|
||||
return StatsManager.PULL_SKIP;
|
||||
}
|
||||
|
||||
final NetworkStatsExt diff = new NetworkStatsExt(
|
||||
item.stats.subtract(baseline.stats).removeEmptyEntries(), item.transports,
|
||||
removeEmptyEntries(item.stats.subtract(baseline.stats)), item.transports,
|
||||
item.slicedByFgbg, item.slicedByTag, item.slicedByMetered, item.ratType,
|
||||
item.subInfo, item.oemManaged);
|
||||
|
||||
// If no diff, skip.
|
||||
if (diff.stats.size() == 0) continue;
|
||||
if (!diff.stats.iterator().hasNext()) continue;
|
||||
|
||||
switch (atomTag) {
|
||||
case FrameworkStatsLog.BYTES_TRANSFER_BY_TAG_AND_METERED:
|
||||
@@ -1215,6 +1216,17 @@ public class StatsPullAtomService extends SystemService {
|
||||
return StatsManager.PULL_SUCCESS;
|
||||
}
|
||||
|
||||
@NonNull private static NetworkStats removeEmptyEntries(NetworkStats stats) {
|
||||
NetworkStats ret = new NetworkStats(0, 1);
|
||||
for (NetworkStats.Entry e : stats) {
|
||||
if (e.getRxBytes() != 0 || e.getRxPackets() != 0 || e.getTxBytes() != 0
|
||||
|| e.getTxPackets() != 0 || e.getOperations() != 0) {
|
||||
ret = ret.addEntry(e);
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
private void addNetworkStats(int atomTag, @NonNull List<StatsEvent> ret,
|
||||
@NonNull NetworkStatsExt statsExt) {
|
||||
for (NetworkStats.Entry entry : statsExt.stats) {
|
||||
@@ -1472,12 +1484,8 @@ public class StatsPullAtomService extends SystemService {
|
||||
@NonNull private NetworkStats sliceNetworkStats(@NonNull NetworkStats stats,
|
||||
@NonNull Function<NetworkStats.Entry, NetworkStats.Entry> slicer) {
|
||||
NetworkStats ret = new NetworkStats(0, 1);
|
||||
NetworkStats.Entry entry = new NetworkStats.Entry();
|
||||
for (NetworkStats.Entry e : stats) {
|
||||
if (slicer != null) {
|
||||
entry = slicer.apply(e);
|
||||
}
|
||||
ret = ret.addEntry(entry);
|
||||
ret = ret.addEntry(slicer.apply(e));
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user