alqindiirsyam 1 жил өмнө
parent
commit
9ea191ba27
18 өөрчлөгдсөн 104 нэмэгдсэн , 74 устгасан
  1. 1 1
      appbuilder-ios/AppBuilder/AppBuilder/FourthTabViewController.swift
  2. 4 8
      appbuilder-ios/AppBuilder/AppBuilder/SecondTabViewController.swift
  3. 1 1
      appbuilder-ios/NexilisLite/NexilisLite/Resource/id.lproj/Localizable.strings
  4. 40 2
      appbuilder-ios/NexilisLite/NexilisLite/Source/Extension.swift
  5. 1 2
      appbuilder-ios/NexilisLite/NexilisLite/Source/View/BNIView/WorkingAreaPicker.swift
  6. 1 2
      appbuilder-ios/NexilisLite/NexilisLite/Source/View/Call/QmeraCallContactViewController.swift
  7. 16 13
      appbuilder-ios/NexilisLite/NexilisLite/Source/View/Chat/ChatGPTBotView.swift
  8. 13 13
      appbuilder-ios/NexilisLite/NexilisLite/Source/View/Chat/EditorGroup.swift
  9. 4 5
      appbuilder-ios/NexilisLite/NexilisLite/Source/View/Chat/EditorPersonal.swift
  10. 2 3
      appbuilder-ios/NexilisLite/NexilisLite/Source/View/Contact/ContactCallViewController.swift
  11. 2 3
      appbuilder-ios/NexilisLite/NexilisLite/Source/View/Control/AddFriendTableViewController.swift
  12. 2 3
      appbuilder-ios/NexilisLite/NexilisLite/Source/View/Control/BroadcastMembersTableViewController.swift
  13. 11 7
      appbuilder-ios/NexilisLite/NexilisLite/Source/View/Control/ContactChatViewController.swift
  14. 1 2
      appbuilder-ios/NexilisLite/NexilisLite/Source/View/Control/GroupMemberViewController.swift
  15. 1 2
      appbuilder-ios/NexilisLite/NexilisLite/Source/View/Control/SetInternalCSAccount.swift
  16. 1 2
      appbuilder-ios/NexilisLite/NexilisLite/Source/View/Streaming/QmeraGroupChooserViewController.swift
  17. 1 2
      appbuilder-ios/NexilisLite/NexilisLite/Source/View/Streaming/QmeraUserChooserViewController.swift
  18. 2 3
      appbuilder-ios/NexilisLite/NexilisLite/Source/View/Streaming/SeminarListViewController.swift

+ 1 - 1
appbuilder-ios/AppBuilder/AppBuilder/FourthTabViewController.swift

@@ -274,7 +274,7 @@ public class FourthTabViewController: UIViewController, UITableViewDelegate, UIT
     }
     
     override public func viewWillAppear(_ animated: Bool) {
-        self.navigationController?.navigationBar.topItem?.title = ""
+//        self.navigationController?.navigationBar.topItem?.title = ""
         self.navigationController?.navigationBar.titleTextAttributes = [NSAttributedString.Key.foregroundColor: self.traitCollection.userInterfaceStyle == .dark ? .white : UIColor.black]
         let attributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: self.traitCollection.userInterfaceStyle == .dark ? .white : UIColor.black, NSAttributedString.Key.font : UIFont.boldSystemFont(ofSize: 16)]
         let navBarAppearance = UINavigationBarAppearance()

+ 4 - 8
appbuilder-ios/AppBuilder/AppBuilder/SecondTabViewController.swift

@@ -44,19 +44,15 @@ class SecondTabViewController: UIViewController, UIScrollViewDelegate, UIGesture
         searchController.searchResultsUpdater = self
         searchController.searchBar.autocapitalizationType = .none
         searchController.searchBar.delegate = self
-        let searchBarHeight: CGFloat = 20 // Set your desired height
-        let searchBarFrame = CGRect(x: 0, y: 0, width: self.view.frame.width, height: searchBarHeight)
-        searchController.searchBar.frame = searchBarFrame
         searchController.searchBar.setMagnifyingGlassColorTo(color: self.traitCollection.userInterfaceStyle == .dark ? .white : .mainColor)
-        searchController.searchBar.barTintColor = self.traitCollection.userInterfaceStyle == .dark ? .blackDarkMode : .secondaryColor
-        searchController.searchBar.searchTextField.backgroundColor = self.traitCollection.userInterfaceStyle == .dark ? .blackDarkMode : .secondaryColor
+        searchController.searchBar.updateHeight(height: 32, radius: 20)
         searchController.obscuresBackgroundDuringPresentation = false
         searchController.searchBar.searchTextField.attributedPlaceholder = NSAttributedString(string: "Search chats & messages".localized(), attributes: [NSAttributedString.Key.foregroundColor: UIColor.gray, NSAttributedString.Key.font: UIFont.systemFont(ofSize: 16)])
         return searchController
     }()
     
     lazy var segment: UISegmentedControl = {
-        var segment = UISegmentedControl(items: ["Chats".localized(), "Groups".localized()])
+        var segment = UISegmentedControl(items: ["Chats".localized(), "Forums".localized()])
         segment.sizeToFit()
         segment.selectedSegmentIndex = 0
         segment.addTarget(self, action: #selector(segmentChanged(sender:)), for: .valueChanged)
@@ -308,7 +304,7 @@ class SecondTabViewController: UIViewController, UIScrollViewDelegate, UIGesture
     }
     
     override func viewDidAppear(_ animated: Bool) {
-        self.navigationController?.navigationBar.topItem?.title = "Chats".localized() + " & " + "Groups".localized()
+        self.navigationController?.navigationBar.topItem?.title = "Chats".localized() + " & " + "Forums".localized()
         self.navigationController?.navigationBar.setNeedsLayout()
         DispatchQueue.main.asyncAfter(deadline: .now() + 0.2, execute: {
             var viewController = UIApplication.shared.windows.first!.rootViewController
@@ -405,7 +401,7 @@ class SecondTabViewController: UIViewController, UIScrollViewDelegate, UIGesture
         }
         if segment.numberOfSegments == 2 {
             segment.setTitle("Chats".localized(), forSegmentAt: 0)
-            segment.setTitle("Groups".localized(), forSegmentAt: 1)
+            segment.setTitle("Forums".localized(), forSegmentAt: 1)
         }
         if segment.selectedSegmentIndex == 0 {
             Utils.inTabChats = true

+ 1 - 1
appbuilder-ios/NexilisLite/NexilisLite/Resource/id.lproj/Localizable.strings

@@ -6,7 +6,7 @@
   
 */
 "Chats" = "Obrolan";
-"Groups" = "Grup";
+"Forums" = "Grup";
 "Contacts" = "Kontak";
 "Discussion" = "Diskusi";
 "Search chats & messages" = "Cari obrolan & pesan";

+ 40 - 2
appbuilder-ios/NexilisLite/NexilisLite/Source/Extension.swift

@@ -242,6 +242,18 @@ extension UIImage {
         
         return scaledImage
     }
+    
+    static func imageWithColor(color: UIColor, size: CGSize) -> UIImage? {
+        let rect = CGRect(x: 0, y: 0, width: size.width, height: size.height)
+        UIGraphicsBeginImageContextWithOptions(size, false, 0)
+        color.setFill()
+        UIRectFill(rect)
+        guard let image: UIImage = UIGraphicsGetImageFromCurrentImageContext() else {
+            return nil
+        }
+        UIGraphicsEndImageContext()
+        return image
+    }
 }
 
 extension UIImage {
@@ -480,13 +492,13 @@ extension UIViewController {
     public func showToast(message : String, font: UIFont = UIFont.systemFont(ofSize: 12, weight: .medium), controller: UIViewController) {
         
         let toastContainer = UIView(frame: CGRect())
-        toastContainer.backgroundColor = self.traitCollection.userInterfaceStyle == .dark ? .blackDarkMode.withAlphaComponent(0.6) : UIColor.mainColor.withAlphaComponent(0.6)
+        toastContainer.backgroundColor = self.traitCollection.userInterfaceStyle == .dark ? .white.withAlphaComponent(0.6) : UIColor.mainColor.withAlphaComponent(0.6)
         toastContainer.alpha = 0.0
         toastContainer.layer.cornerRadius = 25;
         toastContainer.clipsToBounds  =  true
         
         let toastLabel = UILabel(frame: CGRect())
-        toastLabel.textColor = UIColor.white
+        toastLabel.textColor = self.traitCollection.userInterfaceStyle == .dark ? .blackDarkMode : UIColor.white
         toastLabel.textAlignment = .center;
         toastLabel.font = font
         toastLabel.text = message
@@ -1258,6 +1270,32 @@ extension UISearchBar
         let textFieldInsideSearchBarLabel = textFieldInsideSearchBar!.value(forKey: "placeholderLabel") as? UILabel
         textFieldInsideSearchBarLabel?.textColor = color
     }
+    
+    public func updateHeight(height: CGFloat, radius: CGFloat = 8.0) {
+            let image: UIImage? = UIImage.imageWithColor(color: UIColor.clear, size: CGSize(width: 1, height: height))
+            setSearchFieldBackgroundImage(image, for: .normal)
+            for subview in self.subviews {
+                for subSubViews in subview.subviews {
+                    if #available(iOS 13.0, *) {
+                        for child in subSubViews.subviews {
+                            if let textField = child as? UISearchTextField {
+                                textField.layer.cornerRadius = radius
+                                textField.clipsToBounds = true
+                                textField.layer.borderColor = UIApplication.shared.visibleViewController?.traitCollection.userInterfaceStyle == .dark ? UIColor.white.cgColor : UIColor.black.cgColor
+                                textField.layer.borderWidth = 1.0
+                            }
+                        }
+                        continue
+                    }
+                    if let textField = subSubViews as? UITextField {
+                        textField.layer.cornerRadius = radius
+                        textField.clipsToBounds = true
+                        textField.layer.borderColor = UIApplication.shared.visibleViewController?.traitCollection.userInterfaceStyle == .dark ? UIColor.white.cgColor : UIColor.black.cgColor
+                        textField.layer.borderWidth = 1.0
+                    }
+                }
+            }
+        }
 }
 
 extension String {

+ 1 - 2
appbuilder-ios/NexilisLite/NexilisLite/Source/View/BNIView/WorkingAreaPicker.swift

@@ -52,9 +52,8 @@ class WorkingAreaPicker: UIViewController, UISearchBarDelegate, UITableViewDeleg
         searchBar.searchBarStyle = UISearchBar.Style.default
         searchBar.placeholder = " Search..."
         searchBar.sizeToFit()
-        searchBar.backgroundColor = .clear
-        searchBar.barTintColor = .clear
         searchBar.isTranslucent = true
+        searchBar.updateHeight(height: 32, radius: 20)
         searchBar.setBackgroundImage(UIImage(), for: .any, barMetrics: .default)
         searchBar.delegate = self
         subContainerView.addSubview(searchBar)

+ 1 - 2
appbuilder-ios/NexilisLite/NexilisLite/Source/View/Call/QmeraCallContactViewController.swift

@@ -12,9 +12,8 @@ class QmeraCallContactViewController: UITableViewController {
     private let searchController: UISearchController = {
         let searchController = UISearchController(searchResultsController: nil)
         searchController.searchBar.autocapitalizationType = .none
-        searchController.searchBar.barTintColor = .secondaryColor
-        searchController.searchBar.searchTextField.backgroundColor = .secondaryColor
         searchController.obscuresBackgroundDuringPresentation = false
+        searchController.searchBar.updateHeight(height: 32, radius: 20)
         searchController.searchBar.searchTextField.attributedPlaceholder = NSAttributedString(string: "Search chats & messages".localized(), attributes: [NSAttributedString.Key.foregroundColor: UIColor.gray, NSAttributedString.Key.font: UIFont.systemFont(ofSize: 16)])
         return searchController
     }()

+ 16 - 13
appbuilder-ios/NexilisLite/NexilisLite/Source/View/Chat/ChatGPTBotView.swift

@@ -65,6 +65,8 @@ class ChatGPTBotView: UIViewController, UIGestureRecognizerDelegate {
     var buttonUp: UIButton!
     var buttonDown: UIButton!
     
+    public var fromNotification = true
+    
     var lastY: CGFloat = 0
     
     var allowTyping = true
@@ -433,14 +435,16 @@ class ChatGPTBotView: UIViewController, UIGestureRecognizerDelegate {
         UserDefaults.standard.set(dataPerson["f_pin"]!, forKey: "inEditorPersonal")
         UNUserNotificationCenter.current().removeDeliveredNotifications(withIdentifiers: [dataPerson["f_pin"]!!])
         
-        let imageButton = UIImageView(frame: CGRect(x: -16, y: 0, width: 20, height: 44))
-        imageButton.image = UIImage(systemName: "chevron.backward", withConfiguration: UIImage.SymbolConfiguration(pointSize: 20, weight: .regular, scale: .default))?.withTintColor(.white)
-        imageButton.contentMode = .left
-        let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(didTapExit))
-        imageButton.isUserInteractionEnabled = true
-        imageButton.addGestureRecognizer(tapGestureRecognizer)
-        let leftItem = UIBarButtonItem(customView: imageButton)
-        self.navigationItem.leftBarButtonItem = leftItem
+        if self.fromNotification {
+            let imageButton = UIImageView(frame: CGRect(x: -16, y: 0, width: 20, height: 44))
+            imageButton.image = UIImage(systemName: "chevron.backward", withConfiguration: UIImage.SymbolConfiguration(pointSize: 20, weight: .regular, scale: .default))?.withTintColor(.white)
+            imageButton.contentMode = .left
+            let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(didTapExit))
+            imageButton.isUserInteractionEnabled = true
+            imageButton.addGestureRecognizer(tapGestureRecognizer)
+            let leftItem = UIBarButtonItem(customView: imageButton)
+            self.navigationItem.leftBarButtonItem = leftItem
+        }
         
         changeAppBar()
         getData()
@@ -494,10 +498,9 @@ class ChatGPTBotView: UIViewController, UIGestureRecognizerDelegate {
             searchBar.delegate = self
             searchBar.searchTextField.tintColor = .mainColor
             searchBar.searchTextField.textColor = .mainColor
-            searchBar.barTintColor = .secondaryColor
-            searchBar.searchTextField.backgroundColor = .secondaryColor
+            searchBar.updateHeight(height: 32, radius: 20)
             searchBar.showsCancelButton = false
-            searchBar.setMagnifyingGlassColorTo(color: .mainColor)
+            searchBar.setMagnifyingGlassColorTo(color: self.traitCollection.userInterfaceStyle == .dark ? .white : .mainColor)
             navigationItem.titleView = searchBar
             self.definesPresentationContext = true
         }
@@ -1221,10 +1224,10 @@ extension ChatGPTBotView: UIContextMenuInteractionDelegate {
             self.tableChatView.reloadData()
             self.setRightButtonItem()
             self.changeAppBar()
-//            if self.isContactCenter || self.fromNotification {
+            if self.fromNotification {
                 let backButton = UIBarButtonItem(image: UIImage(systemName: "chevron.backward"), style: .plain, target: self, action: #selector(self.didTapExit))
                 self.navigationItem.leftBarButtonItem = backButton
-//            }
+            }
             self.containerMultpileSelectSession.removeFromSuperview()
             self.checkNewMessage(tableView: self.tableChatView)
         }

+ 13 - 13
appbuilder-ios/NexilisLite/NexilisLite/Source/View/Chat/EditorGroup.swift

@@ -142,25 +142,26 @@ public class EditorGroup: UIViewController {
         super.viewDidLoad()
 //        navigationController?.navigationBar.topItem?.title = ""
         
-        viewButton.layer.shadowColor = UIColor.gray.cgColor
+        viewButton.layer.shadowColor = self.traitCollection.userInterfaceStyle == .dark ? UIColor.white.cgColor : UIColor.gray.cgColor
         viewButton.layer.shadowOpacity = 1
         viewButton.layer.shadowOffset = .zero
         viewButton.layer.shadowRadius = 3
         
 //        buttonVoice.setImage(resizeImage(image: UIImage(named: "Voice-Record", in: Bundle.resourceBundle(for: Nexilis.self), with: nil)!, targetSize: CGSize(width: 30, height: 30)), for: .normal)
-        buttonSendImage.setImage(resizeImage(image: UIImage(named: "Send-Image", in: Bundle.resourceBundle(for: Nexilis.self), with: nil)!, targetSize: CGSize(width: 30, height: 30)).withTintColor(.mainColor), for: .normal)
-        buttonSendPhoto.setImage(resizeImage(image: UIImage(named: "Camera", in: Bundle.resourceBundle(for: Nexilis.self), with: nil)!, targetSize: CGSize(width: 30, height: 30)).withTintColor(.mainColor), for: .normal)
-        buttonSendSticker.setImage(resizeImage(image: UIImage(named: "Sticker---Emoji", in: Bundle.resourceBundle(for: Nexilis.self), with: nil)!, targetSize: CGSize(width: 30, height: 30)).withTintColor(.mainColor), for: .normal)
-        buttonSendFile.setImage(resizeImage(image: UIImage(named: "File---Documents", in: Bundle.resourceBundle(for: Nexilis.self), with: nil)!, targetSize: CGSize(width: 30, height: 30)).withTintColor(.mainColor), for: .normal)
+        buttonSendImage.setImage(resizeImage(image: UIImage(named: "Send-Image", in: Bundle.resourceBundle(for: Nexilis.self), with: nil)!, targetSize: CGSize(width: 30, height: 30)).withTintColor(self.traitCollection.userInterfaceStyle == .dark ? .white : .mainColor), for: .normal)
+        buttonSendPhoto.setImage(resizeImage(image: UIImage(named: "Camera", in: Bundle.resourceBundle(for: Nexilis.self), with: nil)!, targetSize: CGSize(width: 30, height: 30)).withTintColor(self.traitCollection.userInterfaceStyle == .dark ? .white : .mainColor), for: .normal)
+        buttonSendSticker.setImage(resizeImage(image: UIImage(named: "Sticker---Emoji", in: Bundle.resourceBundle(for: Nexilis.self), with: nil)!, targetSize: CGSize(width: 30, height: 30)).withTintColor(self.traitCollection.userInterfaceStyle == .dark ? .white : .mainColor), for: .normal)
+        buttonSendFile.setImage(resizeImage(image: UIImage(named: "File---Documents", in: Bundle.resourceBundle(for: Nexilis.self), with: nil)!, targetSize: CGSize(width: 30, height: 30)).withTintColor(self.traitCollection.userInterfaceStyle == .dark ? .white : .mainColor), for: .normal)
         
-        buttonSendChat.setImage(resizeImage(image: UIImage(named: "Send-(White)", in: Bundle.resourceBundle(for: Nexilis.self), with: nil)!, targetSize: CGSize(width: 30, height: 30)).withRenderingMode(.alwaysOriginal), for: .normal)
+        buttonSendChat.setImage(resizeImage(image: self.traitCollection.userInterfaceStyle == .dark ? UIImage(named: "Send-(White)", in: Bundle.resourceBundle(for: Nexilis.self), with: nil)!.withTintColor(.blackDarkMode) : UIImage(named: "Send-(White)", in: Bundle.resourceBundle(for: Nexilis.self), with: nil)!, targetSize: CGSize(width: 30, height: 30)).withRenderingMode(.alwaysOriginal), for: .normal)
         
         buttonSendChat.circle()
         buttonSendChat.addTarget(self, action: #selector(sendTapped), for: .touchUpInside)
-        buttonSendChat.backgroundColor = .mainColor
+        buttonSendChat.backgroundColor = self.traitCollection.userInterfaceStyle == .dark ? .white : .mainColor
         buttonAckConfidential.circle()
         buttonAckConfidential.addTarget(self, action: #selector(showChooserACKConfidential), for: .touchUpInside)
-        buttonAckConfidential.backgroundColor = .mainColor
+        buttonAckConfidential.tintColor = self.traitCollection.userInterfaceStyle == .dark ? .blackDarkMode : .white
+        buttonAckConfidential.backgroundColor = self.traitCollection.userInterfaceStyle == .dark ? .white : .mainColor
         textFieldSend.layer.cornerRadius = textFieldSend.maxCornerRadius()
         textFieldSend.layer.borderWidth = 1.0
         textFieldSend.text = "Send message".localized()
@@ -671,10 +672,9 @@ public class EditorGroup: UIViewController {
             searchBar.delegate = self
             searchBar.searchTextField.tintColor = .mainColor
             searchBar.searchTextField.textColor = .mainColor
-            searchBar.barTintColor = .secondaryColor
-            searchBar.searchTextField.backgroundColor = .secondaryColor
+            searchBar.updateHeight(height: 32, radius: 20)
             searchBar.showsCancelButton = false
-            searchBar.setMagnifyingGlassColorTo(color: .mainColor)
+            searchBar.setMagnifyingGlassColorTo(color: self.traitCollection.userInterfaceStyle == .dark ? .white : .mainColor)
             navigationItem.titleView = searchBar
             self.definesPresentationContext = true
         }
@@ -2469,7 +2469,7 @@ extension EditorGroup: UIContextMenuInteractionDelegate {
             constraintBottomContainerMultpileSelectSession,
             containerMultpileSelectSession.heightAnchor.constraint(equalToConstant: 50)
         ])
-        containerMultpileSelectSession.backgroundColor = .white
+        containerMultpileSelectSession.backgroundColor = self.traitCollection.userInterfaceStyle == .dark ? .blackDarkMode : .white
         addSubviewMultipleSession()
     }
     
@@ -2487,7 +2487,7 @@ extension EditorGroup: UIContextMenuInteractionDelegate {
         container.layer.shadowOffset = CGSize(width: 3, height: 3)
         container.layer.shadowRadius = 3.0
         container.layer.shadowColor = UIColor.black.cgColor
-        container.backgroundColor = .secondaryColor
+        container.backgroundColor = self.traitCollection.userInterfaceStyle == .dark ? .blackDarkMode : .secondaryColor
         
         if !isSearching {
             let title = UILabel()

+ 4 - 5
appbuilder-ios/NexilisLite/NexilisLite/Source/View/Chat/EditorPersonal.swift

@@ -748,10 +748,9 @@ public class EditorPersonal: UIViewController, ImageVideoPickerDelegate, UIGestu
             searchBar.delegate = self
             searchBar.searchTextField.tintColor = .mainColor
             searchBar.searchTextField.textColor = .mainColor
-            searchBar.barTintColor = .secondaryColor
-            searchBar.searchTextField.backgroundColor = .secondaryColor
             searchBar.showsCancelButton = false
-            searchBar.setMagnifyingGlassColorTo(color: .mainColor)
+            searchBar.setMagnifyingGlassColorTo(color: self.traitCollection.userInterfaceStyle == .dark ? .white : .mainColor)
+            searchBar.updateHeight(height: 32, radius: 20)
             navigationItem.titleView = searchBar
             self.definesPresentationContext = true
         }
@@ -3651,7 +3650,7 @@ extension EditorPersonal: UIContextMenuInteractionDelegate {
             constraintBottomContainerMultpileSelectSession,
             containerMultpileSelectSession.heightAnchor.constraint(equalToConstant: 50)
         ])
-        containerMultpileSelectSession.backgroundColor = .white
+        containerMultpileSelectSession.backgroundColor = self.traitCollection.userInterfaceStyle == .dark ? .blackDarkMode : .white
         addSubviewMultipleSession()
     }
     
@@ -3669,7 +3668,7 @@ extension EditorPersonal: UIContextMenuInteractionDelegate {
         container.layer.shadowOffset = CGSize(width: 3, height: 3)
         container.layer.shadowRadius = 3.0
         container.layer.shadowColor = UIColor.black.cgColor
-        container.backgroundColor = .secondaryColor
+        container.backgroundColor = self.traitCollection.userInterfaceStyle == .dark ? .blackDarkMode : .secondaryColor
         
         if !isSearching {
             let title = UILabel()

+ 2 - 3
appbuilder-ios/NexilisLite/NexilisLite/Source/View/Contact/ContactCallViewController.swift

@@ -83,11 +83,10 @@ class ContactCallViewController: UIViewController {
         searchController.searchResultsUpdater = self
         searchController.searchBar.autocapitalizationType = .none
         searchController.searchBar.delegate = self
-        searchController.searchBar.barTintColor = .secondaryColor
-        searchController.searchBar.searchTextField.backgroundColor = .secondaryColor
         searchController.obscuresBackgroundDuringPresentation = false
         searchController.searchBar.searchTextField.attributedPlaceholder = NSAttributedString(string: "Search".localized(), attributes: [NSAttributedString.Key.foregroundColor: UIColor.gray, NSAttributedString.Key.font: UIFont.systemFont(ofSize: 16)])
-        searchController.searchBar.setMagnifyingGlassColorTo(color: .mainColor)
+        searchController.searchBar.updateHeight(height: 32, radius: 20)
+        searchController.searchBar.setMagnifyingGlassColorTo(color: self.traitCollection.userInterfaceStyle == .dark ? .white : .mainColor)
         searchController.searchBar.tintColor = .mainColor
         
         navigationItem.searchController = searchController

+ 2 - 3
appbuilder-ios/NexilisLite/NexilisLite/Source/View/Control/AddFriendTableViewController.swift

@@ -63,11 +63,10 @@ class AddFriendTableViewController: UITableViewController {
         searchController.searchResultsUpdater = self
         searchController.searchBar.autocapitalizationType = .none
         searchController.searchBar.delegate = self
-        searchController.searchBar.barTintColor = .secondaryColor
-        searchController.searchBar.searchTextField.backgroundColor = .secondaryColor
         searchController.obscuresBackgroundDuringPresentation = false
         searchController.searchBar.searchTextField.attributedPlaceholder = NSAttributedString(string: "Search".localized(), attributes: [NSAttributedString.Key.foregroundColor: UIColor.gray, NSAttributedString.Key.font: UIFont.systemFont(ofSize: 16)])
-        searchController.searchBar.setMagnifyingGlassColorTo(color: .mainColor)
+        searchController.searchBar.updateHeight(height: 32, radius: 20)
+        searchController.searchBar.setMagnifyingGlassColorTo(color: self.traitCollection.userInterfaceStyle == .dark ? .white : .mainColor)
         searchController.searchBar.tintColor = .mainColor
         
         definesPresentationContext = true

+ 2 - 3
appbuilder-ios/NexilisLite/NexilisLite/Source/View/Control/BroadcastMembersTableViewController.swift

@@ -78,11 +78,10 @@ class BroadcastMembersTableViewController: UITableViewController, UISearchContro
         searchController.searchResultsUpdater = self
         searchController.searchBar.autocapitalizationType = .none
         searchController.searchBar.delegate = self
-        searchController.searchBar.barTintColor = .secondaryColor
-        searchController.searchBar.searchTextField.backgroundColor = .secondaryColor
         searchController.obscuresBackgroundDuringPresentation = false
         searchController.searchBar.searchTextField.attributedPlaceholder = NSAttributedString(string: "Search".localized(), attributes: [NSAttributedString.Key.foregroundColor: UIColor.gray, NSAttributedString.Key.font: UIFont.systemFont(ofSize: 16)])
-        searchController.searchBar.setMagnifyingGlassColorTo(color: .mainColor)
+        searchController.searchBar.updateHeight(height: 32, radius: 20)
+        searchController.searchBar.setMagnifyingGlassColorTo(color: self.traitCollection.userInterfaceStyle == .dark ? .white : .mainColor)
         searchController.searchBar.tintColor = .mainColor
         UIBarButtonItem.appearance(whenContainedInInstancesOf: [UISearchBar.self]).setTitleTextAttributes([NSAttributedString.Key.foregroundColor: UIColor.white], for: .normal)
         

+ 11 - 7
appbuilder-ios/NexilisLite/NexilisLite/Source/View/Control/ContactChatViewController.swift

@@ -156,10 +156,9 @@ class ContactChatViewController: UITableViewController {
         searchController.searchResultsUpdater = self
         searchController.searchBar.autocapitalizationType = .none
         searchController.searchBar.delegate = self
-        searchController.searchBar.barTintColor = self.traitCollection.userInterfaceStyle == .dark ? .blackDarkMode : .secondaryColor
-        searchController.searchBar.searchTextField.backgroundColor = self.traitCollection.userInterfaceStyle == .dark ? .blackDarkMode : .secondaryColor
         searchController.obscuresBackgroundDuringPresentation = false
         searchController.searchBar.setMagnifyingGlassColorTo(color: self.traitCollection.userInterfaceStyle == .dark ? .white : .mainColor)
+        searchController.searchBar.updateHeight(height: 32, radius: 20)
         searchController.searchBar.tintColor = .mainColor
         searchController.searchBar.searchTextField.attributedPlaceholder = NSAttributedString(string: "Search".localized(), attributes: [NSAttributedString.Key.foregroundColor: UIColor.gray, NSAttributedString.Key.font: UIFont.systemFont(ofSize: 16)])
         
@@ -169,9 +168,9 @@ class ContactChatViewController: UITableViewController {
         
         definesPresentationContext = true
         
-        var dataSegment = ["Chats".localized(), "Contacts".localized(), "Groups".localized()]
+        var dataSegment = ["Chats".localized(), "Contacts".localized(), "Forums".localized()]
         if noUCList{
-            dataSegment = ["Contacts".localized(), "Groups".localized()]
+            dataSegment = ["Contacts".localized(), "Forums".localized()]
         }
         segment = UISegmentedControl(items: dataSegment)
         segment.sizeToFit()
@@ -549,6 +548,7 @@ extension ContactChatViewController {
             if data.pin == "-997" {
                 let smartChatVC = AppStoryBoard.Palio.instance.instantiateViewController(identifier: "chatGptVC") as! ChatGPTBotView
                 smartChatVC.hidesBottomBarWhenPushed = true
+                smartChatVC.fromNotification = false
                 navigationController?.show(smartChatVC, sender: nil)
                 return
             }
@@ -1199,9 +1199,13 @@ extension ContactChatViewController {
                     data = contacts[indexPath.row]
                 }
                 content.imageProperties.maximumSize = CGSize(width: 40, height: 40)
-                getImage(name: data.thumb, placeholderImage: UIImage(named: "Profile---Purple", in: Bundle.resourceBundle(for: Nexilis.self), with: nil), isCircle: true, tableView: tableView, indexPath: indexPath, completion: { result, isDownloaded, image in
-                    content.image = image
-                })
+                if data.pin == "-997" {
+                    content.image = UIImage(named: "pb_gpt_bot", in: Bundle.resourceBundle(for: Nexilis.self), with: nil)
+                } else {
+                    getImage(name: data.thumb, placeholderImage: UIImage(named: "Profile---Purple", in: Bundle.resourceBundle(for: Nexilis.self), with: nil), isCircle: true, tableView: tableView, indexPath: indexPath, completion: { result, isDownloaded, image in
+                        content.image = image
+                    })
+                }
                 if User.isOfficial(official_account: data.official ?? "") || User.isOfficialRegular(official_account: data.official ?? "") {
                     content.attributedText = self.set(image: UIImage(named: "ic_official_flag", in: Bundle.resourceBundle(for: Nexilis.self), with: nil)!, with: "  \(data.fullName)", size: 15, y: -4, colorText: UIColor.officialColor)
                     

+ 1 - 2
appbuilder-ios/NexilisLite/NexilisLite/Source/View/Control/GroupMemberViewController.swift

@@ -48,9 +48,8 @@ class GroupMemberViewController: UITableViewController {
         searchController.searchResultsUpdater = self
         searchController.searchBar.autocapitalizationType = .none
         searchController.searchBar.delegate = self
-        searchController.searchBar.barTintColor = .secondaryColor
-        searchController.searchBar.searchTextField.backgroundColor = .secondaryColor
         searchController.obscuresBackgroundDuringPresentation = false
+        searchController.searchBar.updateHeight(height: 32, radius: 20)
         searchController.searchBar.searchTextField.attributedPlaceholder = NSAttributedString(string: "Search".localized(), attributes: [NSAttributedString.Key.foregroundColor: UIColor.gray, NSAttributedString.Key.font: UIFont.systemFont(ofSize: 16)])
         
         definesPresentationContext = true

+ 1 - 2
appbuilder-ios/NexilisLite/NexilisLite/Source/View/Control/SetInternalCSAccount.swift

@@ -37,9 +37,8 @@ public class SetInternalCSAccount: UITableViewController {
         searchController.searchResultsUpdater = self
         searchController.searchBar.autocapitalizationType = .none
         searchController.searchBar.delegate = self
-        searchController.searchBar.barTintColor = .secondaryColor
-        searchController.searchBar.searchTextField.backgroundColor = .secondaryColor
         searchController.obscuresBackgroundDuringPresentation = false
+        searchController.searchBar.updateHeight(height: 32, radius: 20)
         searchController.searchBar.searchTextField.attributedPlaceholder = NSAttributedString(string: "Search".localized(), attributes: [NSAttributedString.Key.foregroundColor: UIColor.gray, NSAttributedString.Key.font: UIFont.systemFont(ofSize: 16)])
         
         definesPresentationContext = true

+ 1 - 2
appbuilder-ios/NexilisLite/NexilisLite/Source/View/Streaming/QmeraGroupChooserViewController.swift

@@ -54,8 +54,7 @@ class QmeraGroupStreamingViewController: UITableViewController {
         searchController.searchResultsUpdater = self
         searchController.searchBar.autocapitalizationType = .none
         searchController.searchBar.delegate = self
-        searchController.searchBar.barTintColor = .secondaryColor
-        searchController.searchBar.searchTextField.backgroundColor = .secondaryColor
+        searchController.searchBar.updateHeight(height: 32, radius: 20)
         searchController.obscuresBackgroundDuringPresentation = false
         searchController.searchBar.searchTextField.attributedPlaceholder = NSAttributedString(string: "Search".localized(), attributes: [NSAttributedString.Key.foregroundColor: UIColor.gray, NSAttributedString.Key.font: UIFont.systemFont(ofSize: 16)])
         

+ 1 - 2
appbuilder-ios/NexilisLite/NexilisLite/Source/View/Streaming/QmeraUserChooserViewController.swift

@@ -55,8 +55,7 @@ class QmeraUserChooserViewController: UITableViewController {
         searchController.searchResultsUpdater = self
         searchController.searchBar.autocapitalizationType = .none
         searchController.searchBar.delegate = self
-        searchController.searchBar.barTintColor = .secondaryColor
-        searchController.searchBar.searchTextField.backgroundColor = .secondaryColor
+        searchController.searchBar.updateHeight(height: 32, radius: 20)
         searchController.obscuresBackgroundDuringPresentation = false
         searchController.searchBar.searchTextField.attributedPlaceholder = NSAttributedString(string: "Search".localized(), attributes: [NSAttributedString.Key.foregroundColor: UIColor.gray, NSAttributedString.Key.font: UIFont.systemFont(ofSize: 16)])
         

+ 2 - 3
appbuilder-ios/NexilisLite/NexilisLite/Source/View/Streaming/SeminarListViewController.swift

@@ -57,11 +57,10 @@ class SeminarListViewController: UIViewController {
         searchController.searchResultsUpdater = self
         searchController.searchBar.autocapitalizationType = .none
         searchController.searchBar.delegate = self
-        searchController.searchBar.barTintColor = .secondaryColor
-        searchController.searchBar.searchTextField.backgroundColor = .secondaryColor
         searchController.obscuresBackgroundDuringPresentation = false
+        searchController.searchBar.updateHeight(height: 32, radius: 20)
         searchController.searchBar.searchTextField.attributedPlaceholder = NSAttributedString(string: "Search".localized(), attributes: [NSAttributedString.Key.foregroundColor: UIColor.gray, NSAttributedString.Key.font: UIFont.systemFont(ofSize: 16)])
-        searchController.searchBar.setMagnifyingGlassColorTo(color: .mainColor)
+        searchController.searchBar.setMagnifyingGlassColorTo(color: self.traitCollection.userInterfaceStyle == .dark ? .white : .mainColor)
         searchController.searchBar.tintColor = .mainColor
         
         tableView.delegate = self