diff --git a/Riot/Modules/Room/RoomCoordinatorBridgePresenter.swift b/Riot/Modules/Room/RoomCoordinatorBridgePresenter.swift
index 60d99f8d6..6a82e835f 100644
--- a/Riot/Modules/Room/RoomCoordinatorBridgePresenter.swift
+++ b/Riot/Modules/Room/RoomCoordinatorBridgePresenter.swift
@@ -87,23 +87,6 @@ final class RoomCoordinatorBridgePresenter: NSObject {
// MARK: - Public
func present(from viewController: UIViewController, animated: Bool) {
-
- if bridgeParameters.threadId != nil {
- let coordinator = self.createRoomCoordinator()
- coordinator.delegate = self
- coordinator.start()
- let presentable = coordinator.toPresentable()
-
- let presentationController = CustomSizedPresentationController(presentedViewController: presentable,
- presenting: viewController)
- presentationController.dismissOnBackgroundTap = false
- presentationController.cornerRadius = 12
- presentable.transitioningDelegate = presentationController
- viewController.present(presentable, animated: animated, completion: nil)
-
- self.coordinator = coordinator
- return
- }
let coordinator = self.createRoomCoordinator()
coordinator.delegate = self
let presentable = coordinator.toPresentable()
diff --git a/Riot/Modules/Room/RoomViewController.m b/Riot/Modules/Room/RoomViewController.m
index 084a338e2..b76d7f4f5 100644
--- a/Riot/Modules/Room/RoomViewController.m
+++ b/Riot/Modules/Room/RoomViewController.m
@@ -4636,15 +4636,6 @@ const NSTimeInterval kResizeComposerAnimationDuration = .05;
{
[self declineRoomInvitation];
}
- else if ([titleView isKindOfClass:ThreadRoomTitleView.class])
- {
- ThreadRoomTitleView *threadTitleView = (ThreadRoomTitleView *)titleView;
- if (tappedView == threadTitleView.closeButton)
- {
- // dismiss self
- [self dismissViewControllerAnimated:YES completion:nil];
- }
- }
}
- (void)declineRoomInvitation
@@ -6338,7 +6329,7 @@ const NSTimeInterval kResizeComposerAnimationDuration = .05;
previewData:nil];
self.threadBridgePresenter = [[RoomCoordinatorBridgePresenter alloc] initWithParameters:parameters];
self.threadBridgePresenter.delegate = self;
- [self.threadBridgePresenter presentFrom:self animated:YES];
+ [self.threadBridgePresenter pushFrom:self.navigationController animated:YES];
}
#pragma mark - RoomContextualMenuViewControllerDelegate
diff --git a/Riot/Modules/Room/Views/Title/Thread/ThreadRoomTitleView.swift b/Riot/Modules/Room/Views/Title/Thread/ThreadRoomTitleView.swift
index 83be5905f..21aaea539 100644
--- a/Riot/Modules/Room/Views/Title/Thread/ThreadRoomTitleView.swift
+++ b/Riot/Modules/Room/Views/Title/Thread/ThreadRoomTitleView.swift
@@ -43,16 +43,12 @@ class ThreadRoomTitleView: RoomTitleView {
// Individual views
@IBOutlet private weak var partialTitleLabel: UILabel!
- @IBOutlet private weak var fullCloseButton: UIButton!
@IBOutlet private weak var fullTitleLabel: UILabel!
@IBOutlet private weak var fullRoomAvatarView: RoomAvatarView!
+ @IBOutlet private weak var fullRoomEncryptionBadgeView: UIImageView!
@IBOutlet private weak var fullRoomNameLabel: UILabel!
@IBOutlet private weak var fullOptionsButton: UIButton!
- var closeButton: UIButton {
- return fullCloseButton
- }
-
override var mxRoom: MXRoom! {
didSet {
updateMode()
@@ -81,12 +77,24 @@ class ThreadRoomTitleView: RoomTitleView {
fallbackImage: AvatarFallbackImage.matrixItem(room.matrixItemId,
room.displayName))
fullRoomAvatarView.fill(with: avatarViewData)
+
+ guard let summary = room.summary else {
+ fullRoomEncryptionBadgeView.isHidden = true
+ return
+ }
+ if summary.isEncrypted && room.mxSession.crypto != nil {
+ fullRoomEncryptionBadgeView.image = EncryptionTrustLevelBadgeImageHelper.roomBadgeImage(for: summary.roomEncryptionTrustLevel())
+ fullRoomEncryptionBadgeView.isHidden = false
+ } else {
+ fullRoomEncryptionBadgeView.isHidden = true
+ }
}
override func awakeFromNib() {
super.awakeFromNib()
update(theme: ThemeService.shared().theme)
+ registerThemeServiceDidChangeThemeNotification()
}
override func didMoveToSuperview() {
@@ -101,6 +109,13 @@ class ThreadRoomTitleView: RoomTitleView {
}
}
+ private func registerThemeServiceDidChangeThemeNotification() {
+ NotificationCenter.default.addObserver(self,
+ selector: #selector(themeDidChange),
+ name: .themeServiceDidChangeTheme,
+ object: nil)
+ }
+
private func updateMode() {
// ensure both mxRoom and threadId are set
guard let room = mxRoom,
@@ -133,11 +148,8 @@ class ThreadRoomTitleView: RoomTitleView {
// MARK: - Actions
- @IBAction private func closeButtonTapped(_ sender: UIButton) {
- let gesture = UITapGestureRecognizer(target: nil, action: nil)
- closeButton.addGestureRecognizer(gesture)
- tapGestureDelegate.roomTitleView(self, recognizeTapGesture: gesture)
- closeButton.removeGestureRecognizer(gesture)
+ @objc private func themeDidChange() {
+ self.update(theme: ThemeService.shared().theme)
}
@IBAction private func optionsButtonTapped(_ sender: UIButton) {
@@ -150,10 +162,10 @@ extension ThreadRoomTitleView: Themable {
func update(theme: Theme) {
partialTitleLabel.textColor = theme.colors.primaryContent
- fullCloseButton.tintColor = theme.colors.secondaryContent
+ fullRoomAvatarView.backgroundColor = .clear
fullTitleLabel.textColor = theme.colors.primaryContent
fullRoomNameLabel.textColor = theme.colors.secondaryContent
- fullOptionsButton.tintColor = theme.colors.secondaryContent
+ fullOptionsButton.tintColor = theme.colors.accent
}
}
diff --git a/Riot/Modules/Room/Views/Title/Thread/ThreadRoomTitleView.xib b/Riot/Modules/Room/Views/Title/Thread/ThreadRoomTitleView.xib
index c47ecc287..53262fb17 100644
--- a/Riot/Modules/Room/Views/Title/Thread/ThreadRoomTitleView.xib
+++ b/Riot/Modules/Room/Views/Title/Thread/ThreadRoomTitleView.xib
@@ -34,33 +34,30 @@
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -103,10 +100,10 @@
-
+
@@ -116,7 +113,6 @@
-
diff --git a/Riot/Modules/Thread/ThreadViewController.swift b/Riot/Modules/Thread/ThreadViewController.swift
index a6df5cc6a..9e803baf5 100644
--- a/Riot/Modules/Thread/ThreadViewController.swift
+++ b/Riot/Modules/Thread/ThreadViewController.swift
@@ -20,11 +20,6 @@ class ThreadViewController: RoomViewController {
// MARK: Private
- private enum Constants {
- static let sizeOniPad: CGSize = CGSize(width: 375, height: 667)
- static let additionalTopInset: CGFloat = 20
- }
-
private(set) var threadId: String!
class func instantiate(withThreadId threadId: String,
@@ -49,37 +44,4 @@ class ThreadViewController: RoomViewController {
threadTitleView.threadId = threadId
}
- private func topSafeAreaInset() -> CGFloat {
- guard let window = UIApplication.shared.keyWindow else {
- return Constants.additionalTopInset
- }
-
- return window.safeAreaInsets.top + Constants.additionalTopInset
- }
-
-}
-
-// MARK: - CustomSizedPresentable
-
-extension ThreadViewController: CustomSizedPresentable {
-
- func customSize(withParentContainerSize containerSize: CGSize) -> CGSize {
- if UIDevice.current.isPhone {
- return CGSize(width: containerSize.width,
- height: containerSize.height - topSafeAreaInset())
- }
- return Constants.sizeOniPad
- }
-
- func position(withParentContainerSize containerSize: CGSize) -> CGPoint {
- let mySize = customSize(withParentContainerSize: containerSize)
-
- if UIDevice.current.isPhone {
- return CGPoint(x: 0, y: topSafeAreaInset())
- }
-
- return CGPoint(x: (containerSize.width - mySize.width)/2,
- y: (containerSize.height - mySize.height)/2)
- }
-
}