diff --git a/res/xml/mobile_network_settings.xml b/res/xml/mobile_network_settings.xml
index bed6de878c5..6c0f7b5450c 100644
--- a/res/xml/mobile_network_settings.xml
+++ b/res/xml/mobile_network_settings.xml
@@ -293,10 +293,10 @@
settings:controller=
"com.android.settings.network.telephony.NullAlgorithmsPreferenceController"/>
+
diff --git a/src/com/android/settings/network/telephony/MobileNetworkSettingsSearchIndex.kt b/src/com/android/settings/network/telephony/MobileNetworkSettingsSearchIndex.kt
index 85ba382fec7..ca50fd0e758 100644
--- a/src/com/android/settings/network/telephony/MobileNetworkSettingsSearchIndex.kt
+++ b/src/com/android/settings/network/telephony/MobileNetworkSettingsSearchIndex.kt
@@ -22,6 +22,7 @@ import android.telephony.SubscriptionInfo
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.spa.SpaSearchLanding.BundleValue
import com.android.settings.spa.SpaSearchLanding.SpaSearchLandingFragment
import com.android.settings.spa.SpaSearchLanding.SpaSearchLandingKey
@@ -41,6 +42,9 @@ class MobileNetworkSettingsSearchIndex(
val title: String
+ val keywords: String?
+ get() = null
+
fun isAvailable(subId: Int): Boolean
}
@@ -89,6 +93,7 @@ class MobileNetworkSettingsSearchIndex(
context = context,
spaSearchLandingKey = key,
itemTitle = searchItem.title,
+ keywords = searchItem.keywords,
indexableClass = MobileNetworkSettings::class.java,
pageTitle = "$simsTitle > ${subInfo.displayName}",
)
@@ -107,6 +112,7 @@ class MobileNetworkSettingsSearchIndex(
fun createSearchItems(context: Context): List =
listOf(
MmsMessageSearchItem(context),
+ NrAdvancedCallingSearchItem(context),
)
}
}
diff --git a/src/com/android/settings/network/telephony/NrAdvancedCallingPreferenceController.kt b/src/com/android/settings/network/telephony/NrAdvancedCallingPreferenceController.kt
index cf47c1f0cd3..5c94e848270 100644
--- a/src/com/android/settings/network/telephony/NrAdvancedCallingPreferenceController.kt
+++ b/src/com/android/settings/network/telephony/NrAdvancedCallingPreferenceController.kt
@@ -25,6 +25,7 @@ import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.res.stringResource
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.SwitchPreference
import com.android.settingslib.spa.widget.preference.SwitchPreferenceModel
@@ -41,6 +42,7 @@ class NrAdvancedCallingPreferenceController @JvmOverloads constructor(
) : ComposePreferenceController(context, key) {
private var subId: Int = SubscriptionManager.INVALID_SUBSCRIPTION_ID
private var repository: VoNrRepository? = null
+ private val searchItem = NrAdvancedCallingSearchItem(context)
/** Initial this PreferenceController. */
@JvmOverloads
@@ -50,7 +52,7 @@ class NrAdvancedCallingPreferenceController @JvmOverloads constructor(
}
override fun getAvailabilityStatus() =
- if (repository?.isVoNrAvailable() == true) AVAILABLE else CONDITIONALLY_UNAVAILABLE
+ if (searchItem.isAvailable(subId)) AVAILABLE else CONDITIONALLY_UNAVAILABLE
@Composable
override fun Content() {
@@ -73,4 +75,16 @@ class NrAdvancedCallingPreferenceController @JvmOverloads constructor(
}
})
}
+
+ companion object {
+ class NrAdvancedCallingSearchItem(private val context: Context) :
+ MobileNetworkSettingsSearchItem {
+ override val key = "nr_advanced_calling"
+ override val title: String = context.getString(R.string.nr_advanced_calling_title)
+ override val keywords: String = context.getString(R.string.keywords_nr_advanced_calling)
+
+ override fun isAvailable(subId: Int): Boolean =
+ VoNrRepository(context, subId).isVoNrAvailable()
+ }
+ }
}
diff --git a/src/com/android/settings/spa/search/SpaSearchRepository.kt b/src/com/android/settings/spa/search/SpaSearchRepository.kt
index 0efcb70890b..e5334dd2d8a 100644
--- a/src/com/android/settings/spa/search/SpaSearchRepository.kt
+++ b/src/com/android/settings/spa/search/SpaSearchRepository.kt
@@ -93,10 +93,12 @@ class SpaSearchRepository(
itemTitle: String,
indexableClass: Class<*>,
pageTitle: String,
+ keywords: String? = null,
) =
SearchIndexableRaw(context).apply {
key = spaSearchLandingKey.toByteString().toStringUtf8()
title = itemTitle
+ this.keywords = keywords
intentAction = SEARCH_LANDING_ACTION
intentTargetClass = SpaSearchLandingActivity::class.qualifiedName
packageName = context.packageName