From 04086fb5f29f2c133d18a21f15a288607f0aaa55 Mon Sep 17 00:00:00 2001 From: Benoit Martins Date: Thu, 16 Feb 2023 11:14:33 +0100 Subject: [PATCH] Fix light and dark mode --- Classes/LinphoneAppDelegate.m | 5 +++-- Classes/PhoneMainView.h | 1 + Classes/PhoneMainView.m | 6 +++++- .../Views/ChatConversationViewSwift.swift | 15 +++++++------ Classes/Swift/Chat/Views/MessageView.swift | 4 ++++ .../Util/BackActionsNavigationView.swift | 21 ++++++++++++++----- 6 files changed, 38 insertions(+), 14 deletions(-) diff --git a/Classes/LinphoneAppDelegate.m b/Classes/LinphoneAppDelegate.m index 04841965d..378945845 100644 --- a/Classes/LinphoneAppDelegate.m +++ b/Classes/LinphoneAppDelegate.m @@ -456,7 +456,7 @@ linphone_address_unref(local); // TODO : Find a better fix VIEW(ChatConversationView).markAsRead = FALSE; - [PhoneMainView.instance goToChatRoom:cr]; + [PhoneMainView.instance goToChatRoomSwift:cr]; } } return YES; @@ -675,7 +675,8 @@ LinphoneAddress *local = linphone_address_new(local_address.UTF8String); LinphoneChatRoom *room = linphone_core_find_chat_room(LC, peer, local); if (room) { - [PhoneMainView.instance goToChatRoom:room]; + [PhoneMainView.instance resetBeforeGoToChatRoomSwift]; + [PhoneMainView.instance goToChatRoomSwift:room]; return; } [PhoneMainView.instance changeCurrentView:ChatsListView.compositeViewDescription]; diff --git a/Classes/PhoneMainView.h b/Classes/PhoneMainView.h index 6e4fd4718..0740a0eb6 100644 --- a/Classes/PhoneMainView.h +++ b/Classes/PhoneMainView.h @@ -115,6 +115,7 @@ - (LinphoneChatRoom *)createChatRoom:(const char *)subject addresses:(bctbx_list_t *)addresses andWaitView:(UIView *)waitView isEncrypted:(BOOL)isEncrypted isGroup:(BOOL)isGroup; - (void)goToChatRoom:(LinphoneChatRoom *)cr; - (void)goToChatRoomSwift:(LinphoneChatRoom *)cr; +- (void)resetBeforeGoToChatRoomSwift; + (PhoneMainView*) instance; - (BOOL)isIphoneXDevice; diff --git a/Classes/PhoneMainView.m b/Classes/PhoneMainView.m index 01a1a83fa..0cb66497b 100644 --- a/Classes/PhoneMainView.m +++ b/Classes/PhoneMainView.m @@ -929,12 +929,16 @@ static RootViewManager *rootViewManagerInstance = nil; _waitView.hidden = YES; _waitView = NULL; ChatConversationViewSwift *view = VIEW(ChatConversationViewSwift); - [view initChatRoomWithCChatRoom:cr]; [PhoneMainView.instance changeCurrentView:view.compositeViewDescription]; } +- (void)resetBeforeGoToChatRoomSwift{ + ChatConversationViewSwift *view = VIEW(ChatConversationViewSwift); + [view resetView]; +} + void main_view_chat_room_conference_joined(LinphoneChatRoom *cr, const LinphoneEventLog *event_log) { PhoneMainView *view = PhoneMainView.instance; LOGI(@"Chat room [%p] conference joined.", cr); diff --git a/Classes/Swift/Chat/Views/ChatConversationViewSwift.swift b/Classes/Swift/Chat/Views/ChatConversationViewSwift.swift index 4f95604cd..16f87ecc3 100644 --- a/Classes/Swift/Chat/Views/ChatConversationViewSwift.swift +++ b/Classes/Swift/Chat/Views/ChatConversationViewSwift.swift @@ -66,7 +66,7 @@ import AVFoundation let collectionView = UICollectionView(frame: CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: top_bar_height*2), collectionViewLayout: layout) collectionView.translatesAutoresizingMaskIntoConstraints = false - collectionView.backgroundColor = VoipTheme.voipToolbarBackgroundColor.get() + collectionView.backgroundColor = .clear return collectionView }() @@ -261,16 +261,17 @@ import AVFoundation initSharedPlayer() } - override func viewWillDisappear(_ animated: Bool) { - chatRoom?.removeDelegate(delegate: chatRoomDelegate!) - editModeOff() - } - override func viewDidAppear(_ animated: Bool) { tableController.reloadData() } override func viewDidDisappear(_ animated: Bool) { + resetView() + } + + @objc func resetView(){ + chatRoom?.removeDelegate(delegate: chatRoomDelegate!) + editModeOff() if(self.isComposingView.isHidden == false){ self.isComposingView.isHidden = true @@ -541,6 +542,8 @@ import AVFoundation let secureLevel = FastAddressBook.image(for: linphone_chat_room_get_security_level(cChatRoom)) changeSecureLevel(secureLevel: secureLevel != nil, imageBadge: secureLevel) initDataSource(groupeChat: !isOneToOneChat, secureLevel: secureLevel != nil, cChatRoom: cChatRoom) + self.viewWillAppear(true) + //tableController.chatRoom = chatRoom?.getCobject } func updateParticipantLabel(){ diff --git a/Classes/Swift/Chat/Views/MessageView.swift b/Classes/Swift/Chat/Views/MessageView.swift index dfb860a40..901ae7f8f 100644 --- a/Classes/Swift/Chat/Views/MessageView.swift +++ b/Classes/Swift/Chat/Views/MessageView.swift @@ -83,6 +83,10 @@ class MessageView: UIView, UITextViewDelegate { messageText.matchParentDimmensions(insetedByDx: 10).done() messageText.font = UIFont.systemFont(ofSize: 18) messageText.delegate = self + + UIDeviceBridge.displayModeSwitched.readCurrentAndObserve { _ in + self.backgroundColor = VoipTheme.voipToolbarBackgroundColor.get() + } } func textViewDidChangeSelection(_ textView: UITextView) { diff --git a/Classes/Swift/Util/BackActionsNavigationView.swift b/Classes/Swift/Util/BackActionsNavigationView.swift index e9595314b..84f042521 100644 --- a/Classes/Swift/Util/BackActionsNavigationView.swift +++ b/Classes/Swift/Util/BackActionsNavigationView.swift @@ -42,12 +42,12 @@ import SnapKit let replyContentTextView = StyledLabel(VoipTheme.chat_conversation_reply_content) let replyContentTextSpacing = UIView() let replyContentForMeetingTextView = StyledLabel(VoipTheme.chat_conversation_reply_content) - let replyDeleteButton = CallControlButton(width: 22, height: 22, buttonTheme:VoipTheme.nav_black_button("reply_cancel")) + let replyDeleteButton = CallControlButton(width: 22, height: 22, buttonTheme:VoipTheme.nav_button("reply_cancel")) let replyMeetingSchedule = UIImageView() let recordingView = UIView() - let recordingDeleteButton = CallControlButton(width: 40, height: 40, buttonTheme:VoipTheme.nav_black_button("delete_default")) - let recordingPlayButton = CallControlButton(width: 40, height: 40, buttonTheme:VoipTheme.nav_black_button("vr_play")) - let recordingStopButton = CallControlButton(width: 40, height: 40, buttonTheme:VoipTheme.nav_black_button("vr_stop")) + let recordingDeleteButton = CallControlButton(width: 40, height: 40, buttonTheme:VoipTheme.nav_button("delete_default")) + let recordingPlayButton = CallControlButton(width: 40, height: 40, buttonTheme:VoipTheme.nav_button("vr_play")) + let recordingStopButton = CallControlButton(width: 40, height: 40, buttonTheme:VoipTheme.nav_button("vr_stop")) let recordingWaveView = UIProgressView() let recordingDurationTextView = StyledLabel(VoipTheme.chat_conversation_recording_duration) let recordingWaveImage = UIImageView(image: UIImage(named: "vr_wave.png")) @@ -178,7 +178,7 @@ import SnapKit stackView.addArrangedSubview(replyBubble) replyBubble.matchParentSideBorders().maxHeight(top_bar_height*3).done() replyBubble.translatesAutoresizingMaskIntoConstraints = false - replyBubble.backgroundColor = VoipTheme.backgroundWhiteBlack.get() + replyBubble.backgroundColor = VoipTheme.voipToolbarBackgroundColor.get() replyBubble.isHidden = true replyBubble.addSubview(backgroundReplyColor) @@ -278,6 +278,17 @@ import SnapKit stackView.centerYAnchor.constraint(equalTo:self.view.centerYAnchor).isActive = true view.bringSubviewToFront(topBar) + + UIDeviceBridge.displayModeSwitched.readCurrentAndObserve { _ in + self.topBar.backgroundColor = VoipTheme.voipToolbarBackgroundColor.get() + self.titleParticipants.backgroundColor = VoipTheme.voipToolbarBackgroundColor.get() + self.replyBubble.backgroundColor = VoipTheme.voipToolbarBackgroundColor.get() + self.recordingView.backgroundColor = VoipTheme.voipToolbarBackgroundColor.get() + self.mediaSelector.backgroundColor = VoipTheme.voipToolbarBackgroundColor.get() + self.isComposingView.backgroundColor = VoipTheme.backgroundWhiteBlack.get() + self.recordingWaveView.backgroundColor = VoipTheme.backgroundWhiteBlack.get() + self.recordingWaveImageMask.backgroundColor = VoipTheme.backgroundWhiteBlack.get() + } } override func viewWillAppear(_ animated: Bool) {