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

Commit 0684bed2 authored by Chaohui Wang's avatar Chaohui Wang
Browse files

Make SimOnboardingPageProvider Expressive

- Use GlifScaffold, and description is moved into GlifScaffold.
- Add Category.

Bug: 419002002
Flag: EXEMPT bug fix
Test: visual
Change-Id: I992cdb8720aaab42516fb4b85fd4627150b3f798
parent a881d3e3
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -40,7 +40,8 @@ import com.android.settingslib.spa.widget.editor.SettingsOutlinedTextField
import com.android.settingslib.spa.widget.preference.Preference
import com.android.settingslib.spa.widget.preference.PreferenceModel
import com.android.settingslib.spa.widget.scaffold.BottomAppBarButton
import com.android.settingslib.spa.widget.scaffold.SuwScaffold
import com.android.settingslib.spa.widget.scaffold.GlifScaffold
import com.android.settingslib.spa.widget.ui.Category

/**
 * the sim onboarding label compose
@@ -51,9 +52,10 @@ fun SimOnboardingLabelSimImpl(
    cancelAction: () -> Unit,
    onboardingService: SimOnboardingService
) {
    SuwScaffold(
    GlifScaffold(
        imageVector = Icons.Outlined.SignalCellularAlt,
        title = stringResource(R.string.sim_onboarding_label_sim_title),
        description = stringResource(R.string.sim_onboarding_label_sim_msg),
        actionButton = BottomAppBarButton(
            text = stringResource(R.string.sim_onboarding_next),
            onClick = nextAction
@@ -63,14 +65,12 @@ fun SimOnboardingLabelSimImpl(
            onClick = cancelAction
        ),
    ) {
        LabelSimBody(onboardingService)
        Category { LabelSimBody(onboardingService) }
    }
}

@Composable
private fun LabelSimBody(onboardingService: SimOnboardingService) {
    SimOnboardingMessage(stringResource(R.string.sim_onboarding_label_sim_msg))

    for (subInfo in onboardingService.getSelectableSubscriptionInfoList()) {
        LabelSimPreference(onboardingService, subInfo)
    }
+0 −18
Original line number Diff line number Diff line
@@ -21,11 +21,8 @@ import android.content.Context
import android.content.ContextWrapper
import android.os.Bundle
import androidx.annotation.VisibleForTesting
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.padding
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
import androidx.navigation.NavHostController
import androidx.navigation.NavType
@@ -41,10 +38,8 @@ import com.android.settingslib.spa.framework.common.SettingsEntryBuilder
import com.android.settingslib.spa.framework.common.SettingsPageProvider
import com.android.settingslib.spa.framework.common.createSettingsPage
import com.android.settingslib.spa.framework.compose.navigator
import com.android.settingslib.spa.framework.theme.SettingsDimension
import com.android.settingslib.spa.widget.preference.Preference
import com.android.settingslib.spa.widget.preference.PreferenceModel
import com.android.settingslib.spa.widget.ui.SettingsBody

const val SUB_ID = "subId"

@@ -141,16 +136,3 @@ fun PageImpl(onboardingService:SimOnboardingService,navHostController: NavHostCo
        }
    }
}

@Composable
fun SimOnboardingMessage(text: String) {
    Column(
        Modifier.padding(
            start = SettingsDimension.itemPaddingStart,
            end = SettingsDimension.itemPaddingEnd,
            bottom = SettingsDimension.paddingExtraLarge,
        )
    ) {
        SettingsBody(text)
    }
}
+32 −27
Original line number Diff line number Diff line
@@ -35,7 +35,8 @@ import com.android.settingslib.spa.widget.preference.ListPreference
import com.android.settingslib.spa.widget.preference.ListPreferenceModel
import com.android.settingslib.spa.widget.preference.ListPreferenceOption
import com.android.settingslib.spa.widget.scaffold.BottomAppBarButton
import com.android.settingslib.spa.widget.scaffold.SuwScaffold
import com.android.settingslib.spa.widget.scaffold.GlifScaffold
import com.android.settingslib.spa.widget.ui.Category
import com.android.settingslib.spa.widget.ui.SettingsIcon
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.flow
@@ -50,9 +51,10 @@ fun SimOnboardingPrimarySimImpl(
    cancelAction: () -> Unit,
    onboardingService: SimOnboardingService
) {
    SuwScaffold(
    GlifScaffold(
        imageVector = Icons.Outlined.SignalCellularAlt,
        title = stringResource(id = R.string.sim_onboarding_primary_sim_title),
        description = stringResource(id = R.string.sim_onboarding_primary_sim_msg),
        actionButton = BottomAppBarButton(
            text = stringResource(id = R.string.done),
            onClick = nextAction
@@ -72,8 +74,6 @@ fun SimOnboardingPrimarySimImpl(
            mutableIntStateOf(SubscriptionManager.INVALID_SUBSCRIPTION_ID)
        }

        SimOnboardingMessage(stringResource(id = R.string.sim_onboarding_primary_sim_msg))

        val context = LocalContext.current
        val primarySimInfo = remember {
            flow {
@@ -81,13 +81,14 @@ fun SimOnboardingPrimarySimImpl(
                    onboardingService.getSelectedSubscriptionInfoListWithRenaming()
                emit(PrimarySimRepository(context).getPrimarySimInfo(selectableSubInfoList))
            }.flowOn(Dispatchers.Default)
        }.collectAsStateWithLifecycle(initialValue = null).value ?: return@SuwScaffold
        }.collectAsStateWithLifecycle(initialValue = null).value ?: return@GlifScaffold
        callsSelectedId.intValue = onboardingService.targetPrimarySimCalls
        textsSelectedId.intValue = onboardingService.targetPrimarySimTexts
        mobileDataSelectedId.intValue = onboardingService.targetPrimarySimMobileData
        val isAutoDataEnabled by
            onboardingService.targetPrimarySimAutoDataSwitch
                .collectAsStateWithLifecycle(initialValue = null)
        Category {
            PrimarySimImpl(
                primarySimInfo = primarySimInfo,
                callsSelectedId = callsSelectedId,
@@ -106,12 +107,16 @@ fun SimOnboardingPrimarySimImpl(
                    onboardingService.targetPrimarySimMobileData = it
                }
            )
        AutomaticDataSwitchingPreference(isAutoDataEnabled = { isAutoDataEnabled },
        }
        Category {
            AutomaticDataSwitchingPreference(
                isAutoDataEnabled = { isAutoDataEnabled },
                setAutoDataEnabled = { newEnabled ->
                    onboardingService.targetPrimarySimAutoDataSwitch.value = newEnabled
                })
        }
    }
}

@Composable
fun CreatePrimarySimListPreference(
+5 −5
Original line number Diff line number Diff line
@@ -29,7 +29,8 @@ import com.android.settings.network.SimOnboardingService
import com.android.settingslib.spa.widget.preference.CheckboxPreference
import com.android.settingslib.spa.widget.preference.CheckboxPreferenceModel
import com.android.settingslib.spa.widget.scaffold.BottomAppBarButton
import com.android.settingslib.spa.widget.scaffold.SuwScaffold
import com.android.settingslib.spa.widget.scaffold.GlifScaffold
import com.android.settingslib.spa.widget.ui.Category

/**
 * the sim onboarding select sim compose
@@ -42,9 +43,10 @@ fun SimOnboardingSelectSimImpl(
) {
    var actionButtonController = rememberSaveable { mutableStateOf(false) }

    SuwScaffold(
    GlifScaffold(
        imageVector = Icons.Outlined.SignalCellularAlt,
        title = stringResource(id = R.string.sim_onboarding_select_sim_title),
        description = stringResource(id = R.string.sim_onboarding_select_sim_msg),
        actionButton = BottomAppBarButton(
            text = stringResource(id = R.string.sim_onboarding_next),
            enabled = actionButtonController.value,
@@ -55,7 +57,7 @@ fun SimOnboardingSelectSimImpl(
            onClick = cancelAction
        ),
    ) {
        SelectSimBody(onboardingService, actionButtonController)
        Category { SelectSimBody(onboardingService, actionButtonController) }
    }
}

@@ -64,8 +66,6 @@ private fun SelectSimBody(
    onboardingService: SimOnboardingService,
    isFinished: MutableState<Boolean>
) {
    SimOnboardingMessage(stringResource(id = R.string.sim_onboarding_select_sim_msg))

    isFinished.value = onboardingService.isSimSelectionFinished
    for (subInfo in onboardingService.getSelectableSubscriptionInfoList()) {
        var title = onboardingService.getSubscriptionInfoDisplayName(subInfo)