Merge "Finish the sims page when airplane mode on" into main

This commit is contained in:
SongFerng Wang
2024-04-17 16:44:44 +00:00
committed by Android (Google) Code Review
2 changed files with 17 additions and 1 deletions

View File

@@ -19,6 +19,7 @@ package com.android.settings.spa.network
import android.content.Context
import android.content.IntentFilter
import android.os.Bundle
import android.provider.Settings
import android.telephony.SubscriptionInfo
import android.telephony.SubscriptionManager
import android.telephony.TelephonyManager
@@ -57,6 +58,7 @@ 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.settingsprovider.settingsGlobalBooleanFlow
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.Flow
@@ -110,6 +112,8 @@ object NetworkCellularGroupProvider : SettingsPageProvider {
val subscriptionViewModel = viewModel<SubscriptionInfoListViewModel>()
CollectAirplaneModeAndFinishIfOn()
remember {
allOfFlows(context, subscriptionViewModel.selectableSubscriptionInfoListFlow)
}.collectLatestWithLifecycle(LocalLifecycleOwner.current) {
@@ -327,6 +331,17 @@ fun PrimarySimSectionImpl(
}
}
@Composable
fun CollectAirplaneModeAndFinishIfOn() {
val context = LocalContext.current
context.settingsGlobalBooleanFlow(Settings.Global.AIRPLANE_MODE_ON)
.collectLatestWithLifecycle(LocalLifecycleOwner.current) { isAirplaneModeOn ->
if (isAirplaneModeOn) {
context.getActivity()?.finish()
}
}
}
private fun getWifiPickerTrackerHelper(
context: Context,
lifecycleOwner: LifecycleOwner
@@ -336,6 +351,7 @@ private fun getWifiPickerTrackerHelper(
null /* WifiPickerTrackerCallback */
)
}
private fun Context.defaultVoiceSubscriptionFlow(): Flow<Int> =
merge(
flowOf(null), // kick an initial value

View File

@@ -83,7 +83,7 @@ object SimOnboardingPageProvider : SettingsPageProvider {
): String = "${name}/$subId"
}
private fun Context.getActivity(): Activity? = when (this) {
fun Context.getActivity(): Activity? = when (this) {
is Activity -> this
is ContextWrapper -> baseContext.getActivity()
else -> null