Merge "Finish the sims page when airplane mode on" into main
This commit is contained in:
committed by
Android (Google) Code Review
commit
9a9b22b3ca
@@ -19,6 +19,7 @@ package com.android.settings.spa.network
|
|||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.IntentFilter
|
import android.content.IntentFilter
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
import android.provider.Settings
|
||||||
import android.telephony.SubscriptionInfo
|
import android.telephony.SubscriptionInfo
|
||||||
import android.telephony.SubscriptionManager
|
import android.telephony.SubscriptionManager
|
||||||
import android.telephony.TelephonyManager
|
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.scaffold.RegularScaffold
|
||||||
import com.android.settingslib.spa.widget.ui.Category
|
import com.android.settingslib.spa.widget.ui.Category
|
||||||
import com.android.settingslib.spaprivileged.framework.common.broadcastReceiverFlow
|
import com.android.settingslib.spaprivileged.framework.common.broadcastReceiverFlow
|
||||||
|
import com.android.settingslib.spaprivileged.settingsprovider.settingsGlobalBooleanFlow
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
@@ -110,6 +112,8 @@ object NetworkCellularGroupProvider : SettingsPageProvider {
|
|||||||
|
|
||||||
val subscriptionViewModel = viewModel<SubscriptionInfoListViewModel>()
|
val subscriptionViewModel = viewModel<SubscriptionInfoListViewModel>()
|
||||||
|
|
||||||
|
CollectAirplaneModeAndFinishIfOn()
|
||||||
|
|
||||||
remember {
|
remember {
|
||||||
allOfFlows(context, subscriptionViewModel.selectableSubscriptionInfoListFlow)
|
allOfFlows(context, subscriptionViewModel.selectableSubscriptionInfoListFlow)
|
||||||
}.collectLatestWithLifecycle(LocalLifecycleOwner.current) {
|
}.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(
|
private fun getWifiPickerTrackerHelper(
|
||||||
context: Context,
|
context: Context,
|
||||||
lifecycleOwner: LifecycleOwner
|
lifecycleOwner: LifecycleOwner
|
||||||
@@ -336,6 +351,7 @@ private fun getWifiPickerTrackerHelper(
|
|||||||
null /* WifiPickerTrackerCallback */
|
null /* WifiPickerTrackerCallback */
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun Context.defaultVoiceSubscriptionFlow(): Flow<Int> =
|
private fun Context.defaultVoiceSubscriptionFlow(): Flow<Int> =
|
||||||
merge(
|
merge(
|
||||||
flowOf(null), // kick an initial value
|
flowOf(null), // kick an initial value
|
||||||
|
@@ -83,7 +83,7 @@ object SimOnboardingPageProvider : SettingsPageProvider {
|
|||||||
): String = "${name}/$subId"
|
): String = "${name}/$subId"
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun Context.getActivity(): Activity? = when (this) {
|
fun Context.getActivity(): Activity? = when (this) {
|
||||||
is Activity -> this
|
is Activity -> this
|
||||||
is ContextWrapper -> baseContext.getActivity()
|
is ContextWrapper -> baseContext.getActivity()
|
||||||
else -> null
|
else -> null
|
||||||
|
Reference in New Issue
Block a user