|
@@ -48,6 +48,7 @@ class ChatViewController: MessagesViewController {
|
|
|
|
|
|
var msgChangedObserver: Any?
|
|
var msgChangedObserver: Any?
|
|
var incomingMsgObserver: Any?
|
|
var incomingMsgObserver: Any?
|
|
|
|
+ var ephemeralTimerModifiedObserver: Any?
|
|
|
|
|
|
private lazy var refreshControl: UIRefreshControl = {
|
|
private lazy var refreshControl: UIRefreshControl = {
|
|
let refreshControl = UIRefreshControl()
|
|
let refreshControl = UIRefreshControl()
|
|
@@ -76,6 +77,16 @@ class ChatViewController: MessagesViewController {
|
|
return UIBarButtonItem(customView: imageView)
|
|
return UIBarButtonItem(customView: imageView)
|
|
}()
|
|
}()
|
|
|
|
|
|
|
|
+ private lazy var ephemeralMessageItem: UIBarButtonItem = {
|
|
|
|
+ let imageView = UIImageView()
|
|
|
|
+ imageView.tintColor = DcColors.defaultTextColor
|
|
|
|
+ imageView.image = #imageLiteral(resourceName: "ephemeral_timer").withRenderingMode(.alwaysTemplate)
|
|
|
|
+ imageView.translatesAutoresizingMaskIntoConstraints = false
|
|
|
|
+ imageView.heightAnchor.constraint(equalToConstant: 20).isActive = true
|
|
|
|
+ imageView.widthAnchor.constraint(equalToConstant: 20).isActive = true
|
|
|
|
+ return UIBarButtonItem(customView: imageView)
|
|
|
|
+ }()
|
|
|
|
+
|
|
private lazy var badgeItem: UIBarButtonItem = {
|
|
private lazy var badgeItem: UIBarButtonItem = {
|
|
let badge: InitialsBadge
|
|
let badge: InitialsBadge
|
|
let chat = dcContext.getChat(chatId: chatId)
|
|
let chat = dcContext.getChat(chatId: chatId)
|
|
@@ -221,7 +232,7 @@ class ChatViewController: MessagesViewController {
|
|
incomingMsgObserver = nc.addObserver(
|
|
incomingMsgObserver = nc.addObserver(
|
|
forName: dcNotificationIncoming,
|
|
forName: dcNotificationIncoming,
|
|
object: nil, queue: OperationQueue.main
|
|
object: nil, queue: OperationQueue.main
|
|
- ) { [weak self] notification in
|
|
|
|
|
|
+ ) { [weak self] notification in
|
|
guard let self = self else { return }
|
|
guard let self = self else { return }
|
|
if let ui = notification.userInfo {
|
|
if let ui = notification.userInfo {
|
|
if self.chatId == ui["chat_id"] as? Int {
|
|
if self.chatId == ui["chat_id"] as? Int {
|
|
@@ -234,6 +245,14 @@ class ChatViewController: MessagesViewController {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ ephemeralTimerModifiedObserver = nc.addObserver(
|
|
|
|
+ forName: dcEphemeralTimerModified,
|
|
|
|
+ object: nil, queue: OperationQueue.main
|
|
|
|
+ ) { [weak self] _ in
|
|
|
|
+ guard let self = self else { return }
|
|
|
|
+ self.updateTitle(chat: self.dcContext.getChat(chatId: self.chatId))
|
|
|
|
+ }
|
|
|
|
+
|
|
loadFirstMessages()
|
|
loadFirstMessages()
|
|
|
|
|
|
if RelayHelper.sharedInstance.isForwarding() {
|
|
if RelayHelper.sharedInstance.isForwarding() {
|
|
@@ -270,6 +289,9 @@ class ChatViewController: MessagesViewController {
|
|
if let incomingMsgObserver = self.incomingMsgObserver {
|
|
if let incomingMsgObserver = self.incomingMsgObserver {
|
|
nc.removeObserver(incomingMsgObserver)
|
|
nc.removeObserver(incomingMsgObserver)
|
|
}
|
|
}
|
|
|
|
+ if let ephemeralTimerModifiedObserver = self.ephemeralTimerModifiedObserver {
|
|
|
|
+ nc.removeObserver(ephemeralTimerModifiedObserver)
|
|
|
|
+ }
|
|
audioController.stopAnyOngoingPlaying()
|
|
audioController.stopAnyOngoingPlaying()
|
|
stopTimer()
|
|
stopTimer()
|
|
}
|
|
}
|
|
@@ -322,6 +344,11 @@ class ChatViewController: MessagesViewController {
|
|
if chat.isMuted {
|
|
if chat.isMuted {
|
|
rightBarButtonItems.append(muteItem)
|
|
rightBarButtonItems.append(muteItem)
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ if dcContext.getChatEphemeralTimer(chatId: chat.id) > 0 {
|
|
|
|
+ rightBarButtonItems.append(ephemeralMessageItem)
|
|
|
|
+ }
|
|
|
|
+
|
|
navigationItem.rightBarButtonItems = rightBarButtonItems
|
|
navigationItem.rightBarButtonItems = rightBarButtonItems
|
|
}
|
|
}
|
|
|
|
|