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

Commit b9db3c53 authored by Chaohui Wang's avatar Chaohui Wang
Browse files

Settings search for Roaming

Fix: 351740003
Flag: EXEMPT bug fix
Test: manual - search roaming
Change-Id: I260449bdea7dcaae6a2d44c6810cf2638c18d9a4
parent 793253aa
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -85,9 +85,10 @@
            android:summary="@string/auto_data_switch_summary"
            settings:controller="com.android.settings.network.telephony.AutoDataSwitchPreferenceController"/>

        <!-- Settings search is handled by RoamingSearchItem. -->
        <com.android.settings.spa.preference.ComposePreference
            android:key="button_roaming_key"
            android:title="@string/roaming"
            settings:searchable="false"
            settings:controller="com.android.settings.network.telephony.RoamingPreferenceController"/>

        <Preference
+2 −0
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import com.android.settings.R
import com.android.settings.network.SubscriptionUtil
import com.android.settings.network.telephony.MmsMessagePreferenceController.Companion.MmsMessageSearchItem
import com.android.settings.network.telephony.NrAdvancedCallingPreferenceController.Companion.NrAdvancedCallingSearchItem
import com.android.settings.network.telephony.RoamingPreferenceController.Companion.RoamingSearchItem
import com.android.settings.spa.SpaSearchLanding.BundleValue
import com.android.settings.spa.SpaSearchLanding.SpaSearchLandingFragment
import com.android.settings.spa.SpaSearchLanding.SpaSearchLandingKey
@@ -111,6 +112,7 @@ class MobileNetworkSettingsSearchIndex(

        fun createSearchItems(context: Context): List<MobileNetworkSettingsSearchItem> =
            listOf(
                RoamingSearchItem(context),
                MmsMessageSearchItem(context),
                NrAdvancedCallingSearchItem(context),
            )
+16 −8
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ import androidx.compose.ui.res.stringResource
import androidx.fragment.app.FragmentManager
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.android.settings.R
import com.android.settings.network.telephony.MobileNetworkSettingsSearchIndex.MobileNetworkSettingsSearchItem
import com.android.settings.spa.preference.ComposePreferenceController
import com.android.settingslib.spa.widget.preference.SwitchPreferenceModel
import com.android.settingslib.spaprivileged.model.enterprise.Restrictions
@@ -47,6 +48,7 @@ constructor(

    private var telephonyManager = context.getSystemService(TelephonyManager::class.java)!!
    private val carrierConfigRepository = CarrierConfigRepository(context)
    private val roamingSearchItem = RoamingSearchItem(context)

    fun init(fragmentManager: FragmentManager, subId: Int) {
        this.fragmentManager = fragmentManager
@@ -54,14 +56,8 @@ constructor(
        telephonyManager = telephonyManager.createForSubscriptionId(subId)
    }

    override fun getAvailabilityStatus(): Int {
        if (!SubscriptionManager.isValidSubscriptionId(subId)) return CONDITIONALLY_UNAVAILABLE
        val isForceHomeNetwork =
            carrierConfigRepository.getBoolean(
                subId, CarrierConfigManager.KEY_FORCE_HOME_NETWORK_BOOL)

        return if (isForceHomeNetwork) CONDITIONALLY_UNAVAILABLE else AVAILABLE
    }
    override fun getAvailabilityStatus() =
        if (roamingSearchItem.isAvailable(subId)) AVAILABLE else CONDITIONALLY_UNAVAILABLE

    @Composable
    override fun Content() {
@@ -101,5 +97,17 @@ constructor(

    companion object {
        private const val DIALOG_TAG = "MobileDataDialog"

        class RoamingSearchItem(context: Context) : MobileNetworkSettingsSearchItem {
            override val key = "button_roaming_key"
            override val title: String = context.getString(R.string.roaming)

            private val carrierConfigRepository = CarrierConfigRepository(context)

            override fun isAvailable(subId: Int): Boolean =
                SubscriptionManager.isValidSubscriptionId(subId) &&
                    !carrierConfigRepository.getBoolean(
                        subId, CarrierConfigManager.KEY_FORCE_HOME_NETWORK_BOOL)
        }
    }
}