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

Commit 09fb13fd authored by Chaohui Wang's avatar Chaohui Wang Committed by Android (Google) Code Review
Browse files

Merge "Settings search for Vo5G" into main

parents 09f62d72 874c818b
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -293,10 +293,10 @@
            settings:controller=
                "com.android.settings.network.telephony.NullAlgorithmsPreferenceController"/>

        <!-- Settings search is handled by NrAdvancedCallingSearchItem. -->
        <com.android.settings.spa.preference.ComposePreference
            android:key="nr_advanced_calling"
            android:title="@string/nr_advanced_calling_title"
            settings:keywords="@string/keywords_nr_advanced_calling"
            settings:searchable="false"
            settings:controller="com.android.settings.network.telephony.NrAdvancedCallingPreferenceController"/>
    </PreferenceCategory>

+6 −0
Original line number Diff line number Diff line
@@ -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<MobileNetworkSettingsSearchItem> =
            listOf(
                MmsMessageSearchItem(context),
                NrAdvancedCallingSearchItem(context),
            )
    }
}
+15 −1
Original line number Diff line number Diff line
@@ -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()
        }
    }
}
+2 −0
Original line number Diff line number Diff line
@@ -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