change (accept invite) : updates the error title/content dialog for accept/decline actions
This commit is contained in:
parent
f710b28dc5
commit
cee279fd44
3 changed files with 38 additions and 6 deletions
|
|
@ -1,14 +1,18 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2024 New Vector Ltd.
|
* Copyright 2025 New Vector Ltd.
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
|
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
|
||||||
* Please see LICENSE files in the repository root for full details.
|
* Please see LICENSE files in the repository root for full details.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package io.element.android.features.invite.api.acceptdecline
|
package io.element.android.features.invite.impl.acceptdecline
|
||||||
|
|
||||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||||
import io.element.android.features.invite.api.InviteData
|
import io.element.android.features.invite.api.InviteData
|
||||||
|
import io.element.android.features.invite.api.acceptdecline.AcceptDeclineInviteEvents
|
||||||
|
import io.element.android.features.invite.api.acceptdecline.AcceptDeclineInviteState
|
||||||
|
import io.element.android.features.invite.api.acceptdecline.ConfirmingDeclineInvite
|
||||||
|
import io.element.android.features.invite.impl.AcceptInvite
|
||||||
import io.element.android.libraries.architecture.AsyncAction
|
import io.element.android.libraries.architecture.AsyncAction
|
||||||
import io.element.android.libraries.matrix.api.core.RoomId
|
import io.element.android.libraries.matrix.api.core.RoomId
|
||||||
|
|
||||||
|
|
@ -18,26 +22,37 @@ open class AcceptDeclineInviteStateProvider : PreviewParameterProvider<AcceptDec
|
||||||
anAcceptDeclineInviteState(),
|
anAcceptDeclineInviteState(),
|
||||||
anAcceptDeclineInviteState(
|
anAcceptDeclineInviteState(
|
||||||
declineAction = ConfirmingDeclineInvite(
|
declineAction = ConfirmingDeclineInvite(
|
||||||
InviteData(roomId = RoomId("!room:matrix.org"), isDm = true, roomName = "Alice"),
|
InviteData(
|
||||||
|
roomId = RoomId("!room:matrix.org"),
|
||||||
|
isDm = true,
|
||||||
|
roomName = "Alice"
|
||||||
|
),
|
||||||
blockUser = false,
|
blockUser = false,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
anAcceptDeclineInviteState(
|
anAcceptDeclineInviteState(
|
||||||
declineAction = ConfirmingDeclineInvite(
|
declineAction = ConfirmingDeclineInvite(
|
||||||
InviteData(roomId = RoomId("!room:matrix.org"), isDm = true, roomName = "Alice"),
|
InviteData(
|
||||||
|
roomId = RoomId("!room:matrix.org"),
|
||||||
|
isDm = true,
|
||||||
|
roomName = "Alice"
|
||||||
|
),
|
||||||
blockUser = true,
|
blockUser = true,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
anAcceptDeclineInviteState(
|
anAcceptDeclineInviteState(
|
||||||
acceptAction = AsyncAction.Failure(RuntimeException("Error while accepting invite")),
|
acceptAction = AsyncAction.Failure(RuntimeException("Error while accepting invite")),
|
||||||
),
|
),
|
||||||
|
anAcceptDeclineInviteState(
|
||||||
|
acceptAction = AsyncAction.Failure(AcceptInvite.Failures.InvalidInvite),
|
||||||
|
),
|
||||||
anAcceptDeclineInviteState(
|
anAcceptDeclineInviteState(
|
||||||
declineAction = AsyncAction.Failure(RuntimeException("Error while declining invite")),
|
declineAction = AsyncAction.Failure(RuntimeException("Error while declining invite")),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun anAcceptDeclineInviteState(
|
private fun anAcceptDeclineInviteState(
|
||||||
acceptAction: AsyncAction<RoomId> = AsyncAction.Uninitialized,
|
acceptAction: AsyncAction<RoomId> = AsyncAction.Uninitialized,
|
||||||
declineAction: AsyncAction<RoomId> = AsyncAction.Uninitialized,
|
declineAction: AsyncAction<RoomId> = AsyncAction.Uninitialized,
|
||||||
eventSink: (AcceptDeclineInviteEvents) -> Unit = {}
|
eventSink: (AcceptDeclineInviteEvents) -> Unit = {}
|
||||||
|
|
@ -15,8 +15,8 @@ import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||||
import io.element.android.features.invite.api.InviteData
|
import io.element.android.features.invite.api.InviteData
|
||||||
import io.element.android.features.invite.api.acceptdecline.AcceptDeclineInviteEvents
|
import io.element.android.features.invite.api.acceptdecline.AcceptDeclineInviteEvents
|
||||||
import io.element.android.features.invite.api.acceptdecline.AcceptDeclineInviteState
|
import io.element.android.features.invite.api.acceptdecline.AcceptDeclineInviteState
|
||||||
import io.element.android.features.invite.api.acceptdecline.AcceptDeclineInviteStateProvider
|
|
||||||
import io.element.android.features.invite.api.acceptdecline.ConfirmingDeclineInvite
|
import io.element.android.features.invite.api.acceptdecline.ConfirmingDeclineInvite
|
||||||
|
import io.element.android.features.invite.impl.AcceptInvite
|
||||||
import io.element.android.features.invite.impl.R
|
import io.element.android.features.invite.impl.R
|
||||||
import io.element.android.libraries.designsystem.components.async.AsyncActionView
|
import io.element.android.libraries.designsystem.components.async.AsyncActionView
|
||||||
import io.element.android.libraries.designsystem.components.dialogs.ConfirmationDialog
|
import io.element.android.libraries.designsystem.components.dialogs.ConfirmationDialog
|
||||||
|
|
@ -39,6 +39,16 @@ fun AcceptDeclineInviteView(
|
||||||
onErrorDismiss = {
|
onErrorDismiss = {
|
||||||
state.eventSink(InternalAcceptDeclineInviteEvents.DismissAcceptError)
|
state.eventSink(InternalAcceptDeclineInviteEvents.DismissAcceptError)
|
||||||
},
|
},
|
||||||
|
errorTitle = {
|
||||||
|
stringResource(CommonStrings.common_something_went_wrong)
|
||||||
|
},
|
||||||
|
errorMessage = { error ->
|
||||||
|
if (error is AcceptInvite.Failures.InvalidInvite) {
|
||||||
|
stringResource(CommonStrings.error_invalid_invite)
|
||||||
|
} else {
|
||||||
|
stringResource(CommonStrings.error_network_or_server_issue)
|
||||||
|
}
|
||||||
|
}
|
||||||
)
|
)
|
||||||
AsyncActionView(
|
AsyncActionView(
|
||||||
async = state.declineAction,
|
async = state.declineAction,
|
||||||
|
|
@ -46,6 +56,12 @@ fun AcceptDeclineInviteView(
|
||||||
onErrorDismiss = {
|
onErrorDismiss = {
|
||||||
state.eventSink(InternalAcceptDeclineInviteEvents.DismissDeclineError)
|
state.eventSink(InternalAcceptDeclineInviteEvents.DismissDeclineError)
|
||||||
},
|
},
|
||||||
|
errorTitle = {
|
||||||
|
stringResource(CommonStrings.common_something_went_wrong)
|
||||||
|
},
|
||||||
|
errorMessage = {
|
||||||
|
stringResource(CommonStrings.error_network_or_server_issue)
|
||||||
|
},
|
||||||
confirmationDialog = { confirming ->
|
confirmationDialog = { confirming ->
|
||||||
// Note: confirming will always be of type ConfirmingDeclineInvite.
|
// Note: confirming will always be of type ConfirmingDeclineInvite.
|
||||||
if (confirming is ConfirmingDeclineInvite) {
|
if (confirming is ConfirmingDeclineInvite) {
|
||||||
|
|
|
||||||
|
|
@ -333,6 +333,7 @@ Are you sure you want to continue?"</string>
|
||||||
<string name="error_failed_loading_messages">"Failed loading messages"</string>
|
<string name="error_failed_loading_messages">"Failed loading messages"</string>
|
||||||
<string name="error_failed_locating_user">"%1$s could not access your location. Please try again later."</string>
|
<string name="error_failed_locating_user">"%1$s could not access your location. Please try again later."</string>
|
||||||
<string name="error_failed_uploading_voice_message">"Failed to upload your voice message."</string>
|
<string name="error_failed_uploading_voice_message">"Failed to upload your voice message."</string>
|
||||||
|
<string name="error_invalid_invite">"The room no longer exists or the invite is no longer valid."</string>
|
||||||
<string name="error_message_not_found">"Message not found"</string>
|
<string name="error_message_not_found">"Message not found"</string>
|
||||||
<string name="error_missing_location_auth_android">"%1$s does not have permission to access your location. You can enable access in Settings."</string>
|
<string name="error_missing_location_auth_android">"%1$s does not have permission to access your location. You can enable access in Settings."</string>
|
||||||
<string name="error_missing_location_rationale_android">"%1$s does not have permission to access your location. Enable access below."</string>
|
<string name="error_missing_location_rationale_android">"%1$s does not have permission to access your location. Enable access below."</string>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue