Revert "Use addEntries when creating NetworkStats"
This reverts commit 668560d85a5d8dc97fad7570a906bfa1efe97317.
Reason for revert: Devices failing to boot, see b/359795863
Change-Id: I13dc629e2eb626bff1aed6ff262699c3f577ab9c
diff --git a/staticlibs/Android.bp b/staticlibs/Android.bp
index 94a2411..ed0670d 100644
--- a/staticlibs/Android.bp
+++ b/staticlibs/Android.bp
@@ -296,9 +296,6 @@
"framework-connectivity-t.stubs.module_lib",
"framework-location.stubs.module_lib",
],
- static_libs: [
- "modules-utils-build",
- ],
jarjar_rules: "jarjar-rules-shared.txt",
visibility: [
"//cts/tests/tests/net",
diff --git a/staticlibs/framework/com/android/net/module/util/NetworkStatsUtils.java b/staticlibs/framework/com/android/net/module/util/NetworkStatsUtils.java
index 04b6174..41a9428 100644
--- a/staticlibs/framework/com/android/net/module/util/NetworkStatsUtils.java
+++ b/staticlibs/framework/com/android/net/module/util/NetworkStatsUtils.java
@@ -19,9 +19,6 @@
import android.app.usage.NetworkStats;
import com.android.internal.annotations.VisibleForTesting;
-import com.android.modules.utils.build.SdkLevel;
-
-import java.util.ArrayList;
/**
* Various utilities used for NetworkStats related code.
@@ -108,21 +105,12 @@
*/
public static android.net.NetworkStats fromPublicNetworkStats(
NetworkStats publiceNetworkStats) {
- final ArrayList<android.net.NetworkStats.Entry> entries = new ArrayList<>();
+ android.net.NetworkStats stats = new android.net.NetworkStats(0L, 0);
while (publiceNetworkStats.hasNextBucket()) {
NetworkStats.Bucket bucket = new NetworkStats.Bucket();
publiceNetworkStats.getNextBucket(bucket);
- entries.add(fromBucket(bucket));
- }
- android.net.NetworkStats stats = new android.net.NetworkStats(0L, 0);
- // The new API is only supported on devices running the mainline version of `NetworkStats`.
- // It should always be used when available for memory efficiency.
- if (SdkLevel.isAtLeastT()) {
- stats = stats.addEntries(entries);
- } else {
- for (android.net.NetworkStats.Entry entry : entries) {
- stats = stats.addEntry(entry);
- }
+ final android.net.NetworkStats.Entry entry = fromBucket(bucket);
+ stats = stats.addEntry(entry);
}
return stats;
}
diff --git a/staticlibs/tests/unit/src/com/android/net/module/util/NetworkStatsUtilsTest.kt b/staticlibs/tests/unit/src/com/android/net/module/util/NetworkStatsUtilsTest.kt
index 97d3c19..baadad0 100644
--- a/staticlibs/tests/unit/src/com/android/net/module/util/NetworkStatsUtilsTest.kt
+++ b/staticlibs/tests/unit/src/com/android/net/module/util/NetworkStatsUtilsTest.kt
@@ -17,27 +17,15 @@
package com.android.net.module.util
import android.net.NetworkStats
-import android.net.NetworkStats.DEFAULT_NETWORK_NO
-import android.net.NetworkStats.DEFAULT_NETWORK_YES
-import android.net.NetworkStats.Entry
-import android.net.NetworkStats.METERED_NO
-import android.net.NetworkStats.ROAMING_NO
-import android.net.NetworkStats.ROAMING_YES
-import android.net.NetworkStats.SET_DEFAULT
-import android.net.NetworkStats.TAG_NONE
import androidx.test.filters.SmallTest
import androidx.test.runner.AndroidJUnit4
import com.android.testutils.assertEntryEquals
-import com.android.testutils.assertNetworkStatsEquals
-import com.android.testutils.makePublicStatsFromAndroidNetStats
import kotlin.test.assertEquals
import kotlin.test.assertFailsWith
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.Mockito.doReturn
import org.mockito.Mockito.mock
-import org.mockito.Mockito.`when`
-
@RunWith(AndroidJUnit4::class)
@SmallTest
@@ -105,37 +93,6 @@
assertEntryEquals(expectedEntry, entry)
}
- @Test
- fun testPublicStatsToAndroidNetStats() {
- val uid1 = 10001
- val uid2 = 10002
- val testIface = "wlan0"
- val testAndroidNetStats = NetworkStats(0L, 3)
- .addEntry(Entry(testIface, uid1, SET_DEFAULT, TAG_NONE,
- METERED_NO, ROAMING_NO, DEFAULT_NETWORK_YES, 20, 3, 57, 40, 3))
- .addEntry(Entry(
- testIface, uid2, SET_DEFAULT, TAG_NONE,
- METERED_NO, ROAMING_YES, DEFAULT_NETWORK_NO, 2, 7, 2, 5, 7))
- .addEntry(Entry(testIface, uid2, SET_DEFAULT, TAG_NONE,
- METERED_NO, ROAMING_YES, DEFAULT_NETWORK_NO, 4, 5, 3, 1, 8))
- val publicStats: android.app.usage.NetworkStats =
- makePublicStatsFromAndroidNetStats(testAndroidNetStats)
- val androidNetStats: NetworkStats =
- NetworkStatsUtils.fromPublicNetworkStats(publicStats)
-
- // 1. The public `NetworkStats` class does not include interface information.
- // Interface details must be removed and items with duplicated
- // keys need to be merged before making any comparisons.
- // 2. The public `NetworkStats` class lacks an operations field.
- // Thus, the information will not be preserved during the conversion.
- val expectedStats = NetworkStats(0L, 2)
- .addEntry(Entry(null, uid1, SET_DEFAULT, TAG_NONE,
- METERED_NO, ROAMING_NO, DEFAULT_NETWORK_YES, 20, 3, 57, 40, 0))
- .addEntry(Entry(null, uid2, SET_DEFAULT, TAG_NONE,
- METERED_NO, ROAMING_YES, DEFAULT_NETWORK_NO, 6, 12, 5, 6, 0))
- assertNetworkStatsEquals(expectedStats, androidNetStats)
- }
-
private fun makeMockBucket(
uid: Int,
tag: Int,
diff --git a/staticlibs/testutils/devicetests/com/android/testutils/NetworkStatsUtils.kt b/staticlibs/testutils/devicetests/com/android/testutils/NetworkStatsUtils.kt
index e8c7297..f2b14f5 100644
--- a/staticlibs/testutils/devicetests/com/android/testutils/NetworkStatsUtils.kt
+++ b/staticlibs/testutils/devicetests/com/android/testutils/NetworkStatsUtils.kt
@@ -16,12 +16,7 @@
package com.android.testutils
-import android.app.usage.NetworkStatsManager
-import android.content.Context
-import android.net.INetworkStatsService
-import android.net.INetworkStatsSession
import android.net.NetworkStats
-import android.net.NetworkTemplate
import android.text.TextUtils
import com.android.modules.utils.build.SdkLevel
import kotlin.test.assertTrue
@@ -117,32 +112,3 @@
fun assertParcelingIsLossless(stats: NetworkStats) {
assertParcelingIsLossless(stats) { a, b -> orderInsensitiveEquals(a, b) }
}
-
-/**
- * Make a {@link android.app.usage.NetworkStats} instance from
- * a {@link android.net.NetworkStats} instance.
- */
-// It's not possible to directly create a mocked `NetworkStats` instance
-// because of limitations with `NetworkStats#getNextBucket`.
-// As a workaround for testing, create a mock by controlling the return values
-// from the mocked service that provides the `NetworkStats` data.
-// Notes:
-// 1. The order of records in the final `NetworkStats` object might change or
-// some records might be merged if there are items with duplicate keys.
-// 2. The interface and operations fields will be empty since there is
-// no such field in the {@link android.app.usage.NetworkStats}.
-fun makePublicStatsFromAndroidNetStats(androidNetStats: NetworkStats):
- android.app.usage.NetworkStats {
- val mockService = Mockito.mock(INetworkStatsService::class.java)
- val manager = NetworkStatsManager(Mockito.mock(Context::class.java), mockService)
- val mockStatsSession = Mockito.mock(INetworkStatsSession::class.java)
-
- Mockito.doReturn(mockStatsSession).`when`(mockService)
- .openSessionForUsageStats(anyInt(), any())
- Mockito.doReturn(androidNetStats).`when`(mockStatsSession).getSummaryForAllUid(
- any(NetworkTemplate::class.java), anyLong(), anyLong(), anyBoolean())
- return manager.querySummary(
- Mockito.mock(NetworkTemplate::class.java),
- Long.MIN_VALUE, Long.MAX_VALUE
- )
-}