Progress dialog : add dialog properties parameter

This commit is contained in:
ganfra 2024-06-14 18:59:42 +02:00
parent 714147eb0d
commit 4f3cb5a1e5
4 changed files with 13 additions and 7 deletions

View file

@ -292,7 +292,7 @@ private fun AttachmentStateView(
is AttachmentsState.Sending.Processing -> ProgressDialogType.Indeterminate is AttachmentsState.Sending.Processing -> ProgressDialogType.Indeterminate
}, },
text = stringResource(id = CommonStrings.common_sending), text = stringResource(id = CommonStrings.common_sending),
isCancellable = true, showCancelButton = true,
onDismissRequest = onCancel, onDismissRequest = onCancel,
) )
} }

View file

@ -98,7 +98,7 @@ private fun AttachmentSendStateView(
SendActionState.Sending.Processing -> ProgressDialogType.Indeterminate SendActionState.Sending.Processing -> ProgressDialogType.Indeterminate
}, },
text = stringResource(id = CommonStrings.common_sending), text = stringResource(id = CommonStrings.common_sending),
isCancellable = true, showCancelButton = true,
onDismissRequest = onDismissClick, onDismissRequest = onDismissClick,
) )
} }

View file

@ -20,6 +20,7 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.tooling.preview.PreviewParameter
import androidx.compose.ui.window.DialogProperties
import io.element.android.features.messages.impl.timeline.FocusRequestState import io.element.android.features.messages.impl.timeline.FocusRequestState
import io.element.android.libraries.designsystem.components.ProgressDialog import io.element.android.libraries.designsystem.components.ProgressDialog
import io.element.android.libraries.designsystem.components.dialogs.ErrorDialog import io.element.android.libraries.designsystem.components.dialogs.ErrorDialog
@ -49,7 +50,11 @@ fun FocusRequestStateView(
) )
} }
FocusRequestState.Fetching -> { FocusRequestState.Fetching -> {
ProgressDialog(modifier = modifier, onDismissRequest = onClearFocusRequestState) ProgressDialog(
modifier = modifier,
properties = DialogProperties(dismissOnBackPress = true, dismissOnClickOutside = true),
onDismissRequest = onClearFocusRequestState,
)
} }
else -> Unit else -> Unit
} }

View file

@ -51,7 +51,8 @@ fun ProgressDialog(
modifier: Modifier = Modifier, modifier: Modifier = Modifier,
text: String? = null, text: String? = null,
type: ProgressDialogType = ProgressDialogType.Indeterminate, type: ProgressDialogType = ProgressDialogType.Indeterminate,
isCancellable: Boolean = false, properties: DialogProperties = DialogProperties(dismissOnBackPress = false, dismissOnClickOutside = false),
showCancelButton: Boolean = false,
onDismissRequest: () -> Unit = {}, onDismissRequest: () -> Unit = {},
) { ) {
DisposableEffect(Unit) { DisposableEffect(Unit) {
@ -61,12 +62,12 @@ fun ProgressDialog(
} }
Dialog( Dialog(
onDismissRequest = onDismissRequest, onDismissRequest = onDismissRequest,
properties = DialogProperties(dismissOnBackPress = false, dismissOnClickOutside = false) properties = properties,
) { ) {
ProgressDialogContent( ProgressDialogContent(
modifier = modifier, modifier = modifier,
text = text, text = text,
isCancellable = isCancellable, isCancellable = showCancelButton,
onCancelClick = onDismissRequest, onCancelClick = onDismissRequest,
progressIndicator = { progressIndicator = {
when (type) { when (type) {
@ -152,5 +153,5 @@ internal fun ProgressDialogContentPreview() = ElementThemedPreview {
@PreviewsDayNight @PreviewsDayNight
@Composable @Composable
internal fun ProgressDialogPreview() = ElementPreview { internal fun ProgressDialogPreview() = ElementPreview {
ProgressDialog(text = "test dialog content", isCancellable = true) ProgressDialog(text = "test dialog content", showCancelButton = true)
} }