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

Commit 4ac2d9c8 authored by Charlotte Lu's avatar Charlotte Lu Committed by Android (Google) Code Review
Browse files

Merge "Automatically save on return" into main

parents d640a51d c776835d
Loading
Loading
Loading
Loading
+13 −13
Original line number Diff line number Diff line
@@ -39,6 +39,7 @@ import com.android.settings.network.apn.ApnNetworkTypes.getNetworkTypeDisplayNam
import com.android.settings.network.apn.ApnNetworkTypes.getNetworkTypeSelectedOptionsState
import com.android.settingslib.spa.framework.common.SettingsPageProvider
import com.android.settingslib.spa.framework.compose.LocalNavController
import com.android.settingslib.spa.framework.compose.OnBackEffect
import com.android.settingslib.spa.widget.editor.SettingsExposedDropdownMenuBox
import com.android.settingslib.spa.widget.editor.SettingsExposedDropdownMenuCheckBox
import com.android.settingslib.spa.widget.editor.SettingsOutlinedTextField
@@ -97,10 +98,7 @@ fun ApnPage(apnDataInit: ApnData, apnDataCur: MutableState<ApnData>, uriInit: Ur
    val networkTypeSelectedOptionsState = remember {
        getNetworkTypeSelectedOptionsState(apnData.networkType)
    }
    RegularScaffold(
        title = if(apnDataInit.newApn) stringResource(id = R.string.apn_add) else stringResource(id = R.string.apn_edit),
        actions = {
            IconButton(onClick = {
    OnBackEffect{
        validateAndSaveApnData(
            apnDataInit,
            apnData,
@@ -108,10 +106,12 @@ fun ApnPage(apnDataInit: ApnData, apnDataCur: MutableState<ApnData>, uriInit: Ur
            uriInit,
            networkTypeSelectedOptionsState
        )
            }) { Icon(imageVector = Icons.Outlined.Done, contentDescription = "Save APN") }
    }
    val navController = LocalNavController.current
    RegularScaffold(
        title = if(apnDataInit.newApn) stringResource(id = R.string.apn_add) else stringResource(id = R.string.apn_edit),
    ) {
        Column() {
        Column {
            SettingsOutlinedTextField(
                value = apnData.name,
                label = stringResource(R.string.apn_name),
@@ -203,12 +203,12 @@ fun ApnPage(apnDataInit: ApnData, apnDataCur: MutableState<ApnData>, uriInit: Ur
                enabled = apnData.networkTypeEnabled
            ) {}
            if (!apnData.newApn) {
                val navController = LocalNavController.current
                Preference(
                    object : PreferenceModel {
                        override val title = stringResource(R.string.menu_delete)
                        override val onClick = {
                            deleteApn(uriInit, context)
                            apnData = apnData.copy(saveEnabled = false)
                            navController.navigateBack()
                        }
                    }
+5 −0
Original line number Diff line number Diff line
@@ -69,6 +69,7 @@ data class ApnData(
    val networkTypeEnabled: Boolean = true,
    val newApn: Boolean = false,
    val subId: Int = -1,
    val saveEnabled: Boolean = true,
    val customizedConfig: CustomizedConfig = CustomizedConfig()
) {
    fun getContentValues(context: Context): ContentValues {
@@ -230,6 +231,10 @@ fun validateAndSaveApnData(
    uriInit: Uri,
    networkTypeSelectedOptionsState: SnapshotStateList<Int>
): Boolean {
    // Can not be saved
    if (!apnData.saveEnabled) {
        return false
    }
    // Nothing to do if it's a read only APN
    if (apnData.customizedConfig.readOnlyApn) {
        return true