Add compose version of OpenDeviceSettingsDialog
This commit is contained in:
parent
9e60e24790
commit
967f731654
2 changed files with 59 additions and 0 deletions
|
@ -1,7 +1,16 @@
|
|||
package com.simplemobiletools.commons.dialogs
|
||||
|
||||
import androidx.compose.material3.AlertDialog
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.material3.TextButton
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.unit.sp
|
||||
import com.simplemobiletools.commons.R
|
||||
import com.simplemobiletools.commons.activities.BaseSimpleActivity
|
||||
import com.simplemobiletools.commons.compose.alert_dialog.AlertDialogState
|
||||
import com.simplemobiletools.commons.databinding.DialogOpenDeviceSettingsBinding
|
||||
import com.simplemobiletools.commons.extensions.getAlertDialogBuilder
|
||||
import com.simplemobiletools.commons.extensions.openDeviceSettings
|
||||
|
@ -23,3 +32,42 @@ class OpenDeviceSettingsDialog(val activity: BaseSimpleActivity, message: String
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun OpenDeviceSettingsAlertDialog(
|
||||
alertDialogState: AlertDialogState,
|
||||
modifier: Modifier = Modifier,
|
||||
message: String
|
||||
) {
|
||||
val context = LocalContext.current
|
||||
|
||||
AlertDialog(
|
||||
containerColor = dialogContainerColor,
|
||||
modifier = modifier
|
||||
.dialogBorder,
|
||||
onDismissRequest = alertDialogState::hide,
|
||||
shape = dialogShape,
|
||||
tonalElevation = dialogElevation,
|
||||
text = {
|
||||
Text(
|
||||
fontSize = 16.sp,
|
||||
text = message,
|
||||
)
|
||||
},
|
||||
dismissButton = {
|
||||
TextButton(onClick = {
|
||||
alertDialogState.hide()
|
||||
}) {
|
||||
Text(text = stringResource(id = R.string.close))
|
||||
}
|
||||
},
|
||||
confirmButton = {
|
||||
TextButton(onClick = {
|
||||
context.openDeviceSettings()
|
||||
alertDialogState.hide()
|
||||
}) {
|
||||
Text(text = stringResource(id = R.string.go_to_settings))
|
||||
}
|
||||
},
|
||||
)
|
||||
}
|
||||
|
|
|
@ -54,6 +54,7 @@ class TestDialogActivity : ComponentActivity() {
|
|||
ShowButton(getFeatureLockedAlertDialogState(), text = "Feature Locked")
|
||||
ShowButton(getPurchaseThankYouAlertDialogState(), text = "Purchase thank you")
|
||||
ShowButton(getLineColorPickerAlertDialogState(), text = "Line color picker")
|
||||
ShowButton(getOpenDeviceSettingsAlertDialogState(), text = "Open device settings")
|
||||
ShowButton(getColorPickerAlertDialogState(), text = "Color picker")
|
||||
ShowButton(getCallConfirmationAlertDialogState(), text = "Call confirmation")
|
||||
ShowButton(getChangeDateTimeFormatAlertDialogState(), text = "Change date time")
|
||||
|
@ -163,6 +164,16 @@ class TestDialogActivity : ComponentActivity() {
|
|||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
private fun getOpenDeviceSettingsAlertDialogState() = rememberAlertDialogState().apply {
|
||||
DialogMember {
|
||||
OpenDeviceSettingsAlertDialog(
|
||||
alertDialogState = this,
|
||||
message = "Test message"
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
private fun getColorPickerAlertDialogState() = rememberAlertDialogState().apply {
|
||||
DialogMember {
|
||||
|
|
Loading…
Reference in a new issue