Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 601fe12e authored by Chaohui Wang's avatar Chaohui Wang Committed by Android (Google) Code Review
Browse files

Merge "Show "0 B used" when no data usage this cycle" into main

parents 43d6a231 f28d1195
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -107,7 +107,7 @@ class DataUsagePreferenceController(context: Context, key: String) :

    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),
+11 −12
Original line number Diff line number Diff line
@@ -22,7 +22,6 @@ import android.net.NetworkTemplate
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 @@ class DataUsagePreferenceControllerTest {
    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 @@ class DataUsagePreferenceControllerTest {

    @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 @@ class DataUsagePreferenceControllerTest {
        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 @@ class DataUsagePreferenceControllerTest {
    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 @@ class DataUsagePreferenceControllerTest {
            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 {