mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-04 01:20:12 +00:00
show alert when trying to accept invalid invites
This commit is contained in:
@@ -774,6 +774,8 @@ internal enum L10n {
|
||||
}
|
||||
/// Failed to upload your voice message.
|
||||
internal static var errorFailedUploadingVoiceMessage: String { return L10n.tr("Localizable", "error_failed_uploading_voice_message") }
|
||||
/// The room no longer exists or the invite is no longer valid.
|
||||
internal static var errorInvalidInvite: String { return L10n.tr("Localizable", "error_invalid_invite") }
|
||||
/// Message not found
|
||||
internal static var errorMessageNotFound: String { return L10n.tr("Localizable", "error_message_not_found") }
|
||||
/// This may be due to network or server issues.
|
||||
@@ -846,7 +848,7 @@ internal enum L10n {
|
||||
internal static func notificationCompatSummaryTitle(_ p1: Int) -> String {
|
||||
return L10n.tr("Localizable", "notification_compat_summary_title", p1)
|
||||
}
|
||||
/// You have new message(s).
|
||||
/// You have new messages.
|
||||
internal static var notificationFallbackContent: String { return L10n.tr("Localizable", "notification_fallback_content") }
|
||||
/// 📹 Incoming call
|
||||
internal static var notificationIncomingCall: String { return L10n.tr("Localizable", "notification_incoming_call") }
|
||||
|
||||
@@ -416,8 +416,13 @@ class HomeScreenViewModel: HomeScreenViewModelType, HomeScreenViewModelProtocol
|
||||
isSpace: roomProxy.info.isSpace,
|
||||
activeMemberCount: UInt(roomProxy.info.activeMembersCount))
|
||||
appSettings.seenInvites.remove(roomID)
|
||||
case .failure:
|
||||
displayError()
|
||||
case .failure(let error):
|
||||
switch error {
|
||||
case .invalidInvite:
|
||||
displayError(title: L10n.dialogTitleError, message: L10n.errorInvalidInvite)
|
||||
default:
|
||||
displayError()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -474,9 +479,9 @@ class HomeScreenViewModel: HomeScreenViewModelType, HomeScreenViewModelProtocol
|
||||
}
|
||||
}
|
||||
|
||||
private func displayError() {
|
||||
private func displayError(title: String? = nil, message: String? = nil) {
|
||||
state.bindings.alertInfo = .init(id: UUID(),
|
||||
title: L10n.commonError,
|
||||
message: L10n.errorUnknown)
|
||||
title: title ?? L10n.commonError,
|
||||
message: message ?? L10n.errorUnknown)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -111,6 +111,7 @@ enum JoinRoomScreenAlertType {
|
||||
case declineInviteAndBlock
|
||||
case cancelKnock
|
||||
case loadingError
|
||||
case invalidInvite
|
||||
}
|
||||
|
||||
enum JoinRoomScreenViewAction {
|
||||
|
||||
@@ -246,10 +246,14 @@ class JoinRoomScreenViewModel: JoinRoomScreenViewModelType, JoinRoomScreenViewMo
|
||||
appSettings.seenInvites.remove(roomID)
|
||||
actionsSubject.send(.joined)
|
||||
case .failure(let error):
|
||||
if case .forbiddenAccess = error {
|
||||
switch error {
|
||||
case .forbiddenAccess:
|
||||
MXLog.error("Failed joining room alias: \(alias) forbidden access")
|
||||
state.mode = .forbidden
|
||||
} else {
|
||||
case .invalidInvite:
|
||||
MXLog.error("Failed joining room alias: \(alias) invalid invite")
|
||||
state.bindings.alertInfo = .init(id: .invalidInvite, title: L10n.dialogTitleError, message: L10n.errorInvalidInvite)
|
||||
default:
|
||||
MXLog.error("Failed joining room alias: \(alias) with error: \(error)")
|
||||
userIndicatorController.submitIndicator(.init(title: L10n.errorUnknown))
|
||||
}
|
||||
@@ -260,10 +264,14 @@ class JoinRoomScreenViewModel: JoinRoomScreenViewModelType, JoinRoomScreenViewMo
|
||||
appSettings.seenInvites.remove(roomID)
|
||||
actionsSubject.send(.joined)
|
||||
case .failure(let error):
|
||||
if case .forbiddenAccess = error {
|
||||
switch error {
|
||||
case .forbiddenAccess:
|
||||
MXLog.error("Failed joining room id: \(roomID) forbidden access")
|
||||
state.mode = .forbidden
|
||||
} else {
|
||||
case .invalidInvite:
|
||||
MXLog.error("Failed joining room id: \(roomID) invalid invite")
|
||||
state.bindings.alertInfo = .init(id: .invalidInvite, title: L10n.dialogTitleError, message: L10n.errorInvalidInvite)
|
||||
default:
|
||||
MXLog.error("Failed joining room id: \(roomID) with error: \(error)")
|
||||
userIndicatorController.submitIndicator(.init(title: L10n.errorUnknown))
|
||||
}
|
||||
|
||||
@@ -467,8 +467,11 @@ class ClientProxy: ClientProxyProtocol {
|
||||
await waitForRoomToSync(roomID: roomID, timeout: .seconds(30))
|
||||
|
||||
return .success(())
|
||||
} catch ClientError.MatrixApi(kind: .unknown, _, _, _) {
|
||||
MXLog.error("Failed joining roomID: \(roomID) invalid invite")
|
||||
return .failure(.invalidInvite)
|
||||
} catch ClientError.MatrixApi(.forbidden, _, _, _) {
|
||||
MXLog.error("Failed joining roomAlias: \(roomID) forbidden")
|
||||
MXLog.error("Failed joining roomID: \(roomID) forbidden")
|
||||
return .failure(.forbiddenAccess)
|
||||
} catch {
|
||||
MXLog.error("Failed joining roomID: \(roomID) with error: \(error)")
|
||||
@@ -483,6 +486,9 @@ class ClientProxy: ClientProxyProtocol {
|
||||
await waitForRoomToSync(roomID: room.id(), timeout: .seconds(30))
|
||||
|
||||
return .success(())
|
||||
} catch ClientError.MatrixApi(kind: .unknown, _, _, _) {
|
||||
MXLog.error("Failed joining roomAlias: \(roomAlias) invalid invite")
|
||||
return .failure(.invalidInvite)
|
||||
} catch ClientError.MatrixApi(.forbidden, _, _, _) {
|
||||
MXLog.error("Failed joining roomAlias: \(roomAlias) forbidden")
|
||||
return .failure(.forbiddenAccess)
|
||||
|
||||
@@ -39,6 +39,7 @@ enum ClientProxyError: Error {
|
||||
case failedRetrievingUserIdentity
|
||||
case failedResolvingRoomAlias
|
||||
case roomNotInLocalStore
|
||||
case invalidInvite
|
||||
}
|
||||
|
||||
enum SlidingSyncConstants {
|
||||
|
||||
Reference in New Issue
Block a user