mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-03 16:10:00 +00:00
Use AsyncView in EditDefaultNotificationSettingView
This commit is contained in:
committed by
Benoit Marty
parent
cc5321f65a
commit
6ad2c99576
+12
-20
@@ -22,20 +22,18 @@ 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 io.element.android.libraries.architecture.Async
|
import io.element.android.libraries.designsystem.components.async.AsyncView
|
||||||
import io.element.android.libraries.designsystem.components.ProgressDialog
|
|
||||||
import io.element.android.libraries.designsystem.components.avatar.Avatar
|
import io.element.android.libraries.designsystem.components.avatar.Avatar
|
||||||
import io.element.android.libraries.designsystem.components.avatar.AvatarData
|
import io.element.android.libraries.designsystem.components.avatar.AvatarData
|
||||||
import io.element.android.libraries.designsystem.components.avatar.AvatarSize
|
import io.element.android.libraries.designsystem.components.avatar.AvatarSize
|
||||||
import io.element.android.libraries.designsystem.components.dialogs.ErrorDialog
|
|
||||||
import io.element.android.libraries.designsystem.components.list.ListItemContent
|
import io.element.android.libraries.designsystem.components.list.ListItemContent
|
||||||
import io.element.android.libraries.designsystem.components.preferences.PreferenceCategory
|
import io.element.android.libraries.designsystem.components.preferences.PreferenceCategory
|
||||||
|
import io.element.android.libraries.designsystem.components.preferences.PreferencePage
|
||||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||||
|
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||||
import io.element.android.libraries.designsystem.theme.components.ListItem
|
import io.element.android.libraries.designsystem.theme.components.ListItem
|
||||||
import io.element.android.libraries.designsystem.theme.components.Text
|
import io.element.android.libraries.designsystem.theme.components.Text
|
||||||
import io.element.android.libraries.matrix.api.core.RoomId
|
import io.element.android.libraries.matrix.api.core.RoomId
|
||||||
import io.element.android.libraries.designsystem.components.preferences.PreferencePage
|
|
||||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
|
||||||
import io.element.android.libraries.matrix.api.room.RoomNotificationMode
|
import io.element.android.libraries.matrix.api.room.RoomNotificationMode
|
||||||
import io.element.android.libraries.ui.strings.CommonStrings
|
import io.element.android.libraries.ui.strings.CommonStrings
|
||||||
|
|
||||||
@@ -46,11 +44,10 @@ import io.element.android.libraries.ui.strings.CommonStrings
|
|||||||
@Composable
|
@Composable
|
||||||
fun EditDefaultNotificationSettingView(
|
fun EditDefaultNotificationSettingView(
|
||||||
state: EditDefaultNotificationSettingState,
|
state: EditDefaultNotificationSettingState,
|
||||||
openRoomNotificationSettings:(roomId: RoomId) -> Unit,
|
openRoomNotificationSettings: (roomId: RoomId) -> Unit,
|
||||||
onBackPressed: () -> Unit,
|
onBackPressed: () -> Unit,
|
||||||
modifier: Modifier = Modifier,
|
modifier: Modifier = Modifier,
|
||||||
) {
|
) {
|
||||||
|
|
||||||
val title = if (state.isOneToOne) {
|
val title = if (state.isOneToOne) {
|
||||||
CommonStrings.screen_notification_settings_direct_chats
|
CommonStrings.screen_notification_settings_direct_chats
|
||||||
} else {
|
} else {
|
||||||
@@ -118,21 +115,16 @@ fun EditDefaultNotificationSettingView(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
when (state.changeNotificationSettingAction) {
|
val errorMessage = stringResource(CommonStrings.screen_notification_settings_edit_failed_updating_default_mode)
|
||||||
is Async.Loading -> {
|
AsyncView(
|
||||||
ProgressDialog()
|
async = state.changeNotificationSettingAction,
|
||||||
}
|
errorTransform = { errorMessage },
|
||||||
is Async.Failure -> {
|
onErrorDismiss = { state.eventSink(EditDefaultNotificationSettingStateEvents.ClearError) },
|
||||||
ErrorDialog(
|
onSuccess = {},
|
||||||
title = stringResource(CommonStrings.dialog_title_error),
|
)
|
||||||
content = stringResource(CommonStrings.screen_notification_settings_edit_failed_updating_default_mode),
|
|
||||||
onDismiss = { state.eventSink(EditDefaultNotificationSettingStateEvents.ClearError) },
|
|
||||||
)
|
|
||||||
}
|
|
||||||
else -> Unit
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@PreviewsDayNight
|
@PreviewsDayNight
|
||||||
@Composable
|
@Composable
|
||||||
internal fun EditDefaultNotificationSettingViewPreview(
|
internal fun EditDefaultNotificationSettingViewPreview(
|
||||||
|
|||||||
Reference in New Issue
Block a user