From 9e5b389de359d0cc06ce956ba1b3542145008110 Mon Sep 17 00:00:00 2001 From: Chaohui Wang Date: Thu, 7 Mar 2024 15:20:01 +0800 Subject: [PATCH] Fix flicker of "App data usage" Use placeholder to hold the place. Fix: 323466366 Test: manual - on Mobile Settings Test: unit test Change-Id: I3c4d9ff6538a79500318869f01f4b88b55bd9475 (cherry picked from commit 74fe516e09e22428b60bfb61484ab1512e1d2328) Merged-In: I3c4d9ff6538a79500318869f01f4b88b55bd9475 --- .../network/telephony/DataUsagePreferenceController.kt | 5 +++-- .../network/telephony/DataUsagePreferenceControllerTest.kt | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/com/android/settings/network/telephony/DataUsagePreferenceController.kt b/src/com/android/settings/network/telephony/DataUsagePreferenceController.kt index 240843dbba1..6d326e080b1 100644 --- a/src/com/android/settings/network/telephony/DataUsagePreferenceController.kt +++ b/src/com/android/settings/network/telephony/DataUsagePreferenceController.kt @@ -33,6 +33,7 @@ import com.android.settings.datausage.DataUsageUtils import com.android.settings.datausage.lib.DataUsageLib import com.android.settings.datausage.lib.NetworkCycleDataRepository import com.android.settings.datausage.lib.NetworkStatsRepository.Companion.AllTimeRange +import com.android.settingslib.spaprivileged.framework.compose.getPlaceholder import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext @@ -63,6 +64,7 @@ class DataUsagePreferenceController(context: Context, key: String) : } override fun onViewCreated(viewLifecycleOwner: LifecycleOwner) { + preference.summary = mContext.getPlaceholder() viewLifecycleOwner.lifecycleScope.launch { viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) { update() @@ -113,7 +115,6 @@ class DataUsagePreferenceController(context: Context, key: String) : } val allTimeUsage = repository.queryUsage(AllTimeRange) - if (allTimeUsage.usage > 0) return allTimeUsage.getDataUsedString(mContext) to true - return null to false + return allTimeUsage.getDataUsedString(mContext) to (allTimeUsage.usage > 0) } } diff --git a/tests/spa_unit/src/com/android/settings/network/telephony/DataUsagePreferenceControllerTest.kt b/tests/spa_unit/src/com/android/settings/network/telephony/DataUsagePreferenceControllerTest.kt index 5f80855f604..7124b6ac2cd 100644 --- a/tests/spa_unit/src/com/android/settings/network/telephony/DataUsagePreferenceControllerTest.kt +++ b/tests/spa_unit/src/com/android/settings/network/telephony/DataUsagePreferenceControllerTest.kt @@ -120,7 +120,7 @@ class DataUsagePreferenceControllerTest { on { loadFirstCycle() } doReturn usageData } controller.onViewCreated(TestLifecycleOwner()) - waitUntil { preference.summary != null } + waitUntil { !preference.summary.isNullOrBlank() } controller.handlePreferenceTreeClick(preference)