mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-07 12:58:39 +00:00
Bring back failed message state rendering and a redaction option. Bump the RustSDK to 1.0.15
This commit is contained in:
committed by
Stefan Ceriu
parent
1ce8a743a1
commit
63524bff62
@@ -7324,7 +7324,7 @@
|
|||||||
repositoryURL = "https://github.com/BarredEwe/Prefire";
|
repositoryURL = "https://github.com/BarredEwe/Prefire";
|
||||||
requirement = {
|
requirement = {
|
||||||
kind = upToNextMinorVersion;
|
kind = upToNextMinorVersion;
|
||||||
minimumVersion = 2.0.4;
|
minimumVersion = 2.8.0;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
395DE6AE429B7ACC7C7FE31D /* XCRemoteSwiftPackageReference "KZFileWatchers" */ = {
|
395DE6AE429B7ACC7C7FE31D /* XCRemoteSwiftPackageReference "KZFileWatchers" */ = {
|
||||||
@@ -7380,7 +7380,7 @@
|
|||||||
repositoryURL = "https://github.com/element-hq/matrix-rust-components-swift";
|
repositoryURL = "https://github.com/element-hq/matrix-rust-components-swift";
|
||||||
requirement = {
|
requirement = {
|
||||||
kind = exactVersion;
|
kind = exactVersion;
|
||||||
version = 1.0.14;
|
version = 1.0.15;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
701C7BEF8F70F7A83E852DCC /* XCRemoteSwiftPackageReference "GZIP" */ = {
|
701C7BEF8F70F7A83E852DCC /* XCRemoteSwiftPackageReference "GZIP" */ = {
|
||||||
@@ -7484,7 +7484,7 @@
|
|||||||
repositoryURL = "https://github.com/pointfreeco/swift-snapshot-testing";
|
repositoryURL = "https://github.com/pointfreeco/swift-snapshot-testing";
|
||||||
requirement = {
|
requirement = {
|
||||||
kind = upToNextMinorVersion;
|
kind = upToNextMinorVersion;
|
||||||
minimumVersion = 1.16.0;
|
minimumVersion = 1.16.1;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
EC6D0C817B1C21D9D096505A /* XCRemoteSwiftPackageReference "Version" */ = {
|
EC6D0C817B1C21D9D096505A /* XCRemoteSwiftPackageReference "Version" */ = {
|
||||||
|
|||||||
@@ -148,8 +148,8 @@
|
|||||||
"kind" : "remoteSourceControl",
|
"kind" : "remoteSourceControl",
|
||||||
"location" : "https://github.com/element-hq/matrix-rust-components-swift",
|
"location" : "https://github.com/element-hq/matrix-rust-components-swift",
|
||||||
"state" : {
|
"state" : {
|
||||||
"revision" : "76ccbfd106eb4d967c79eccaf339ddfc45e6f7fb",
|
"revision" : "279994ebdb1aef807946b79306bbdd892cecd873",
|
||||||
"version" : "1.0.14"
|
"version" : "1.0.15"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -184,8 +184,8 @@
|
|||||||
"kind" : "remoteSourceControl",
|
"kind" : "remoteSourceControl",
|
||||||
"location" : "https://github.com/BarredEwe/Prefire",
|
"location" : "https://github.com/BarredEwe/Prefire",
|
||||||
"state" : {
|
"state" : {
|
||||||
"revision" : "608e7992dedc5ee409e59b3580010371ff0cef57",
|
"revision" : "237f4005c81f74d5359eddb534d2d10925ef2787",
|
||||||
"version" : "2.0.4"
|
"version" : "2.8.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -247,8 +247,8 @@
|
|||||||
"kind" : "remoteSourceControl",
|
"kind" : "remoteSourceControl",
|
||||||
"location" : "https://github.com/pointfreeco/swift-snapshot-testing",
|
"location" : "https://github.com/pointfreeco/swift-snapshot-testing",
|
||||||
"state" : {
|
"state" : {
|
||||||
"revision" : "625ccca8570773dd84a34ee51a81aa2bc5a4f97a",
|
"revision" : "8ddd519780452729c6634ad6bd0d2595938e9ea3",
|
||||||
"version" : "1.16.0"
|
"version" : "1.16.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -237,7 +237,7 @@ final class AppSettings {
|
|||||||
|
|
||||||
// MARK: - Room Screen
|
// MARK: - Room Screen
|
||||||
|
|
||||||
@UserPreference(key: UserDefaultsKeys.timelineStyle, defaultValue: TimelineStyle.bubbles, storageType: .userDefaults(store))
|
@UserPreference(key: UserDefaultsKeys.timelineStyle, defaultValue: TimelineStyle.bubbles, storageType: .volatile)
|
||||||
var timelineStyle
|
var timelineStyle
|
||||||
|
|
||||||
@UserPreference(key: UserDefaultsKeys.viewSourceEnabled, defaultValue: isDevelopmentBuild, storageType: .userDefaults(store))
|
@UserPreference(key: UserDefaultsKeys.viewSourceEnabled, defaultValue: isDevelopmentBuild, storageType: .userDefaults(store))
|
||||||
|
|||||||
@@ -114,6 +114,7 @@ enum RoomScreenViewAction {
|
|||||||
case displayRoomMemberDetails(userID: String)
|
case displayRoomMemberDetails(userID: String)
|
||||||
case displayReactionSummary(itemID: TimelineItemIdentifier, key: String)
|
case displayReactionSummary(itemID: TimelineItemIdentifier, key: String)
|
||||||
case displayEmojiPicker(itemID: TimelineItemIdentifier)
|
case displayEmojiPicker(itemID: TimelineItemIdentifier)
|
||||||
|
case displayMessageSendingFailureAlert(itemID: TimelineItemIdentifier)
|
||||||
case displayReadReceipts(itemID: TimelineItemIdentifier)
|
case displayReadReceipts(itemID: TimelineItemIdentifier)
|
||||||
case displayCall
|
case displayCall
|
||||||
|
|
||||||
@@ -216,6 +217,7 @@ struct ReadReceiptSummaryInfo: Identifiable {
|
|||||||
enum RoomScreenAlertInfoType: Hashable {
|
enum RoomScreenAlertInfoType: Hashable {
|
||||||
case audioRecodingPermissionError
|
case audioRecodingPermissionError
|
||||||
case pollEndConfirmation(String)
|
case pollEndConfirmation(String)
|
||||||
|
case messageSendingFailure(TimelineItemIdentifier)
|
||||||
}
|
}
|
||||||
|
|
||||||
struct RoomMemberState {
|
struct RoomMemberState {
|
||||||
|
|||||||
@@ -182,6 +182,8 @@ class RoomScreenViewModel: RoomScreenViewModelType, RoomScreenViewModelProtocol
|
|||||||
roomScreenInteractionHandler.displayEmojiPicker(for: itemID)
|
roomScreenInteractionHandler.displayEmojiPicker(for: itemID)
|
||||||
case .displayReactionSummary(let itemID, let key):
|
case .displayReactionSummary(let itemID, let key):
|
||||||
displayReactionSummary(for: itemID, selectedKey: key)
|
displayReactionSummary(for: itemID, selectedKey: key)
|
||||||
|
case .displayMessageSendingFailureAlert(let itemID):
|
||||||
|
displayAlert(.messageSendingFailure(itemID))
|
||||||
case .displayReadReceipts(itemID: let itemID):
|
case .displayReadReceipts(itemID: let itemID):
|
||||||
displayReadReceipts(for: itemID)
|
displayReadReceipts(for: itemID)
|
||||||
case .displayCall:
|
case .displayCall:
|
||||||
@@ -770,6 +772,12 @@ class RoomScreenViewModel: RoomScreenViewModelType, RoomScreenViewModelProtocol
|
|||||||
message: L10n.commonPollEndConfirmation,
|
message: L10n.commonPollEndConfirmation,
|
||||||
primaryButton: .init(title: L10n.actionCancel, role: .cancel, action: nil),
|
primaryButton: .init(title: L10n.actionCancel, role: .cancel, action: nil),
|
||||||
secondaryButton: .init(title: L10n.actionOk, action: { self.roomScreenInteractionHandler.endPoll(pollStartID: pollStartID) }))
|
secondaryButton: .init(title: L10n.actionOk, action: { self.roomScreenInteractionHandler.endPoll(pollStartID: pollStartID) }))
|
||||||
|
case .messageSendingFailure(let itemID):
|
||||||
|
state.bindings.alertInfo = .init(id: type, title: L10n.screenRoomRetrySendMenuTitle, primaryButton: .init(title: L10n.actionRemove, role: .destructive) {
|
||||||
|
Task {
|
||||||
|
await self.timelineController.redact(itemID)
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -110,7 +110,9 @@ struct TimelineItemBubbledStylerView<Content: View>: View {
|
|||||||
VStack(alignment: alignment, spacing: -3) {
|
VStack(alignment: alignment, spacing: -3) {
|
||||||
messageBubble
|
messageBubble
|
||||||
.timelineItemAccessibility(timelineItem) {
|
.timelineItemAccessibility(timelineItem) {
|
||||||
if adjustedDeliveryStatus != .sendingFailed {
|
if adjustedDeliveryStatus == .sendingFailed {
|
||||||
|
context.send(viewAction: .displayMessageSendingFailureAlert(itemID: timelineItem.id))
|
||||||
|
} else {
|
||||||
context.send(viewAction: .displayTimelineItemMenu(itemID: timelineItem.id))
|
context.send(viewAction: .displayTimelineItemMenu(itemID: timelineItem.id))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -166,10 +168,22 @@ struct TimelineItemBubbledStylerView<Content: View>: View {
|
|||||||
timelineItem.bubbleSendInfoLayoutType
|
timelineItem.bubbleSendInfoLayoutType
|
||||||
.layout {
|
.layout {
|
||||||
contentWithReply
|
contentWithReply
|
||||||
layoutedLocalizedSendInfo
|
interactiveLocalizedSendInfo
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ViewBuilder
|
||||||
|
var interactiveLocalizedSendInfo: some View {
|
||||||
|
if adjustedDeliveryStatus == .sendingFailed {
|
||||||
|
layoutedLocalizedSendInfo
|
||||||
|
.onTapGesture {
|
||||||
|
context.send(viewAction: .displayMessageSendingFailureAlert(itemID: timelineItem.id))
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
layoutedLocalizedSendInfo
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@ViewBuilder
|
@ViewBuilder
|
||||||
var layoutedLocalizedSendInfo: some View {
|
var layoutedLocalizedSendInfo: some View {
|
||||||
switch timelineItem.bubbleSendInfoLayoutType {
|
switch timelineItem.bubbleSendInfoLayoutType {
|
||||||
|
|||||||
@@ -78,7 +78,9 @@ class EventTimelineItemProxy {
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch localSendState {
|
switch localSendState {
|
||||||
case .notSentYet, .sendingFailed:
|
case .sendingFailed:
|
||||||
|
return .sendingFailed
|
||||||
|
case .notSentYet:
|
||||||
return .sending
|
return .sending
|
||||||
case .sent:
|
case .sent:
|
||||||
return .sent
|
return .sent
|
||||||
|
|||||||
+1
-1
@@ -49,7 +49,7 @@ packages:
|
|||||||
# Element/Matrix dependencies
|
# Element/Matrix dependencies
|
||||||
MatrixRustSDK:
|
MatrixRustSDK:
|
||||||
url: https://github.com/element-hq/matrix-rust-components-swift
|
url: https://github.com/element-hq/matrix-rust-components-swift
|
||||||
exactVersion: 1.0.14
|
exactVersion: 1.0.15
|
||||||
# path: ../matrix-rust-sdk
|
# path: ../matrix-rust-sdk
|
||||||
Compound:
|
Compound:
|
||||||
url: https://github.com/element-hq/compound-ios
|
url: https://github.com/element-hq/compound-ios
|
||||||
|
|||||||
Reference in New Issue
Block a user