diff --git a/res/values/strings.xml b/res/values/strings.xml index c5d0017e7d0..e8a0408c453 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -11467,8 +11467,6 @@ Check with your network provider for pricing. - - App data usage Invalid Network Mode %1$d. Ignore. diff --git a/res/xml/mobile_network_settings.xml b/res/xml/mobile_network_settings.xml index a29e12385ba..1e43ef06f7e 100644 --- a/res/xml/mobile_network_settings.xml +++ b/res/xml/mobile_network_settings.xml @@ -95,7 +95,7 @@ { + val repository = createNetworkCycleDataRepository() ?: return null to false + repository.loadFirstCycle()?.let { usageData -> return mContext.getString( R.string.data_usage_template, usageData.formatUsage(mContext), usageData.formatDateRange(mContext), - ) + ) to (usageData.usage > 0 || repository.queryUsage(AllTimeRange).usage > 0) } - return repository.queryUsage(AllTimeRange).takeIf { it.usage > 0 } - ?.getDataUsedString(mContext) + val allTimeUsage = repository.queryUsage(AllTimeRange) + if (allTimeUsage.usage > 0) return allTimeUsage.getDataUsedString(mContext) to true + return null to false } } 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 6cd9151fa6f..5f80855f604 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 @@ -33,6 +33,7 @@ import com.android.settings.core.BasePreferenceController.AVAILABLE_UNSEARCHABLE 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.settings.datausage.lib.NetworkUsageData import com.android.settingslib.spa.testutils.waitUntil import com.google.common.truth.Truth.assertThat @@ -140,11 +141,14 @@ class DataUsagePreferenceControllerTest { } @Test - fun updateState_noUsageData_shouldEnablePreference() = runBlocking { + fun updateState_noFistCycleUsageButOtherUsage_shouldEnablePreference() = runBlocking { val usageData = NetworkUsageData(START_TIME, END_TIME, 0L) repository.stub { on { loadFirstCycle() } doReturn usageData + on { queryUsage(AllTimeRange) } doReturn + NetworkUsageData(AllTimeRange.lower, AllTimeRange.upper, 1L) } + preference.isEnabled = false controller.onViewCreated(TestLifecycleOwner()) @@ -152,6 +156,22 @@ class DataUsagePreferenceControllerTest { waitUntil { preference.summary?.contains("0 B used") == true } } + @Test + fun updateState_noDataUsage_shouldDisablePreference() = runBlocking { + val usageData = NetworkUsageData(START_TIME, END_TIME, 0L) + repository.stub { + on { loadFirstCycle() } doReturn usageData + on { queryUsage(AllTimeRange) } doReturn + NetworkUsageData(AllTimeRange.lower, AllTimeRange.upper, 0L) + } + preference.isEnabled = true + + controller.onViewCreated(TestLifecycleOwner()) + + waitUntil { !preference.isEnabled } + waitUntil { preference.summary?.contains("0 B used") == true } + } + @Test fun updateState_shouldUseIecUnit() = runBlocking { val usageData = NetworkUsageData(START_TIME, END_TIME, DataUnit.MEBIBYTES.toBytes(1))