Use AsyncView in NotificationSettingsView

This commit is contained in:
Benoit Marty 2023-11-03 16:27:37 +01:00 committed by Benoit Marty
parent 41040f45ef
commit 469e34a0d4

View file

@ -24,9 +24,8 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.tooling.preview.PreviewParameter
import androidx.lifecycle.Lifecycle import androidx.lifecycle.Lifecycle
import io.element.android.libraries.androidutils.system.startNotificationSettingsIntent import io.element.android.libraries.androidutils.system.startNotificationSettingsIntent
import io.element.android.libraries.architecture.Async
import io.element.android.libraries.designsystem.atomic.molecules.DialogLikeBannerMolecule import io.element.android.libraries.designsystem.atomic.molecules.DialogLikeBannerMolecule
import io.element.android.libraries.designsystem.components.ProgressDialog import io.element.android.libraries.designsystem.components.async.AsyncView
import io.element.android.libraries.designsystem.components.dialogs.ErrorDialog import io.element.android.libraries.designsystem.components.dialogs.ErrorDialog
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.components.preferences.PreferencePage
@ -79,19 +78,13 @@ fun NotificationSettingsView(
// onCallsNotificationsChanged = { state.eventSink(NotificationSettingsEvents.SetCallNotificationsEnabled(it)) }, // onCallsNotificationsChanged = { state.eventSink(NotificationSettingsEvents.SetCallNotificationsEnabled(it)) },
) )
} }
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(NotificationSettingsEvents.ClearNotificationChangeError) },
ErrorDialog( onSuccess = {},
title = stringResource(CommonStrings.dialog_title_error), )
content = stringResource(CommonStrings.screen_notification_settings_edit_failed_updating_default_mode),
onDismiss = { state.eventSink(NotificationSettingsEvents.ClearNotificationChangeError) },
)
}
else -> Unit
}
} }
} }