diff --git a/res/xml/mobile_network_settings.xml b/res/xml/mobile_network_settings.xml
index 6c0f7b5450c..63d8a3d7b50 100644
--- a/res/xml/mobile_network_settings.xml
+++ b/res/xml/mobile_network_settings.xml
@@ -85,9 +85,10 @@
android:summary="@string/auto_data_switch_summary"
settings:controller="com.android.settings.network.telephony.AutoDataSwitchPreferenceController"/>
+
=
listOf(
+ RoamingSearchItem(context),
MmsMessageSearchItem(context),
NrAdvancedCallingSearchItem(context),
)
diff --git a/src/com/android/settings/network/telephony/RoamingPreferenceController.kt b/src/com/android/settings/network/telephony/RoamingPreferenceController.kt
index 2529d41324e..7633677dcb4 100644
--- a/src/com/android/settings/network/telephony/RoamingPreferenceController.kt
+++ b/src/com/android/settings/network/telephony/RoamingPreferenceController.kt
@@ -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)
+ }
}
}