Create SimRepository

Which unifies whether we should sim settings on some related pages.

Before this change, we check SubscriptionUtil.isSimHardwareVisible()
and / or Utils.isWifiOnly().

After this change, we unified logic to,
canChangeSimSettings() =
  packageManager.hasSystemFeature(PackageManager.FEATURE_TELEPHONY) &&
    userManager.isAdminUser

Fix: 365924140
Flag: EXEMPT bug fix
Test: manual - check Network & internet
Test: unit tests
Change-Id: Ibf83237e3d0088f78c96a1b39ee8f1e3a9c756ea
This commit is contained in:
Chaohui Wang
2024-09-11 18:20:23 +08:00
parent 6bca37ce4b
commit a6db1aabb6
13 changed files with 295 additions and 571 deletions

View File

@@ -48,9 +48,9 @@ import androidx.lifecycle.viewmodel.compose.viewModel
import com.android.settings.R
import com.android.settings.flags.Flags
import com.android.settings.network.SubscriptionInfoListViewModel
import com.android.settings.network.SubscriptionUtil
import com.android.settings.network.telephony.DataSubscriptionRepository
import com.android.settings.network.telephony.MobileDataRepository
import com.android.settings.network.telephony.SimRepository
import com.android.settings.network.telephony.requireSubscriptionManager
import com.android.settings.spa.network.PrimarySimRepository.PrimarySimInfo
import com.android.settings.spa.search.SearchablePage
@@ -66,7 +66,6 @@ import com.android.settingslib.spa.widget.preference.PreferenceModel
import com.android.settingslib.spa.widget.scaffold.RegularScaffold
import com.android.settingslib.spa.widget.ui.Category
import com.android.settingslib.spaprivileged.framework.common.broadcastReceiverFlow
import com.android.settingslib.spaprivileged.framework.common.userManager
import com.android.settingslib.spaprivileged.settingsprovider.settingsGlobalBooleanFlow
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
@@ -213,10 +212,7 @@ open class NetworkCellularGroupProvider : SettingsPageProvider, SearchablePage {
const val fileName = "NetworkCellularGroupProvider"
private fun isPageSearchable(context: Context) =
Flags.isDualSimOnboardingEnabled() &&
SubscriptionUtil.isSimHardwareVisible(context) &&
!com.android.settingslib.Utils.isWifiOnly(context) &&
context.userManager.isAdminUser
Flags.isDualSimOnboardingEnabled() && SimRepository(context).showMobileNetworkPage()
}
}