Filter buckets with zero usage

Avoid app with no data usage shows in DataUsageList.

Fix: 318780411
Test: manual - on DataUsageList
Test: unit test
Change-Id: Ieafd761f4c58ca4558f3f526f092e2be33027e3d
This commit is contained in:
Chaohui Wang
2024-04-01 16:52:13 +08:00
parent fd6ae421fd
commit c24af35654
2 changed files with 35 additions and 7 deletions

View File

@@ -93,6 +93,7 @@ class NetworkStatsRepository(context: Context, private val template: NetworkTemp
val buckets = mutableListOf<Bucket>()
val bucket = NetworkStats.Bucket()
while (getNextBucket(bucket)) {
if (bucket.bytes > 0) {
buckets += Bucket(
uid = bucket.uid,
bytes = bucket.bytes,
@@ -101,6 +102,7 @@ class NetworkStatsRepository(context: Context, private val template: NetworkTemp
endTimeStamp = bucket.endTimeStamp,
)
}
}
buckets
}

View File

@@ -125,6 +125,32 @@ class AppDataUsageDetailsRepositoryTest {
)
}
@Test
fun queryDetailsForCycles_appWithZeroUsage_filtered(): Unit = runBlocking {
networkStatsRepository.stub {
on { queryBuckets(CYCLE1_END_TIME, CYCLE2_END_TIME) } doReturn listOf(
Bucket(
uid = UID,
bytes = 0L,
startTimeStamp = 0L,
endTimeStamp = 0L,
),
)
}
val repository = AppDataUsageDetailsRepository(
context = context,
cycles = null,
template = template,
uids = listOf(UID),
networkCycleDataRepository = networkCycleDataRepository,
networkStatsRepository = networkStatsRepository,
)
val detailsForCycles = repository.queryDetailsForCycles()
assertThat(detailsForCycles).isEmpty()
}
private companion object {
const val CYCLE1_START_TIME = 1694444444000L
const val CYCLE1_END_TIME = 1695555555000L