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

Commit 874c818b authored by Chaohui Wang's avatar Chaohui Wang
Browse files

Settings search for Vo5G

Also adding keywords support to MobileNetworkSettingsSearchItem.

Fix: 262684662
Flag: EXEMPT bug fix
Test: manual - search vo5g
Change-Id: Ic73b76a2a7b2ef238b167fe3673835298d8939fd
parent b7f68b4a
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