Merge "Show "0 B used" when no data usage this cycle" into main
diff --git a/src/com/android/settings/network/telephony/DataUsagePreferenceController.kt b/src/com/android/settings/network/telephony/DataUsagePreferenceController.kt
index d133955..6ee6909 100644
--- a/src/com/android/settings/network/telephony/DataUsagePreferenceController.kt
+++ b/src/com/android/settings/network/telephony/DataUsagePreferenceController.kt
@@ -107,7 +107,7 @@
 
     private fun getDataUsageSummary(): String? {
         val repository = createNetworkCycleDataRepository() ?: return null
-        repository.loadFirstCycle()?.takeIf { it.usage > 0 }?.let { usageData ->
+        repository.loadFirstCycle()?.let { usageData ->
             return mContext.getString(
                 R.string.data_usage_template,
                 usageData.formatUsage(mContext),
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 069145d..6cd9151 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
@@ -22,7 +22,6 @@
 import android.provider.Settings
 import android.telephony.SubscriptionManager
 import android.util.DataUnit
-import androidx.lifecycle.Lifecycle
 import androidx.lifecycle.testing.TestLifecycleOwner
 import androidx.preference.Preference
 import androidx.preference.PreferenceManager
@@ -78,13 +77,11 @@
     fun setUp() {
         mockSession = ExtendedMockito.mockitoSession()
             .initMocks(this)
-            .mockStatic(SubscriptionManager::class.java)
             .spyStatic(DataUsageUtils::class.java)
             .spyStatic(DataUsageLib::class.java)
             .strictness(Strictness.LENIENT)
             .startMocking()
 
-        whenever(SubscriptionManager.isValidSubscriptionId(SUB_ID)).thenReturn(true)
         ExtendedMockito.doReturn(true).`when` { DataUsageUtils.hasMobileData(context) }
         ExtendedMockito.doReturn(networkTemplate).`when` {
             DataUsageLib.getMobileTemplate(context, SUB_ID)
@@ -109,9 +106,10 @@
 
     @Test
     fun getAvailabilityStatus_invalidSubId_returnUnsearchable() {
-        controller.init(SubscriptionManager.INVALID_SUBSCRIPTION_ID)
+        val availabilityStatus =
+            controller.getAvailabilityStatus(SubscriptionManager.INVALID_SUBSCRIPTION_ID)
 
-        assertThat(controller.availabilityStatus).isEqualTo(AVAILABLE_UNSEARCHABLE)
+        assertThat(availabilityStatus).isEqualTo(AVAILABLE_UNSEARCHABLE)
     }
 
     @Test
@@ -120,7 +118,7 @@
         repository.stub {
             on { loadFirstCycle() } doReturn usageData
         }
-        controller.onViewCreated(TestLifecycleOwner(initialState = Lifecycle.State.STARTED))
+        controller.onViewCreated(TestLifecycleOwner())
         waitUntil { preference.summary != null }
 
         controller.handlePreferenceTreeClick(preference)
@@ -136,21 +134,22 @@
     fun updateState_invalidSubId_disabled() = runBlocking {
         controller.init(SubscriptionManager.INVALID_SUBSCRIPTION_ID)
 
-        controller.onViewCreated(TestLifecycleOwner(initialState = Lifecycle.State.STARTED))
+        controller.onViewCreated(TestLifecycleOwner())
 
         waitUntil { !preference.isEnabled }
     }
 
     @Test
-    fun updateState_noUsageData_shouldDisablePreference() = runBlocking {
+    fun updateState_noUsageData_shouldEnablePreference() = runBlocking {
         val usageData = NetworkUsageData(START_TIME, END_TIME, 0L)
         repository.stub {
             on { loadFirstCycle() } doReturn usageData
         }
 
-        controller.onViewCreated(TestLifecycleOwner(initialState = Lifecycle.State.STARTED))
+        controller.onViewCreated(TestLifecycleOwner())
 
-        waitUntil { !preference.isEnabled }
+        waitUntil { preference.isEnabled }
+        waitUntil { preference.summary?.contains("0 B used") == true }
     }
 
     @Test
@@ -160,9 +159,9 @@
             on { loadFirstCycle() } doReturn usageData
         }
 
-        controller.onViewCreated(TestLifecycleOwner(initialState = Lifecycle.State.STARTED))
+        controller.onViewCreated(TestLifecycleOwner())
 
-        waitUntil { preference.summary?.contains("1.00 MB") == true }
+        waitUntil { preference.summary?.contains("1.00 MB used") == true }
     }
 
     private companion object {