diff --git a/ElementX/Resources/Localizations/en-US.lproj/Localizable.strings b/ElementX/Resources/Localizations/en-US.lproj/Localizable.strings index d3c5f528c..53a7d2ef1 100644 --- a/ElementX/Resources/Localizations/en-US.lproj/Localizable.strings +++ b/ElementX/Resources/Localizations/en-US.lproj/Localizable.strings @@ -442,6 +442,7 @@ "notification_room_invite_body_with_sender" = "%1$@ invited you to join the room"; "notification_sender_me" = "Me"; "notification_sender_mention_reply" = "%1$@ mentioned or replied"; +"notification_space_invite_body" = "Invited you to join the space"; "notification_test_push_notification_content" = "You are viewing the notification! Click me!"; "notification_ticker_text_dm" = "%1$@: %2$@"; "notification_ticker_text_group" = "%1$@: %2$@ %3$@"; diff --git a/ElementX/Resources/Localizations/en.lproj/Localizable.strings b/ElementX/Resources/Localizations/en.lproj/Localizable.strings index 01d9dedb7..b5f58db0d 100644 --- a/ElementX/Resources/Localizations/en.lproj/Localizable.strings +++ b/ElementX/Resources/Localizations/en.lproj/Localizable.strings @@ -442,6 +442,7 @@ "notification_room_invite_body_with_sender" = "%1$@ invited you to join the room"; "notification_sender_me" = "Me"; "notification_sender_mention_reply" = "%1$@ mentioned or replied"; +"notification_space_invite_body" = "Invited you to join the space"; "notification_test_push_notification_content" = "You are viewing the notification! Click me!"; "notification_ticker_text_dm" = "%1$@: %2$@"; "notification_ticker_text_group" = "%1$@: %2$@ %3$@"; diff --git a/ElementX/Sources/Generated/Strings.swift b/ElementX/Sources/Generated/Strings.swift index 59240f1e7..c8c9466b0 100644 --- a/ElementX/Sources/Generated/Strings.swift +++ b/ElementX/Sources/Generated/Strings.swift @@ -1034,6 +1034,8 @@ internal enum L10n { internal static func notificationSenderMentionReply(_ p1: Any) -> String { return L10n.tr("Localizable", "notification_sender_mention_reply", String(describing: p1)) } + /// Invited you to join the space + internal static var notificationSpaceInviteBody: String { return L10n.tr("Localizable", "notification_space_invite_body") } /// You are viewing the notification! Click me! internal static var notificationTestPushNotificationContent: String { return L10n.tr("Localizable", "notification_test_push_notification_content") } /// Thread in %1$@ diff --git a/ElementX/Sources/Mocks/Generated/GeneratedMocks.swift b/ElementX/Sources/Mocks/Generated/GeneratedMocks.swift index 7c2b9a81c..88b7d6045 100644 --- a/ElementX/Sources/Mocks/Generated/GeneratedMocks.swift +++ b/ElementX/Sources/Mocks/Generated/GeneratedMocks.swift @@ -11776,6 +11776,11 @@ class NotificationItemProxyMock: NotificationItemProxyProtocol, @unchecked Senda set(value) { underlyingRoomJoinedMembers = value } } var underlyingRoomJoinedMembers: Int! + var isRoomSpace: Bool { + get { return underlyingIsRoomSpace } + set(value) { underlyingIsRoomSpace = value } + } + var underlyingIsRoomSpace: Bool! var isRoomDirect: Bool { get { return underlyingIsRoomDirect } set(value) { underlyingIsRoomDirect = value } diff --git a/NSE/Sources/NotificationContentBuilder.swift b/NSE/Sources/NotificationContentBuilder.swift index cf5306e5e..21c814af5 100644 --- a/NSE/Sources/NotificationContentBuilder.swift +++ b/NSE/Sources/NotificationContentBuilder.swift @@ -99,15 +99,14 @@ struct NotificationContentBuilder { notificationItem: NotificationItemProxyProtocol, mediaProvider: MediaProviderProtocol) async { notificationContent.categoryIdentifier = NotificationConstants.Category.invite - - let body: String - if !notificationItem.isDM { - body = L10n.notificationRoomInviteBody - } else { - body = L10n.notificationInviteBody - } - notificationContent.body = body + notificationContent.body = if notificationItem.isDM { + L10n.notificationInviteBody + } else if notificationItem.isRoomSpace { + L10n.notificationSpaceInviteBody + } else { + L10n.notificationRoomInviteBody + } let name = notificationItem.senderDisplayName ?? notificationItem.roomDisplayName await addCommunicationContext(notificationContent: ¬ificationContent, diff --git a/NSE/Sources/NotificationItemProxy/NotificationItemProxy.swift b/NSE/Sources/NotificationItemProxy/NotificationItemProxy.swift index a8ea05c80..6d44d296d 100644 --- a/NSE/Sources/NotificationItemProxy/NotificationItemProxy.swift +++ b/NSE/Sources/NotificationItemProxy/NotificationItemProxy.swift @@ -36,6 +36,10 @@ struct NotificationItemProxy: NotificationItemProxyProtocol { var roomDisplayName: String { notificationItem.roomInfo.displayName } + + var isRoomSpace: Bool { + notificationItem.roomInfo.isSpace + } var isRoomDirect: Bool { notificationItem.roomInfo.isDirect @@ -102,6 +106,8 @@ struct EmptyNotificationItemProxy: NotificationItemProxyProtocol { var isNoisy: Bool { false } + var isRoomSpace: Bool { false } + var isRoomDirect: Bool { false } var isRoomPrivate: Bool { false } diff --git a/NSE/Sources/NotificationItemProxy/NotificationItemProxyProtocol.swift b/NSE/Sources/NotificationItemProxy/NotificationItemProxyProtocol.swift index 3c2050eb1..2ff5d0c7b 100644 --- a/NSE/Sources/NotificationItemProxy/NotificationItemProxyProtocol.swift +++ b/NSE/Sources/NotificationItemProxy/NotificationItemProxyProtocol.swift @@ -29,6 +29,8 @@ protocol NotificationItemProxyProtocol { var roomAvatarMediaSource: MediaSourceProxy? { get } var roomJoinedMembers: Int { get } + + var isRoomSpace: Bool { get } var isRoomDirect: Bool { get }