Merge "Remove NetworkStats hidden API dependencies from StatsPullAtomService" am: 3f9910630b am: 9570d3f1fa

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1960189

Change-Id: Iaf6cf9ad3c148ac2bd46de6cf4e2f755320c1efb
This commit is contained in:
Aaron Huang
2022-01-27 08:58:45 +00:00
committed by Automerger Merge Worker

View File

@@ -1168,13 +1168,14 @@ public class StatsPullAtomService extends SystemService {
Slog.e(TAG, "baseline is null for " + atomTag + ", return."); Slog.e(TAG, "baseline is null for " + atomTag + ", return.");
return StatsManager.PULL_SKIP; return StatsManager.PULL_SKIP;
} }
final NetworkStatsExt diff = new NetworkStatsExt( 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.slicedByFgbg, item.slicedByTag, item.slicedByMetered, item.ratType,
item.subInfo, item.oemManaged); item.subInfo, item.oemManaged);
// If no diff, skip. // If no diff, skip.
if (diff.stats.size() == 0) continue; if (!diff.stats.iterator().hasNext()) continue;
switch (atomTag) { switch (atomTag) {
case FrameworkStatsLog.BYTES_TRANSFER_BY_TAG_AND_METERED: case FrameworkStatsLog.BYTES_TRANSFER_BY_TAG_AND_METERED:
@@ -1193,6 +1194,17 @@ public class StatsPullAtomService extends SystemService {
return StatsManager.PULL_SUCCESS; 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, private void addNetworkStats(int atomTag, @NonNull List<StatsEvent> ret,
@NonNull NetworkStatsExt statsExt) { @NonNull NetworkStatsExt statsExt) {
for (NetworkStats.Entry entry : statsExt.stats) { for (NetworkStats.Entry entry : statsExt.stats) {
@@ -1444,12 +1456,8 @@ public class StatsPullAtomService extends SystemService {
@NonNull private NetworkStats sliceNetworkStats(@NonNull NetworkStats stats, @NonNull private NetworkStats sliceNetworkStats(@NonNull NetworkStats stats,
@NonNull Function<NetworkStats.Entry, NetworkStats.Entry> slicer) { @NonNull Function<NetworkStats.Entry, NetworkStats.Entry> slicer) {
NetworkStats ret = new NetworkStats(0, 1); NetworkStats ret = new NetworkStats(0, 1);
NetworkStats.Entry entry = new NetworkStats.Entry();
for (NetworkStats.Entry e : stats) { for (NetworkStats.Entry e : stats) {
if (slicer != null) { ret = ret.addEntry(slicer.apply(e));
entry = slicer.apply(e);
}
ret = ret.addEntry(entry);
} }
return ret; return ret;
} }