From 49d6f23de0a1ad74c0ea56a2f697062fe70c166e Mon Sep 17 00:00:00 2001 From: Mauro Romito Date: Thu, 8 Jun 2023 15:43:46 +0200 Subject: [PATCH] better and less convoluted solution --- ElementX/Sources/Other/Extensions/String.swift | 4 ++-- .../RoomScreen/View/Style/TimelineStyler.swift | 12 ++++++------ .../RoomScreen/View/Timeline/FormattedBodyText.swift | 4 ++-- UnitTests/Sources/StringTests.swift | 6 +++--- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/ElementX/Sources/Other/Extensions/String.swift b/ElementX/Sources/Other/Extensions/String.swift index 8e9f9ff36a..b7d2b9cb9f 100644 --- a/ElementX/Sources/Other/Extensions/String.swift +++ b/ElementX/Sources/Other/Extensions/String.swift @@ -72,9 +72,9 @@ extension String { var whiteSpaces: String switch layoutDirection { case .leftToRight: - whiteSpaces = "\u{200e}\u{200e}" + whiteSpaces = "\u{2066}" case .rightToLeft: - whiteSpaces = "\u{200f}\u{202e}" + whiteSpaces = "\u{2067}" default: whiteSpaces = "" } diff --git a/ElementX/Sources/Screens/RoomScreen/View/Style/TimelineStyler.swift b/ElementX/Sources/Screens/RoomScreen/View/Style/TimelineStyler.swift index 08bff640b0..bcba7585f8 100644 --- a/ElementX/Sources/Screens/RoomScreen/View/Style/TimelineStyler.swift +++ b/ElementX/Sources/Screens/RoomScreen/View/Style/TimelineStyler.swift @@ -64,17 +64,17 @@ struct TimelineItemStyler_Previews: PreviewProvider { return result }() - static let ltrString = TextRoomTimelineItem(id: UUID().uuidString, timestamp: "Now", isOutgoing: true, isEditable: false, sender: .init(id: UUID().uuidString), content: .init(body: "Test")) + static let ltrString = TextRoomTimelineItem(id: UUID().uuidString, timestamp: "Now", isOutgoing: true, isEditable: false, sender: .init(id: UUID().uuidString), content: .init(body: "house!")) - static let rtlString = TextRoomTimelineItem(id: UUID().uuidString, timestamp: "Now", isOutgoing: true, isEditable: false, sender: .init(id: UUID().uuidString), content: .init(body: "באמת")) + static let rtlString = TextRoomTimelineItem(id: UUID().uuidString, timestamp: "Now", isOutgoing: true, isEditable: false, sender: .init(id: UUID().uuidString), content: .init(body: "באמת!")) - static let ltrStringThatContainsRtl = TextRoomTimelineItem(id: UUID().uuidString, timestamp: "Now", isOutgoing: true, isEditable: false, sender: .init(id: UUID().uuidString), content: .init(body: "house -- באמת‏ -- house.")) + static let ltrStringThatContainsRtl = TextRoomTimelineItem(id: UUID().uuidString, timestamp: "Now", isOutgoing: true, isEditable: false, sender: .init(id: UUID().uuidString), content: .init(body: "house! -- באמת‏! -- house!")) - static let rtlStringThatContainsLtr = TextRoomTimelineItem(id: UUID().uuidString, timestamp: "Now", isOutgoing: true, isEditable: false, sender: .init(id: UUID().uuidString), content: .init(body: "באמת‏ -- house -- באמת")) + static let rtlStringThatContainsLtr = TextRoomTimelineItem(id: UUID().uuidString, timestamp: "Now", isOutgoing: true, isEditable: false, sender: .init(id: UUID().uuidString), content: .init(body: "באמת‏! -- house! -- באמת!")) - static let ltrStringThatFinishesInRtl = TextRoomTimelineItem(id: UUID().uuidString, timestamp: "Now", isOutgoing: true, isEditable: false, sender: .init(id: UUID().uuidString), content: .init(body: "house -- באמת")) + static let ltrStringThatFinishesInRtl = TextRoomTimelineItem(id: UUID().uuidString, timestamp: "Now", isOutgoing: true, isEditable: false, sender: .init(id: UUID().uuidString), content: .init(body: "house! -- באמת!")) - static let rtlStringThatFinishesInLtr = TextRoomTimelineItem(id: UUID().uuidString, timestamp: "Now", isOutgoing: true, isEditable: false, sender: .init(id: UUID().uuidString), content: .init(body: "באמת‏ -- house")) + static let rtlStringThatFinishesInLtr = TextRoomTimelineItem(id: UUID().uuidString, timestamp: "Now", isOutgoing: true, isEditable: false, sender: .init(id: UUID().uuidString), content: .init(body: "באמת‏! -- house!")) static var testView: some View { VStack { diff --git a/ElementX/Sources/Screens/RoomScreen/View/Timeline/FormattedBodyText.swift b/ElementX/Sources/Screens/RoomScreen/View/Timeline/FormattedBodyText.swift index c3ebaeb525..d785c111b1 100644 --- a/ElementX/Sources/Screens/RoomScreen/View/Timeline/FormattedBodyText.swift +++ b/ElementX/Sources/Screens/RoomScreen/View/Timeline/FormattedBodyText.swift @@ -43,9 +43,9 @@ struct FormattedBodyText: View { private var layoutPrefix: AttributedString { switch layoutDirection { case .leftToRight: - return "\u{200e}" + return "\u{2066}" case .rightToLeft: - return "\u{200f}" + return "\u{2067}" default: return "" } diff --git a/UnitTests/Sources/StringTests.swift b/UnitTests/Sources/StringTests.swift index 3702a7e431..b40a4e7a05 100644 --- a/UnitTests/Sources/StringTests.swift +++ b/UnitTests/Sources/StringTests.swift @@ -61,11 +61,11 @@ class StringTests: XCTestCase { func testGenerateBreakableWhitespaceEnd() { var count = 5 - var result = "\u{200e}\u{200e}" + String(repeating: "\u{2004}", count: count) + "\u{2800}" + var result = "\u{2066}" + String(repeating: "\u{2004}", count: count) + "\u{2800}" XCTAssertEqual(String.generateBreakableWhitespaceEnd(whitespaceCount: count, layoutDirection: .leftToRight), result) count = 3 - result = "\u{200e}\u{200e}" + String(repeating: "\u{2004}", count: count) + "\u{2800}" + result = "\u{2066}" + String(repeating: "\u{2004}", count: count) + "\u{2800}" XCTAssertEqual(String.generateBreakableWhitespaceEnd(whitespaceCount: count, layoutDirection: .leftToRight), result) count = 0 @@ -73,7 +73,7 @@ class StringTests: XCTestCase { XCTAssertEqual(String.generateBreakableWhitespaceEnd(whitespaceCount: count, layoutDirection: .leftToRight), result) count = 4 - result = "\u{200f}\u{202e}" + String(repeating: "\u{2004}", count: count) + "\u{2800}" + result = "\u{2067}" + String(repeating: "\u{2004}", count: count) + "\u{2800}" XCTAssertEqual(String.generateBreakableWhitespaceEnd(whitespaceCount: count, layoutDirection: .rightToLeft), result) count = 0