From 874c818b31bf8a31f42247e5c95cf9a699ed1012 Mon Sep 17 00:00:00 2001 From: Chaohui Wang Date: Wed, 31 Jul 2024 17:43:37 +0800 Subject: [PATCH] Settings search for Vo5G Also adding keywords support to MobileNetworkSettingsSearchItem. Fix: 262684662 Flag: EXEMPT bug fix Test: manual - search vo5g Change-Id: Ic73b76a2a7b2ef238b167fe3673835298d8939fd --- res/xml/mobile_network_settings.xml | 4 ++-- .../MobileNetworkSettingsSearchIndex.kt | 6 ++++++ .../NrAdvancedCallingPreferenceController.kt | 16 +++++++++++++++- .../settings/spa/search/SpaSearchRepository.kt | 2 ++ 4 files changed, 25 insertions(+), 3 deletions(-) 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