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

Commit f8a48668 authored by songferngwang's avatar songferngwang
Browse files

Finish the sims page when airplane mode on

Bug: 335392575
Test: verify UI
Change-Id: I9d1e4c243e195abe8c917dc83ffed175f7ef74ec
parent a92051ad
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -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
+1 −1
Original line number Diff line number Diff line
@@ -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