diff --git a/Riot/Assets/en.lproj/Vector.strings b/Riot/Assets/en.lproj/Vector.strings index b40269097..6746a2494 100644 --- a/Riot/Assets/en.lproj/Vector.strings +++ b/Riot/Assets/en.lproj/Vector.strings @@ -228,7 +228,9 @@ "room_participants_one_participant" = "1 participant"; "room_participants_multi_participants" = "%d participants"; "room_participants_leave_prompt_title" = "Leave room"; +"dm_room_participants_leave_prompt_title" = "Leave"; "room_participants_leave_prompt_msg" = "Are you sure you want to leave the room?"; +"dm_room_participants_leave_prompt_msg" = "Are you sure you want to leave?"; "room_participants_remove_prompt_title" = "Confirmation"; "room_participants_remove_prompt_msg" = "Are you sure you want to remove %@ from this chat?"; "room_participants_remove_third_party_invite_prompt_msg" = "Are you sure you want to revoke this invite?"; diff --git a/Riot/Generated/Strings.swift b/Riot/Generated/Strings.swift index abb138567..05db96bf1 100644 --- a/Riot/Generated/Strings.swift +++ b/Riot/Generated/Strings.swift @@ -1082,6 +1082,14 @@ internal enum VectorL10n { internal static var directoryTitle: String { return VectorL10n.tr("Vector", "directory_title") } + /// Are you sure you want to leave? + internal static var dmRoomParticipantsLeavePromptMsg: String { + return VectorL10n.tr("Vector", "dm_room_participants_leave_prompt_msg") + } + /// Leave + internal static var dmRoomParticipantsLeavePromptTitle: String { + return VectorL10n.tr("Vector", "dm_room_participants_leave_prompt_title") + } /// Do not ask again internal static var doNotAskAgain: String { return VectorL10n.tr("Vector", "do_not_ask_again") diff --git a/Riot/Modules/Common/Recents/RecentsViewController.m b/Riot/Modules/Common/Recents/RecentsViewController.m index e6c9118ab..e26f58507 100644 --- a/Riot/Modules/Common/Recents/RecentsViewController.m +++ b/Riot/Modules/Common/Recents/RecentsViewController.m @@ -999,10 +999,21 @@ __weak typeof(self) weakSelf = self; + NSString *title, *message; + if ([self.mainSession roomWithRoomId:currentRoomId].isDirect) + { + title = NSLocalizedStringFromTable(@"dm_room_participants_leave_prompt_title", @"Vector", nil); + message = NSLocalizedStringFromTable(@"dm_room_participants_leave_prompt_msg", @"Vector", nil); + } + else + { + title = NSLocalizedStringFromTable(@"room_participants_leave_prompt_title", @"Vector", nil); + message = NSLocalizedStringFromTable(@"room_participants_leave_prompt_msg", @"Vector", nil); + } + // confirm leave - NSString *promptMessage = NSLocalizedStringFromTable(@"room_participants_leave_prompt_msg", @"Vector", nil); - currentAlert = [UIAlertController alertControllerWithTitle:NSLocalizedStringFromTable(@"room_participants_leave_prompt_title", @"Vector", nil) - message:promptMessage + currentAlert = [UIAlertController alertControllerWithTitle:title + message:message preferredStyle:UIAlertControllerStyleAlert]; [currentAlert addAction:[UIAlertAction actionWithTitle:[NSBundle mxk_localizedStringForKey:@"cancel"] diff --git a/Riot/Modules/Room/Members/RoomParticipantsViewController.m b/Riot/Modules/Room/Members/RoomParticipantsViewController.m index 5178afe77..30a7223c9 100644 --- a/Riot/Modules/Room/Members/RoomParticipantsViewController.m +++ b/Riot/Modules/Room/Members/RoomParticipantsViewController.m @@ -1393,8 +1393,21 @@ { // Leave ? MXWeakify(self); - currentAlert = [UIAlertController alertControllerWithTitle:NSLocalizedStringFromTable(@"room_participants_leave_prompt_title", @"Vector", nil) - message:NSLocalizedStringFromTable(@"room_participants_leave_prompt_msg", @"Vector", nil) + + NSString *title, *message; + if (self.mxRoom.isDirect) + { + title = NSLocalizedStringFromTable(@"dm_room_participants_leave_prompt_title", @"Vector", nil); + message = NSLocalizedStringFromTable(@"dm_room_participants_leave_prompt_msg", @"Vector", nil); + } + else + { + title = NSLocalizedStringFromTable(@"room_participants_leave_prompt_title", @"Vector", nil); + message = NSLocalizedStringFromTable(@"room_participants_leave_prompt_msg", @"Vector", nil); + } + + currentAlert = [UIAlertController alertControllerWithTitle:title + message:message preferredStyle:UIAlertControllerStyleAlert]; [currentAlert addAction:[UIAlertAction actionWithTitle:[NSBundle mxk_localizedStringForKey:@"cancel"] diff --git a/Riot/Modules/Room/RoomInfo/RoomInfoList/RoomInfoListViewController.swift b/Riot/Modules/Room/RoomInfo/RoomInfoList/RoomInfoListViewController.swift index 7df32da90..c125cbca1 100644 --- a/Riot/Modules/Room/RoomInfo/RoomInfoList/RoomInfoListViewController.swift +++ b/Riot/Modules/Room/RoomInfo/RoomInfoList/RoomInfoListViewController.swift @@ -39,6 +39,7 @@ final class RoomInfoListViewController: UIViewController { private var theme: Theme! private var errorPresenter: MXKErrorPresentation! private var activityPresenter: ActivityIndicatorPresenter! + private var isRoomDirect: Bool = false private lazy var closeButton: CloseButton = { let button = CloseButton() @@ -55,7 +56,9 @@ final class RoomInfoListViewController: UIViewController { }() private lazy var leaveAlertController: UIAlertController = { - let controller = UIAlertController(title: VectorL10n.roomParticipantsLeavePromptTitle, message: VectorL10n.roomParticipantsLeavePromptMsg, preferredStyle: .alert) + let title = self.isRoomDirect ? VectorL10n.dmRoomParticipantsLeavePromptTitle : VectorL10n.roomParticipantsLeavePromptTitle + let message = self.isRoomDirect ? VectorL10n.dmRoomParticipantsLeavePromptMsg : VectorL10n.roomParticipantsLeavePromptMsg + let controller = UIAlertController(title: title, message: message, preferredStyle: .alert) controller.addAction(UIAlertAction(title: VectorL10n.cancel, style: .cancel, handler: nil)) controller.addAction(UIAlertAction(title: VectorL10n.leave, style: .default, handler: { [weak self] (action) in @@ -127,6 +130,7 @@ final class RoomInfoListViewController: UIViewController { // MARK: - Private private func updateSections(with viewData: RoomInfoListViewData) { + isRoomDirect = viewData.isDirect basicInfoView.configure(withViewData: viewData.basicInfoViewData) var tmpSections: [Section] = [] @@ -156,7 +160,10 @@ final class RoomInfoListViewController: UIViewController { rowUploads], footer: nil) - let rowLeave = Row(type: .destructive, icon: Asset.Images.roomActionLeave.image, text: VectorL10n.roomParticipantsLeavePromptTitle, accessoryType: .none) { + let leaveTitle = viewData.isDirect ? + VectorL10n.dmRoomParticipantsLeavePromptTitle : + VectorL10n.roomParticipantsLeavePromptTitle + let rowLeave = Row(type: .destructive, icon: Asset.Images.roomActionLeave.image, text: leaveTitle, accessoryType: .none) { self.present(self.leaveAlertController, animated: true, completion: nil) } let sectionLeave = Section(header: nil, diff --git a/Riot/Modules/Room/RoomInfo/RoomInfoList/RoomInfoListViewData.swift b/Riot/Modules/Room/RoomInfo/RoomInfoList/RoomInfoListViewData.swift index 5361c7c11..c217514b8 100644 --- a/Riot/Modules/Room/RoomInfo/RoomInfoList/RoomInfoListViewData.swift +++ b/Riot/Modules/Room/RoomInfo/RoomInfoList/RoomInfoListViewData.swift @@ -22,5 +22,6 @@ import Foundation struct RoomInfoListViewData { let numberOfMembers: Int let isEncrypted: Bool + let isDirect: Bool let basicInfoViewData: RoomInfoBasicViewData } diff --git a/Riot/Modules/Room/RoomInfo/RoomInfoList/RoomInfoListViewModel.swift b/Riot/Modules/Room/RoomInfo/RoomInfoList/RoomInfoListViewModel.swift index b5d5e586c..153eaeab1 100644 --- a/Riot/Modules/Room/RoomInfo/RoomInfoList/RoomInfoListViewModel.swift +++ b/Riot/Modules/Room/RoomInfo/RoomInfoList/RoomInfoListViewModel.swift @@ -45,6 +45,7 @@ final class RoomInfoListViewModel: NSObject, RoomInfoListViewModelType { return RoomInfoListViewData(numberOfMembers: Int(room.summary.membersCount.joined), isEncrypted: room.summary.isEncrypted, + isDirect: room.isDirect, basicInfoViewData: basicInfoViewData) } diff --git a/Riot/Modules/Room/Settings/RoomSettingsViewController.m b/Riot/Modules/Room/Settings/RoomSettingsViewController.m index a21453c8a..f75ffd0d7 100644 --- a/Riot/Modules/Room/Settings/RoomSettingsViewController.m +++ b/Riot/Modules/Room/Settings/RoomSettingsViewController.m @@ -3377,9 +3377,20 @@ NSString *const kRoomSettingsAdvancedE2eEnabledCellViewIdentifier = @"kRoomSetti [currentAlert dismissViewControllerAnimated:NO completion:nil]; + NSString *title, *message; + if ([self.mainSession roomWithRoomId:self.roomId].isDirect) + { + title = NSLocalizedStringFromTable(@"dm_room_participants_leave_prompt_title", @"Vector", nil); + message = NSLocalizedStringFromTable(@"dm_room_participants_leave_prompt_msg", @"Vector", nil); + } + else + { + title = NSLocalizedStringFromTable(@"room_participants_leave_prompt_title", @"Vector", nil); + message = NSLocalizedStringFromTable(@"room_participants_leave_prompt_msg", @"Vector", nil); + } - currentAlert = [UIAlertController alertControllerWithTitle:NSLocalizedStringFromTable(@"room_participants_leave_prompt_title", @"Vector", nil) - message:NSLocalizedStringFromTable(@"room_participants_leave_prompt_msg", @"Vector", nil) + currentAlert = [UIAlertController alertControllerWithTitle:title + message:message preferredStyle:UIAlertControllerStyleAlert]; [currentAlert addAction:[UIAlertAction actionWithTitle:[NSBundle mxk_localizedStringForKey:@"cancel"]