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

Commit 73fb2909 authored by Chaohui Wang's avatar Chaohui Wang
Browse files

Check DISALLOW_CONFIG_MOBILE_NETWORKS when search

If disallowed, not show mobile related search results.

Bug: 358238959
Flag: EXEMPT bug fix
Test: manual - search Mobile Settings
Test: atest MobileNetworkSettingsSearchIndexTest
Change-Id: I79b984f41f09dd9612bcd0c9942089756d5d365d
parent d1ced23c
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -89,7 +89,7 @@ class MobileNetworkListFragment : DashboardFragment() {
            private val simRepositoryFactory: (Context) -> SimRepository = ::SimRepository
        ) : BaseSearchIndexProvider(R.xml.network_provider_sims_list) {
            public override fun isPageSearchEnabled(context: Context): Boolean =
                simRepositoryFactory(context).showMobileNetworkPage()
                simRepositoryFactory(context).canEnterMobileNetworkPage()
        }
    }
}
+1 −1
Original line number Diff line number Diff line
@@ -57,7 +57,7 @@ constructor(
    private var isAirplaneModeOn = false

    override fun getAvailabilityStatus() =
        if (SimRepository(mContext).showMobileNetworkPage()) AVAILABLE
        if (SimRepository(mContext).showMobileNetworkPageEntrance()) AVAILABLE
        else CONDITIONALLY_UNAVAILABLE

    override fun displayPreference(screen: PreferenceScreen) {
+1 −1
Original line number Diff line number Diff line
@@ -48,7 +48,7 @@ constructor(

    override fun getSummary(): CharSequence {
        val summaryResId =
            if (simRepository.showMobileNetworkPage()) {
            if (simRepository.showMobileNetworkPageEntrance()) {
                R.string.network_dashboard_summary_mobile
            } else {
                R.string.network_dashboard_summary_no_mobile
+2 −8
Original line number Diff line number Diff line
@@ -21,7 +21,6 @@ import android.provider.Settings
import android.telephony.SubscriptionInfo
import com.android.settings.R
import com.android.settings.datausage.BillingCyclePreferenceController.Companion.BillingCycleSearchItem
import com.android.settings.network.SubscriptionUtil
import com.android.settings.network.telephony.CarrierSettingsVersionPreferenceController.Companion.CarrierSettingsVersionSearchItem
import com.android.settings.network.telephony.DataUsagePreferenceController.Companion.DataUsageSearchItem
import com.android.settings.network.telephony.MmsMessagePreferenceController.Companion.MmsMessageSearchItem
@@ -36,7 +35,6 @@ import com.android.settings.spa.search.SpaSearchRepository.Companion.createSearc
import com.android.settings.spa.search.SpaSearchRepository.Companion.searchIndexProviderOf
import com.android.settingslib.search.SearchIndexableData
import com.android.settingslib.search.SearchIndexableRaw
import com.android.settingslib.spaprivileged.framework.common.userManager
import com.android.settingslib.spaprivileged.settingsprovider.settingsGlobalBoolean

class MobileNetworkSettingsSearchIndex(
@@ -109,12 +107,8 @@ class MobileNetworkSettingsSearchIndex(
    companion object {
        /** suppress full page if user is not admin */
        @JvmStatic
        fun isMobileNetworkSettingsSearchable(context: Context): Boolean {
            val isAirplaneMode by context.settingsGlobalBoolean(Settings.Global.AIRPLANE_MODE_ON)
            return SubscriptionUtil.isSimHardwareVisible(context) &&
                !isAirplaneMode &&
                context.userManager.isAdminUser
        }
        fun isMobileNetworkSettingsSearchable(context: Context): Boolean =
            SimRepository(context).canEnterMobileNetworkPage()

        fun createSearchItems(context: Context): List<MobileNetworkSettingsSearchItem> =
            listOf(
+14 −3
Original line number Diff line number Diff line
@@ -18,13 +18,24 @@ package com.android.settings.network.telephony

import android.content.Context
import android.content.pm.PackageManager
import android.os.UserManager
import android.provider.Settings
import com.android.settingslib.spaprivileged.framework.common.userManager
import com.android.settingslib.spaprivileged.settingsprovider.settingsGlobalBoolean

class SimRepository(context: Context) {
class SimRepository(private val context: Context) {
    private val packageManager = context.packageManager
    private val userManager = context.userManager

    /** Gets whether we show mobile network settings page to the current user. */
    fun showMobileNetworkPage(): Boolean =
    /** Gets whether show mobile network settings page entrance to the current user. */
    fun showMobileNetworkPageEntrance(): Boolean =
        packageManager.hasSystemFeature(PackageManager.FEATURE_TELEPHONY) && userManager.isAdminUser

    /** Gets whether current user can enter mobile network settings page. */
    fun canEnterMobileNetworkPage(): Boolean {
        val isAirplaneMode by context.settingsGlobalBoolean(Settings.Global.AIRPLANE_MODE_ON)
        return showMobileNetworkPageEntrance() &&
            !isAirplaneMode &&
            !userManager.hasUserRestriction(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS)
    }
}
Loading