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

Commit a34fcae5 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "[SB] Add helper function for MobileConnectionRepository.numberOfLevels" into main

parents ad6c874b a6d8ab45
Loading
Loading
Loading
Loading
+27 −0
Original line number Diff line number Diff line
@@ -25,7 +25,12 @@ import com.android.systemui.statusbar.pipeline.mobile.data.model.NetworkNameMode
import com.android.systemui.statusbar.pipeline.mobile.data.model.ResolvedNetworkType
import com.android.systemui.statusbar.pipeline.mobile.data.model.SubscriptionModel
import com.android.systemui.statusbar.pipeline.shared.data.model.DataActivityModel
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.SharingStarted
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.flow.stateIn

/**
 * Every mobile line of service can be identified via a [SubscriptionInfo] object. We set up a
@@ -174,5 +179,27 @@ interface MobileConnectionRepository {
    companion object {
        /** The default number of levels to use for [numberOfLevels]. */
        val DEFAULT_NUM_LEVELS = CellSignalStrength.getNumSignalStrengthLevels()

        /**
         * Automatically implements [MobileConnectionRepository.numberOfLevels] based on the
         * [inflateSignalStrength] value.
         *
         * @param default The default number of levels to use if [inflateSignalStrength] is false.
         */
        fun createNumberOfLevelsFlow(
            scope: CoroutineScope,
            inflateSignalStrength: Flow<Boolean>,
            default: Int = DEFAULT_NUM_LEVELS,
        ): StateFlow<Int> {
            return inflateSignalStrength
                .map { shouldInflate ->
                    if (shouldInflate) {
                        default + 1
                    } else {
                        default
                    }
                }
                .stateIn(scope, SharingStarted.WhileSubscribed(), default)
        }
    }
}
+2 −12
Original line number Diff line number Diff line
@@ -25,7 +25,7 @@ import com.android.systemui.statusbar.pipeline.mobile.data.model.DataConnectionS
import com.android.systemui.statusbar.pipeline.mobile.data.model.NetworkNameModel
import com.android.systemui.statusbar.pipeline.mobile.data.model.ResolvedNetworkType
import com.android.systemui.statusbar.pipeline.mobile.data.repository.MobileConnectionRepository
import com.android.systemui.statusbar.pipeline.mobile.data.repository.MobileConnectionRepository.Companion.DEFAULT_NUM_LEVELS
import com.android.systemui.statusbar.pipeline.mobile.data.repository.MobileConnectionRepository.Companion.createNumberOfLevelsFlow
import com.android.systemui.statusbar.pipeline.mobile.data.repository.demo.model.FakeNetworkEventModel
import com.android.systemui.statusbar.pipeline.mobile.data.repository.prod.FullMobileConnectionRepository.Companion.COL_CARRIER_ID
import com.android.systemui.statusbar.pipeline.mobile.data.repository.prod.FullMobileConnectionRepository.Companion.COL_CARRIER_NETWORK_CHANGE
@@ -45,7 +45,6 @@ import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.SharingStarted
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.flow.stateIn

/**
@@ -198,16 +197,7 @@ class DemoMobileConnectionRepository(
            .logDiffsForTable(tableLogBuffer, initialValue = _resolvedNetworkType.value)
            .stateIn(scope, SharingStarted.WhileSubscribed(), _resolvedNetworkType.value)

    override val numberOfLevels =
        _inflateSignalStrength
            .map { shouldInflate ->
                if (shouldInflate) {
                    DEFAULT_NUM_LEVELS + 1
                } else {
                    DEFAULT_NUM_LEVELS
                }
            }
            .stateIn(scope, SharingStarted.WhileSubscribed(), DEFAULT_NUM_LEVELS)
    override val numberOfLevels = createNumberOfLevelsFlow(scope,  _inflateSignalStrength)

    override val dataEnabled = MutableStateFlow(true)

+2 −11
Original line number Diff line number Diff line
@@ -60,7 +60,7 @@ import com.android.systemui.statusbar.pipeline.mobile.data.model.toDataConnectio
import com.android.systemui.statusbar.pipeline.mobile.data.model.toNetworkNameModel
import com.android.systemui.statusbar.pipeline.mobile.data.repository.CarrierConfigRepository
import com.android.systemui.statusbar.pipeline.mobile.data.repository.MobileConnectionRepository
import com.android.systemui.statusbar.pipeline.mobile.data.repository.MobileConnectionRepository.Companion.DEFAULT_NUM_LEVELS
import com.android.systemui.statusbar.pipeline.mobile.data.repository.MobileConnectionRepository.Companion.createNumberOfLevelsFlow
import com.android.systemui.statusbar.pipeline.mobile.util.MobileMappingsProxy
import com.android.systemui.statusbar.pipeline.shared.data.model.DataActivityModel
import com.android.systemui.statusbar.pipeline.shared.data.model.toMobileDataActivityModel
@@ -327,16 +327,7 @@ class MobileConnectionRepositoryImpl(
    override val inflateSignalStrength = systemUiCarrierConfig.shouldInflateSignalStrength
    override val allowNetworkSliceIndicator = systemUiCarrierConfig.allowNetworkSliceIndicator

    override val numberOfLevels =
        inflateSignalStrength
            .map { shouldInflate ->
                if (shouldInflate) {
                    DEFAULT_NUM_LEVELS + 1
                } else {
                    DEFAULT_NUM_LEVELS
                }
            }
            .stateIn(scope, SharingStarted.WhileSubscribed(), DEFAULT_NUM_LEVELS)
    override val numberOfLevels = createNumberOfLevelsFlow(scope, inflateSignalStrength)

    override val carrierName =
        subscriptionModel