From 7ec518a114d18b3077362300227d9d60c2c919e5 Mon Sep 17 00:00:00 2001 From: Benoit Martins Date: Tue, 20 Jun 2023 12:57:18 +0200 Subject: [PATCH] Fix screenshot secure mode Check if linphone_friend_get_address is not nil in ChatConversationCreateTableView --- Classes/ChatConversationCreateTableView.m | 2 +- .../Views/ChatConversationViewSwift.swift | 19 ++++++++++++------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/Classes/ChatConversationCreateTableView.m b/Classes/ChatConversationCreateTableView.m index 5de55541c..5dd389375 100644 --- a/Classes/ChatConversationCreateTableView.m +++ b/Classes/ChatConversationCreateTableView.m @@ -105,7 +105,7 @@ contact = [_ldapAndProvisioningContactAddressBookMap objectForKey:key]; } - if (contact.friend != nil) { + if (contact.friend != nil && linphone_friend_get_address(contact.friend) != nil) { char *curi = linphone_address_as_string_uri_only(linphone_friend_get_address(contact.friend)); NSString *uri = [NSString stringWithUTF8String:curi]; diff --git a/Classes/Swift/Chat/Views/ChatConversationViewSwift.swift b/Classes/Swift/Chat/Views/ChatConversationViewSwift.swift index 241a5d23d..3f6784c7c 100644 --- a/Classes/Swift/Chat/Views/ChatConversationViewSwift.swift +++ b/Classes/Swift/Chat/Views/ChatConversationViewSwift.swift @@ -153,6 +153,7 @@ class ChatConversationViewSwift: BackActionsNavigationView, PHPickerViewControll markAsRead = true //PhoneMainView.instance()!.mainViewController.view.makeSecure(field: field) + UIApplication.shared.keyWindow?.makeSecure(field: field) NotificationCenter.default.addObserver(forName: UIApplication.userDidTakeScreenshotNotification, object: nil, queue: OperationQueue.main) { notification in if (ConfigManager.instance().lpConfigBoolForKey(key: "screenshot_preference") == false && self.floatingButton.isHidden == false) { @@ -301,13 +302,15 @@ class ChatConversationViewSwift: BackActionsNavigationView, PHPickerViewControll configureMessageField() ChatConversationViewModel.sharedModel.shareFile() - /* - if ConfigManager.instance().lpConfigBoolForKey(key: "screenshot_preference") == false && floatingButton.isHidden == false { - PhoneMainView.instance()!.mainViewController.view.changeSecure(field: field, isSecure: true) - }else{ - PhoneMainView.instance()!.mainViewController.view.changeSecure(field: field, isSecure: false) + if UIApplication.shared.keyWindow != nil { + if ConfigManager.instance().lpConfigBoolForKey(key: "screenshot_preference") == false && floatingButton.isHidden == false { + //PhoneMainView.instance()!.mainViewController.view.changeSecure(field: field, isSecure: true) + UIApplication.shared.keyWindow?.changeSecure(field: field, isSecure: true) + }else{ + //PhoneMainView.instance()!.mainViewController.view.changeSecure(field: field, isSecure: false) + UIApplication.shared.keyWindow?.changeSecure(field: field, isSecure: false) + } } - */ } override func viewWillDisappear(_ animated: Bool) { @@ -317,6 +320,9 @@ class ChatConversationViewSwift: BackActionsNavigationView, PHPickerViewControll AvatarBridge.removeAllObserver() //PhoneMainView.instance()!.mainViewController.view.changeSecure(field: field, isSecure: false) + if UIApplication.shared.keyWindow != nil { + UIApplication.shared.keyWindow?.changeSecure(field: field, isSecure: false) + } } override func viewDidDisappear(_ animated: Bool) { @@ -578,7 +584,6 @@ class ChatConversationViewSwift: BackActionsNavigationView, PHPickerViewControll 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) } func updateParticipantLabel(){