Merge "Automatically save on return" into main
This commit is contained in:
@@ -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()
|
||||
}
|
||||
}
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user