Merge "Settings search for Vo5G" into main
This commit is contained in:
@@ -293,10 +293,10 @@
|
|||||||
settings:controller=
|
settings:controller=
|
||||||
"com.android.settings.network.telephony.NullAlgorithmsPreferenceController"/>
|
"com.android.settings.network.telephony.NullAlgorithmsPreferenceController"/>
|
||||||
|
|
||||||
|
<!-- Settings search is handled by NrAdvancedCallingSearchItem. -->
|
||||||
<com.android.settings.spa.preference.ComposePreference
|
<com.android.settings.spa.preference.ComposePreference
|
||||||
android:key="nr_advanced_calling"
|
android:key="nr_advanced_calling"
|
||||||
android:title="@string/nr_advanced_calling_title"
|
settings:searchable="false"
|
||||||
settings:keywords="@string/keywords_nr_advanced_calling"
|
|
||||||
settings:controller="com.android.settings.network.telephony.NrAdvancedCallingPreferenceController"/>
|
settings:controller="com.android.settings.network.telephony.NrAdvancedCallingPreferenceController"/>
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
|
|
||||||
|
@@ -22,6 +22,7 @@ import android.telephony.SubscriptionInfo
|
|||||||
import com.android.settings.R
|
import com.android.settings.R
|
||||||
import com.android.settings.network.SubscriptionUtil
|
import com.android.settings.network.SubscriptionUtil
|
||||||
import com.android.settings.network.telephony.MmsMessagePreferenceController.Companion.MmsMessageSearchItem
|
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.BundleValue
|
||||||
import com.android.settings.spa.SpaSearchLanding.SpaSearchLandingFragment
|
import com.android.settings.spa.SpaSearchLanding.SpaSearchLandingFragment
|
||||||
import com.android.settings.spa.SpaSearchLanding.SpaSearchLandingKey
|
import com.android.settings.spa.SpaSearchLanding.SpaSearchLandingKey
|
||||||
@@ -41,6 +42,9 @@ class MobileNetworkSettingsSearchIndex(
|
|||||||
|
|
||||||
val title: String
|
val title: String
|
||||||
|
|
||||||
|
val keywords: String?
|
||||||
|
get() = null
|
||||||
|
|
||||||
fun isAvailable(subId: Int): Boolean
|
fun isAvailable(subId: Int): Boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -89,6 +93,7 @@ class MobileNetworkSettingsSearchIndex(
|
|||||||
context = context,
|
context = context,
|
||||||
spaSearchLandingKey = key,
|
spaSearchLandingKey = key,
|
||||||
itemTitle = searchItem.title,
|
itemTitle = searchItem.title,
|
||||||
|
keywords = searchItem.keywords,
|
||||||
indexableClass = MobileNetworkSettings::class.java,
|
indexableClass = MobileNetworkSettings::class.java,
|
||||||
pageTitle = "$simsTitle > ${subInfo.displayName}",
|
pageTitle = "$simsTitle > ${subInfo.displayName}",
|
||||||
)
|
)
|
||||||
@@ -107,6 +112,7 @@ class MobileNetworkSettingsSearchIndex(
|
|||||||
fun createSearchItems(context: Context): List<MobileNetworkSettingsSearchItem> =
|
fun createSearchItems(context: Context): List<MobileNetworkSettingsSearchItem> =
|
||||||
listOf(
|
listOf(
|
||||||
MmsMessageSearchItem(context),
|
MmsMessageSearchItem(context),
|
||||||
|
NrAdvancedCallingSearchItem(context),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -25,6 +25,7 @@ import androidx.compose.runtime.rememberCoroutineScope
|
|||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||||
import com.android.settings.R
|
import com.android.settings.R
|
||||||
|
import com.android.settings.network.telephony.MobileNetworkSettingsSearchIndex.MobileNetworkSettingsSearchItem
|
||||||
import com.android.settings.spa.preference.ComposePreferenceController
|
import com.android.settings.spa.preference.ComposePreferenceController
|
||||||
import com.android.settingslib.spa.widget.preference.SwitchPreference
|
import com.android.settingslib.spa.widget.preference.SwitchPreference
|
||||||
import com.android.settingslib.spa.widget.preference.SwitchPreferenceModel
|
import com.android.settingslib.spa.widget.preference.SwitchPreferenceModel
|
||||||
@@ -41,6 +42,7 @@ class NrAdvancedCallingPreferenceController @JvmOverloads constructor(
|
|||||||
) : ComposePreferenceController(context, key) {
|
) : ComposePreferenceController(context, key) {
|
||||||
private var subId: Int = SubscriptionManager.INVALID_SUBSCRIPTION_ID
|
private var subId: Int = SubscriptionManager.INVALID_SUBSCRIPTION_ID
|
||||||
private var repository: VoNrRepository? = null
|
private var repository: VoNrRepository? = null
|
||||||
|
private val searchItem = NrAdvancedCallingSearchItem(context)
|
||||||
|
|
||||||
/** Initial this PreferenceController. */
|
/** Initial this PreferenceController. */
|
||||||
@JvmOverloads
|
@JvmOverloads
|
||||||
@@ -50,7 +52,7 @@ class NrAdvancedCallingPreferenceController @JvmOverloads constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun getAvailabilityStatus() =
|
override fun getAvailabilityStatus() =
|
||||||
if (repository?.isVoNrAvailable() == true) AVAILABLE else CONDITIONALLY_UNAVAILABLE
|
if (searchItem.isAvailable(subId)) AVAILABLE else CONDITIONALLY_UNAVAILABLE
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
override fun Content() {
|
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()
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -93,10 +93,12 @@ class SpaSearchRepository(
|
|||||||
itemTitle: String,
|
itemTitle: String,
|
||||||
indexableClass: Class<*>,
|
indexableClass: Class<*>,
|
||||||
pageTitle: String,
|
pageTitle: String,
|
||||||
|
keywords: String? = null,
|
||||||
) =
|
) =
|
||||||
SearchIndexableRaw(context).apply {
|
SearchIndexableRaw(context).apply {
|
||||||
key = spaSearchLandingKey.toByteString().toStringUtf8()
|
key = spaSearchLandingKey.toByteString().toStringUtf8()
|
||||||
title = itemTitle
|
title = itemTitle
|
||||||
|
this.keywords = keywords
|
||||||
intentAction = SEARCH_LANDING_ACTION
|
intentAction = SEARCH_LANDING_ACTION
|
||||||
intentTargetClass = SpaSearchLandingActivity::class.qualifiedName
|
intentTargetClass = SpaSearchLandingActivity::class.qualifiedName
|
||||||
packageName = context.packageName
|
packageName = context.packageName
|
||||||
|
Reference in New Issue
Block a user