alqindiirsyam 2 年之前
父節點
當前提交
2a59828747
共有 67 個文件被更改,包括 404 次插入368 次删除
  1. 0 36
      appbuilder-ios/AppBuilder/AppBuilder.xcodeproj/project.pbxproj
  2. 3 3
      appbuilder-ios/AppBuilder/AppBuilder/AppDelegate.swift
  3. 2 2
      appbuilder-ios/AppBuilder/AppBuilder/FirstTabViewController.swift
  4. 13 11
      appbuilder-ios/AppBuilder/AppBuilder/FourthTabViewController.swift
  5. 8 5
      appbuilder-ios/AppBuilder/AppBuilder/SecondTabViewController.swift
  6. 2 2
      appbuilder-ios/AppBuilder/AppBuilder/ThirdTabViewController.swift
  7. 4 4
      appbuilder-ios/AppBuilder/AppBuilder/ViewController.swift
  8. 36 36
      appbuilder-ios/DigiXLite/DigiXLite.xcodeproj/project.pbxproj
  9. 二進制
      appbuilder-ios/DigiXLite/DigiXLite.xcworkspace/xcuserdata/akhmadalqindiirsyam.xcuserdatad/UserInterfaceState.xcuserstate
  10. 3 3
      appbuilder-ios/DigiXLite/DigiXLite/Source/APIS.swift
  11. 28 0
      appbuilder-ios/DigiXLite/DigiXLite/Source/Extension.swift
  12. 1 1
      appbuilder-ios/DigiXLite/DigiXLite/Source/FloatingButton/FloatingButton.swift
  13. 38 38
      appbuilder-ios/DigiXLite/DigiXLite/Source/Nexilis.swift
  14. 1 1
      appbuilder-ios/DigiXLite/DigiXLite/Source/View/Call/QmeraAudioConference.swift
  15. 3 3
      appbuilder-ios/DigiXLite/DigiXLite/Source/View/Call/QmeraAudioViewController.swift
  16. 3 0
      appbuilder-ios/DigiXLite/DigiXLite/Source/View/Call/QmeraCallContactViewController.swift
  17. 4 4
      appbuilder-ios/DigiXLite/DigiXLite/Source/View/Call/QmeraVideoViewController.swift
  18. 1 1
      appbuilder-ios/DigiXLite/DigiXLite/Source/View/Call/ScreenSharingViewController.swift
  19. 1 1
      appbuilder-ios/DigiXLite/DigiXLite/Source/View/Call/VideoViewController.swift
  20. 1 1
      appbuilder-ios/DigiXLite/DigiXLite/Source/View/Call/WhiteboardViewController.swift
  21. 6 6
      appbuilder-ios/DigiXLite/DigiXLite/Source/View/Chat/EditorGroup.swift
  22. 16 16
      appbuilder-ios/DigiXLite/DigiXLite/Source/View/Chat/EditorPersonal.swift
  23. 1 1
      appbuilder-ios/DigiXLite/DigiXLite/Source/View/Chat/EditorStarMessages.swift
  24. 1 1
      appbuilder-ios/DigiXLite/DigiXLite/Source/View/Chat/PreviewAttachmentImageVideo.swift
  25. 4 4
      appbuilder-ios/DigiXLite/DigiXLite/Source/View/Control/BroadcastViewController.swift
  26. 1 1
      appbuilder-ios/DigiXLite/DigiXLite/Source/View/Control/ChangeNameTableViewController.swift
  27. 1 1
      appbuilder-ios/DigiXLite/DigiXLite/Source/View/Control/ContactChatViewController.swift
  28. 13 13
      appbuilder-ios/DigiXLite/DigiXLite/Source/View/Control/GroupDetailViewController.swift
  29. 2 2
      appbuilder-ios/DigiXLite/DigiXLite/Source/View/Control/ImageVideoPicker.swift
  30. 7 8
      appbuilder-ios/DigiXLite/DigiXLite/Source/View/Control/ProfileViewController.swift
  31. 2 2
      appbuilder-ios/DigiXLite/DigiXLite/Source/View/Control/SetInternalCSAccount.swift
  32. 2 2
      appbuilder-ios/DigiXLite/DigiXLite/Source/View/Control/SetOfficerBNI.swift
  33. 10 10
      appbuilder-ios/DigiXLite/DigiXLite/Source/View/Control/SettingTableViewController.swift
  34. 2 2
      appbuilder-ios/DigiXLite/DigiXLite/Source/View/Streaming/CreateSeminarViewController.swift
  35. 2 2
      appbuilder-ios/DigiXLite/DigiXLite/Source/View/Streaming/QmeraCreateStreamingViewController.swift
  36. 2 2
      appbuilder-ios/DigiXLite/DigiXLite/Source/View/Streaming/QmeraStreamingViewController.swift
  37. 1 1
      appbuilder-ios/DigiXLite/DigiXLite/Source/View/Streaming/SeminarListViewController.swift
  38. 2 2
      appbuilder-ios/DigiXLite/DigiXLite/Source/View/Streaming/SeminarViewController.swift
  39. 3 3
      appbuilder-ios/NexilisLite/NexilisLite/Source/APIS.swift
  40. 29 0
      appbuilder-ios/NexilisLite/NexilisLite/Source/Extension.swift
  41. 1 1
      appbuilder-ios/NexilisLite/NexilisLite/Source/FloatingButton/FloatingButton.swift
  42. 54 48
      appbuilder-ios/NexilisLite/NexilisLite/Source/Nexilis.swift
  43. 1 1
      appbuilder-ios/NexilisLite/NexilisLite/Source/View/Call/QmeraAudioConference.swift
  44. 3 3
      appbuilder-ios/NexilisLite/NexilisLite/Source/View/Call/QmeraAudioViewController.swift
  45. 3 0
      appbuilder-ios/NexilisLite/NexilisLite/Source/View/Call/QmeraCallContactViewController.swift
  46. 4 4
      appbuilder-ios/NexilisLite/NexilisLite/Source/View/Call/QmeraVideoViewController.swift
  47. 1 1
      appbuilder-ios/NexilisLite/NexilisLite/Source/View/Call/ScreenSharingViewController.swift
  48. 1 1
      appbuilder-ios/NexilisLite/NexilisLite/Source/View/Call/VideoViewController.swift
  49. 1 1
      appbuilder-ios/NexilisLite/NexilisLite/Source/View/Call/WhiteboardViewController.swift
  50. 6 6
      appbuilder-ios/NexilisLite/NexilisLite/Source/View/Chat/EditorGroup.swift
  51. 16 16
      appbuilder-ios/NexilisLite/NexilisLite/Source/View/Chat/EditorPersonal.swift
  52. 1 1
      appbuilder-ios/NexilisLite/NexilisLite/Source/View/Chat/EditorStarMessages.swift
  53. 1 1
      appbuilder-ios/NexilisLite/NexilisLite/Source/View/Chat/PreviewAttachmentImageVideo.swift
  54. 4 4
      appbuilder-ios/NexilisLite/NexilisLite/Source/View/Control/BroadcastViewController.swift
  55. 1 1
      appbuilder-ios/NexilisLite/NexilisLite/Source/View/Control/ChangeNameTableViewController.swift
  56. 1 1
      appbuilder-ios/NexilisLite/NexilisLite/Source/View/Control/ContactChatViewController.swift
  57. 13 13
      appbuilder-ios/NexilisLite/NexilisLite/Source/View/Control/GroupDetailViewController.swift
  58. 2 2
      appbuilder-ios/NexilisLite/NexilisLite/Source/View/Control/ImageVideoPicker.swift
  59. 8 9
      appbuilder-ios/NexilisLite/NexilisLite/Source/View/Control/ProfileViewController.swift
  60. 2 2
      appbuilder-ios/NexilisLite/NexilisLite/Source/View/Control/SetInternalCSAccount.swift
  61. 2 2
      appbuilder-ios/NexilisLite/NexilisLite/Source/View/Control/SetOfficerBNI.swift
  62. 10 10
      appbuilder-ios/NexilisLite/NexilisLite/Source/View/Control/SettingTableViewController.swift
  63. 2 2
      appbuilder-ios/NexilisLite/NexilisLite/Source/View/Streaming/CreateSeminarViewController.swift
  64. 2 2
      appbuilder-ios/NexilisLite/NexilisLite/Source/View/Streaming/QmeraCreateStreamingViewController.swift
  65. 2 2
      appbuilder-ios/NexilisLite/NexilisLite/Source/View/Streaming/QmeraStreamingViewController.swift
  66. 1 1
      appbuilder-ios/NexilisLite/NexilisLite/Source/View/Streaming/SeminarListViewController.swift
  67. 2 2
      appbuilder-ios/NexilisLite/NexilisLite/Source/View/Streaming/SeminarViewController.swift

+ 0 - 36
appbuilder-ios/AppBuilder/AppBuilder.xcodeproj/project.pbxproj

@@ -19,13 +19,6 @@
 		A42ED92227F30BA200B0FAB7 /* FirstTabViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A42ED92127F30BA200B0FAB7 /* FirstTabViewController.swift */; };
 		A42ED92427F3FC2F00B0FAB7 /* SecondTabViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A42ED92327F3FC2F00B0FAB7 /* SecondTabViewController.swift */; };
 		A42ED92627F439A200B0FAB7 /* ThirdTabViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A42ED92527F439A200B0FAB7 /* ThirdTabViewController.swift */; };
-		A4B5F03E27F193DD0089B871 /* Poppins-Light.ttf in Resources */ = {isa = PBXBuildFile; fileRef = A4B5F03727F193DC0089B871 /* Poppins-Light.ttf */; };
-		A4B5F03F27F193DD0089B871 /* Poppins-Medium.ttf in Resources */ = {isa = PBXBuildFile; fileRef = A4B5F03827F193DC0089B871 /* Poppins-Medium.ttf */; };
-		A4B5F04027F193DD0089B871 /* Poppins-SemiBoldItalic.ttf in Resources */ = {isa = PBXBuildFile; fileRef = A4B5F03927F193DC0089B871 /* Poppins-SemiBoldItalic.ttf */; };
-		A4B5F04127F193DD0089B871 /* Poppins-Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = A4B5F03A27F193DC0089B871 /* Poppins-Regular.ttf */; };
-		A4B5F04227F193DD0089B871 /* Poppins-LightItalic.ttf in Resources */ = {isa = PBXBuildFile; fileRef = A4B5F03B27F193DC0089B871 /* Poppins-LightItalic.ttf */; };
-		A4B5F04327F193DD0089B871 /* Poppins-SemiBold.ttf in Resources */ = {isa = PBXBuildFile; fileRef = A4B5F03C27F193DC0089B871 /* Poppins-SemiBold.ttf */; };
-		A4B5F04427F193DD0089B871 /* Poppins-MediumItalic.ttf in Resources */ = {isa = PBXBuildFile; fileRef = A4B5F03D27F193DC0089B871 /* Poppins-MediumItalic.ttf */; };
 		CDEE3DCC29B06E1E00B420E5 /* NotificationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDEE3DCB29B06E1E00B420E5 /* NotificationService.swift */; };
 		CDEE3DD029B06E1E00B420E5 /* NotificationService.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = CDEE3DC929B06E1E00B420E5 /* NotificationService.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
 /* End PBXBuildFile section */
@@ -78,13 +71,6 @@
 		A42ED92127F30BA200B0FAB7 /* FirstTabViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FirstTabViewController.swift; sourceTree = "<group>"; };
 		A42ED92327F3FC2F00B0FAB7 /* SecondTabViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecondTabViewController.swift; sourceTree = "<group>"; };
 		A42ED92527F439A200B0FAB7 /* ThirdTabViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThirdTabViewController.swift; sourceTree = "<group>"; };
-		A4B5F03727F193DC0089B871 /* Poppins-Light.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Poppins-Light.ttf"; sourceTree = "<group>"; };
-		A4B5F03827F193DC0089B871 /* Poppins-Medium.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Poppins-Medium.ttf"; sourceTree = "<group>"; };
-		A4B5F03927F193DC0089B871 /* Poppins-SemiBoldItalic.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Poppins-SemiBoldItalic.ttf"; sourceTree = "<group>"; };
-		A4B5F03A27F193DC0089B871 /* Poppins-Regular.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Poppins-Regular.ttf"; sourceTree = "<group>"; };
-		A4B5F03B27F193DC0089B871 /* Poppins-LightItalic.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Poppins-LightItalic.ttf"; sourceTree = "<group>"; };
-		A4B5F03C27F193DC0089B871 /* Poppins-SemiBold.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Poppins-SemiBold.ttf"; sourceTree = "<group>"; };
-		A4B5F03D27F193DC0089B871 /* Poppins-MediumItalic.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Poppins-MediumItalic.ttf"; sourceTree = "<group>"; };
 		A5E5DD081C8AF3DD05C9600B /* Pods_AppBuilder.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_AppBuilder.framework; sourceTree = BUILT_PRODUCTS_DIR; };
 		CDEE3DC929B06E1E00B420E5 /* NotificationService.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = NotificationService.appex; sourceTree = BUILT_PRODUCTS_DIR; };
 		CDEE3DCB29B06E1E00B420E5 /* NotificationService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationService.swift; sourceTree = "<group>"; };
@@ -135,7 +121,6 @@
 		2401CE98275490DB00B323BB /* AppBuilder */ = {
 			isa = PBXGroup;
 			children = (
-				A4B5F03627F193DC0089B871 /* fonts */,
 				2401CE99275490DB00B323BB /* AppDelegate.swift */,
 				2401CE9B275490DB00B323BB /* SceneDelegate.swift */,
 				2401CE9D275490DB00B323BB /* ViewController.swift */,
@@ -169,20 +154,6 @@
 			path = Pods;
 			sourceTree = "<group>";
 		};
-		A4B5F03627F193DC0089B871 /* fonts */ = {
-			isa = PBXGroup;
-			children = (
-				A4B5F03727F193DC0089B871 /* Poppins-Light.ttf */,
-				A4B5F03827F193DC0089B871 /* Poppins-Medium.ttf */,
-				A4B5F03927F193DC0089B871 /* Poppins-SemiBoldItalic.ttf */,
-				A4B5F03A27F193DC0089B871 /* Poppins-Regular.ttf */,
-				A4B5F03B27F193DC0089B871 /* Poppins-LightItalic.ttf */,
-				A4B5F03C27F193DC0089B871 /* Poppins-SemiBold.ttf */,
-				A4B5F03D27F193DC0089B871 /* Poppins-MediumItalic.ttf */,
-			);
-			path = fonts;
-			sourceTree = "<group>";
-		};
 		CDEE3DCA29B06E1E00B420E5 /* NotificationService */ = {
 			isa = PBXGroup;
 			children = (
@@ -275,16 +246,9 @@
 			isa = PBXResourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				A4B5F04427F193DD0089B871 /* Poppins-MediumItalic.ttf in Resources */,
-				A4B5F03E27F193DD0089B871 /* Poppins-Light.ttf in Resources */,
 				2401CEA6275490E600B323BB /* LaunchScreen.storyboard in Resources */,
-				A4B5F04027F193DD0089B871 /* Poppins-SemiBoldItalic.ttf in Resources */,
-				A4B5F03F27F193DD0089B871 /* Poppins-Medium.ttf in Resources */,
-				A4B5F04327F193DD0089B871 /* Poppins-SemiBold.ttf in Resources */,
 				2401CEA3275490E600B323BB /* Assets.xcassets in Resources */,
 				2401CEA1275490DB00B323BB /* Main.storyboard in Resources */,
-				A4B5F04227F193DD0089B871 /* Poppins-LightItalic.ttf in Resources */,
-				A4B5F04127F193DD0089B871 /* Poppins-Regular.ttf in Resources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};

+ 3 - 3
appbuilder-ios/AppBuilder/AppBuilder/AppDelegate.swift

@@ -31,7 +31,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
             UITabBar.appearance().scrollEdgeAppearance = tabBarAppearance
         }
         UITextField.appearance(whenContainedInInstancesOf: [UISearchBar.self]).defaultTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.black]
-        let cancelButtonAttributes = [NSAttributedString.Key.foregroundColor: UIColor.black]
+        let cancelButtonAttributes = [NSAttributedString.Key.foregroundColor: UIColor.black, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
         UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes , for: .normal)
         registerForPushNotifications()
         return true
@@ -133,7 +133,7 @@ extension AppDelegate: ConnectDelegate, UNUserNotificationCenterDelegate {
         navigationController.navigationBar.isTranslucent = false
         navigationController.navigationBar.overrideUserInterfaceStyle = .dark
         navigationController.navigationBar.barStyle = .black
-        let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+        let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
         UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
         let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
         navigationController.navigationBar.titleTextAttributes = textAttributes
@@ -157,7 +157,7 @@ extension AppDelegate: ConnectDelegate, UNUserNotificationCenterDelegate {
         navigationController.navigationBar.isTranslucent = false
         navigationController.navigationBar.overrideUserInterfaceStyle = .dark
         navigationController.navigationBar.barStyle = .black
-        let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+        let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
         UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
         let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
         navigationController.navigationBar.titleTextAttributes = textAttributes

+ 2 - 2
appbuilder-ios/AppBuilder/AppBuilder/FirstTabViewController.swift

@@ -23,7 +23,7 @@ class FirstTabViewController: UIViewController, UIScrollViewDelegate, UIGestureR
     var recognitionRequest : SFSpeechAudioBufferRecognitionRequest?
     var recognitionTask : SFSpeechRecognitionTask?
     let audioEngine = AVAudioEngine()
-    var alertController = UIAlertController()
+    var alertController = LibAlertController()
     
     var dateRefresh: Date?
     public static var forceRefresh = false
@@ -430,7 +430,7 @@ class FirstTabViewController: UIViewController, UIScrollViewDelegate, UIGestureR
     
     func runVoice() {
         if !audioEngine.isRunning {
-            alertController = UIAlertController(title: "Start Recording".localized(), message: "Say something, I'm listening!".localized(), preferredStyle: .alert)
+            alertController = LibAlertController(title: "Start Recording".localized(), message: "Say something, I'm listening!".localized(), preferredStyle: .alert)
             self.present(alertController, animated: true)
             self.webView.evaluateJavaScript("toggleVoiceButton(true)")
             self.startRecording()

+ 13 - 11
appbuilder-ios/AppBuilder/AppBuilder/FourthTabViewController.swift

@@ -268,11 +268,13 @@ public class FourthTabViewController: UIViewController, UITableViewDelegate, UIT
     override public func viewWillAppear(_ animated: Bool) {
         self.navigationController?.navigationBar.topItem?.title = ""
         self.navigationController?.navigationBar.titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.black]
+        let attributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.black, NSAttributedString.Key.font : UIFont.boldSystemFont(ofSize: 16)]
         let navBarAppearance = UINavigationBarAppearance()
         navBarAppearance.configureWithTransparentBackground()
+        navBarAppearance.titleTextAttributes = attributes
         navigationController?.navigationBar.standardAppearance = navBarAppearance
         navigationController?.navigationBar.scrollEdgeAppearance = navBarAppearance
-        let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.black]
+        let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.black, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
         UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
         navigationController?.navigationBar.backgroundColor = .clear
         navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
@@ -427,7 +429,7 @@ public class FourthTabViewController: UIViewController, UITableViewDelegate, UIT
                     banner.show()
                     return
                 }
-                let alertController = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
+                let alertController = LibAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
                 if(item.title.contains("Change")){
                     if let action = self.actionChangePassword(for: "admin", title: "Change Admin Password".localized()) {
                         alertController.addAction(action)
@@ -466,7 +468,7 @@ public class FourthTabViewController: UIViewController, UITableViewDelegate, UIT
             pickerView.centerXAnchor.constraint(equalTo: vc.view.centerXAnchor).isActive = true
             pickerView.centerYAnchor.constraint(equalTo: vc.view.centerYAnchor).isActive = true
             
-            let alert = UIAlertController(title: "Select Language".localized(), message: "", preferredStyle: .actionSheet)
+            let alert = LibAlertController(title: "Select Language".localized(), message: "", preferredStyle: .actionSheet)
             
             alert.setValue(vc, forKey: "contentViewController")
             alert.addAction(UIAlertAction(title: "Cancel".localized(), style: .cancel, handler: { (UIAlertAction) in
@@ -505,7 +507,7 @@ public class FourthTabViewController: UIViewController, UITableViewDelegate, UIT
             }
             navigationController?.show(controller, sender: nil)
         } else if item.title == "Sign-Out".localized() {
-            let alert = UIAlertController(title: "Sign-Out".localized(), message: "Are you sure want to logout?".localized(), preferredStyle: .alert)
+            let alert = LibAlertController(title: "Sign-Out".localized(), message: "Are you sure want to logout?".localized(), preferredStyle: .alert)
             alert.addAction(UIAlertAction(title: "Cancel".localized(), style: UIAlertAction.Style.default, handler: nil))
             alert.addAction(UIAlertAction(title: "Yes".localized(), style: .destructive, handler: {(_) in
                 var viewController = UIApplication.shared.windows.first!.rootViewController
@@ -612,7 +614,7 @@ public class FourthTabViewController: UIViewController, UITableViewDelegate, UIT
             }
             
             if permissionCheck == 0 {
-                let alert = UIAlertController(title: "Attention!".localized(), message: "Please allow camera permission in your settings".localized(), preferredStyle: .alert)
+                let alert = LibAlertController(title: "Attention!".localized(), message: "Please allow camera permission in your settings".localized(), preferredStyle: .alert)
                 alert.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: { _ in
                     if let url = URL(string: UIApplication.openSettingsURLString), UIApplication.shared.canOpenURL(url) {
                         UIApplication.shared.open(url, options: [:], completionHandler: nil)
@@ -630,7 +632,7 @@ public class FourthTabViewController: UIViewController, UITableViewDelegate, UIT
             navigationController.navigationBar.tintColor = .white
             navigationController.navigationBar.barTintColor = .mainColor
             navigationController.navigationBar.isTranslucent = false
-            let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+            let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
             UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
             let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
             navigationController.navigationBar.titleTextAttributes = textAttributes
@@ -650,7 +652,7 @@ public class FourthTabViewController: UIViewController, UITableViewDelegate, UIT
             navigationController.navigationBar.isTranslucent = false
             navigationController.navigationBar.overrideUserInterfaceStyle = .dark
             navigationController.navigationBar.barStyle = .black
-            let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+            let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
             UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
             let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
             navigationController.navigationBar.titleTextAttributes = textAttributes
@@ -671,9 +673,9 @@ public class FourthTabViewController: UIViewController, UITableViewDelegate, UIT
     
     private func actionLogin(for type: String, title: String) -> UIAlertAction? {
         return UIAlertAction(title: title, style: .default) { _ in
-            self.alert = UIAlertController(title:"Access Admin Features".localized(), message: nil, preferredStyle: .alert)
+            self.alert = LibAlertController(title:"Access Admin Features".localized(), message: nil, preferredStyle: .alert)
             if type == "internal" {
-                self.alert = UIAlertController(title: "Access Internal Features".localized(), message: nil, preferredStyle: .alert)
+                self.alert = LibAlertController(title: "Access Internal Features".localized(), message: nil, preferredStyle: .alert)
             }
             self.textFields.removeAll()
             self.alert?.addTextField{ (texfield) in
@@ -750,9 +752,9 @@ public class FourthTabViewController: UIViewController, UITableViewDelegate, UIT
     
     private func actionChangePassword(for type: String, title: String) -> UIAlertAction? {
         return UIAlertAction(title: title, style: .default) { _ in
-            self.alert = UIAlertController(title: "Change Admin Password".localized(), message: nil, preferredStyle: .alert)
+            self.alert = LibAlertController(title: "Change Admin Password".localized(), message: nil, preferredStyle: .alert)
             if type == "internal" {
-                self.alert = UIAlertController(title: "Change Internal Password".localized(), message: nil, preferredStyle: .alert)
+                self.alert = LibAlertController(title: "Change Internal Password".localized(), message: nil, preferredStyle: .alert)
             }
             self.textFields.removeAll()
             self.alert?.addTextField{ (texfield) in

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

@@ -30,7 +30,7 @@ class SecondTabViewController: UIViewController, UIScrollViewDelegate, UIGesture
     var groupMap: [String:Int] = [:]
     
     var isAllowSpeech = false
-    var alertController = UIAlertController()
+    var alertController = LibAlertController()
     
     var noData = false
 
@@ -53,6 +53,7 @@ class SecondTabViewController: UIViewController, UIScrollViewDelegate, UIGesture
         segment.sizeToFit()
         segment.selectedSegmentIndex = 0
         segment.addTarget(self, action: #selector(segmentChanged(sender:)), for: .valueChanged)
+        segment.setTitleTextAttributes([NSAttributedString.Key.font: UIFont.boldSystemFont(ofSize: 12.0)], for: .normal)
         return segment
     }()
     
@@ -165,7 +166,7 @@ class SecondTabViewController: UIViewController, UIScrollViewDelegate, UIGesture
         navigationController.navigationBar.tintColor = .white
         navigationController.navigationBar.barTintColor = .mainColor
         navigationController.navigationBar.isTranslucent = false
-        let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+        let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
         UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
         let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
         navigationController.navigationBar.titleTextAttributes = textAttributes
@@ -291,7 +292,7 @@ class SecondTabViewController: UIViewController, UIScrollViewDelegate, UIGesture
     func runVoice() {
         if !audioEngine.isRunning {
             self.voiceItem.image = UIImage(systemName: "mic")
-            alertController = UIAlertController(title: "Start Recording".localized(), message: "Say something, I'm listening!".localized(), preferredStyle: .alert)
+            alertController = LibAlertController(title: "Start Recording".localized(), message: "Say something, I'm listening!".localized(), preferredStyle: .alert)
             self.present(alertController, animated: true)
             self.startRecording()
         }
@@ -343,10 +344,12 @@ class SecondTabViewController: UIViewController, UIScrollViewDelegate, UIGesture
     
     override func viewWillAppear(_ animated: Bool) {
 //        tabBarController?.navigationItem.leftBarButtonItem = cancelSearchButton
-        let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.black]
+        let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.black, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
         UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
+        let attributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.black, NSAttributedString.Key.font : UIFont.boldSystemFont(ofSize: 16)]
         let navBarAppearance = UINavigationBarAppearance()
         navBarAppearance.configureWithTransparentBackground()
+        navBarAppearance.titleTextAttributes = attributes
         navigationController?.navigationBar.standardAppearance = navBarAppearance
         navigationController?.navigationBar.scrollEdgeAppearance = navBarAppearance
         navigationController?.navigationBar.backgroundColor = .clear
@@ -781,7 +784,7 @@ extension SecondTabViewController: UITableViewDelegate, UITableViewDataSource {
             groupMap.removeValue(forKey: group.id)
         }
         if group.groupType == "NOTJOINED" {
-            let alert = UIAlertController(title: "Do you want to join this group?".localized(), message: "Groups : \(group.name)\nMembers: \(group.by)".localized(), preferredStyle: .alert)
+            let alert = LibAlertController(title: "Do you want to join this group?".localized(), message: "Groups : \(group.name)\nMembers: \(group.by)".localized(), preferredStyle: .alert)
             alert.addAction(UIAlertAction(title: "Cancel".localized(), style: .cancel, handler: nil))
             alert.addAction(UIAlertAction(title: "Join".localized(), style: .default, handler: {(_) in
                 self.joinOpenGroup(groupId: group.id, completion: { result in

+ 2 - 2
appbuilder-ios/AppBuilder/AppBuilder/ThirdTabViewController.swift

@@ -23,7 +23,7 @@ class ThirdTabViewController: UIViewController, UIScrollViewDelegate, UIGestureR
     var recognitionRequest : SFSpeechAudioBufferRecognitionRequest?
     var recognitionTask : SFSpeechRecognitionTask?
     let audioEngine = AVAudioEngine()
-    var alertController = UIAlertController()
+    var alertController = LibAlertController()
     
     var dateRefresh: Date?
     public static var forceRefresh = false
@@ -442,7 +442,7 @@ class ThirdTabViewController: UIViewController, UIScrollViewDelegate, UIGestureR
     
     func runVoice() {
         if !audioEngine.isRunning {
-            alertController = UIAlertController(title: "Start Recording".localized(), message: "Say something, I'm listening!".localized(), preferredStyle: .alert)
+            alertController = LibAlertController(title: "Start Recording".localized(), message: "Say something, I'm listening!".localized(), preferredStyle: .alert)
             self.present(alertController, animated: true)
             self.webView.evaluateJavaScript("toggleVoiceButton(true)")
             self.startRecording()

+ 4 - 4
appbuilder-ios/AppBuilder/AppBuilder/ViewController.swift

@@ -294,13 +294,13 @@ class ViewController: UITabBarController, UITabBarControllerDelegate, SettingMAB
         }
     }
     
-    static var alertChangeProfile = UIAlertController()
+    static var alertChangeProfile = LibAlertController()
     
     public static func checkIsChangePerson() -> Bool {
         let isChangeProfile = Utils.getSetProfile()
         if !isChangeProfile {
             alertChangeProfile.dismiss(animated: false)
-            alertChangeProfile = UIAlertController(title: "Change Profile".localized(), message: "You must change your name to use this feature".localized().localized(), preferredStyle: .alert)
+            alertChangeProfile = LibAlertController(title: "Change Profile".localized(), message: "You must change your name to use this feature".localized().localized(), preferredStyle: .alert)
             alertChangeProfile.addAction(UIAlertAction(title: "Cancel".localized(), style: .destructive, handler: {_ in
                 if ViewController.def?.viewControllers?.firstIndex(of: (ViewController.def?.firstTab)!) == ViewController.def?.selectedIndex {
                     ViewController.def?.firstTab?.webView?.evaluateJavaScript("if(resumeAll){resumeAll();}")
@@ -326,7 +326,7 @@ class ViewController: UITabBarController, UITabBarControllerDelegate, SettingMAB
                 navigationController.navigationBar.isTranslucent = false
                 navigationController.navigationBar.overrideUserInterfaceStyle = .dark
                 navigationController.navigationBar.barStyle = .black
-                let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+                let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
                 UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
                 let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
                 navigationController.navigationBar.titleTextAttributes = textAttributes
@@ -580,7 +580,7 @@ class ViewController: UITabBarController, UITabBarControllerDelegate, SettingMAB
                 navigationController.navigationBar.isTranslucent = false
                 navigationController.navigationBar.overrideUserInterfaceStyle = .dark
                 navigationController.navigationBar.barStyle = .black
-                let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+                let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
                 UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
                 let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
                 navigationController.navigationBar.titleTextAttributes = textAttributes

+ 36 - 36
appbuilder-ios/DigiXLite/DigiXLite.xcodeproj/project.pbxproj

@@ -189,25 +189,25 @@
 		CD46A0BB2A0CE320009E4C87 /* sticker_10000000_8.png in Resources */ = {isa = PBXBuildFile; fileRef = CD46A0162A0CE2DE009E4C87 /* sticker_10000000_8.png */; };
 		CD46A0BF2A0CE4FD009E4C87 /* DigiXLite.podspec in Resources */ = {isa = PBXBuildFile; fileRef = CD46A0BE2A0CE4FD009E4C87 /* DigiXLite.podspec */; };
 		CD46A0C52A0D0D5D009E4C87 /* MyArchive.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD46A0C42A0D0D5D009E4C87 /* MyArchive.swift */; };
+		CD95516C2A6688ED00AF6476 /* Inter-LightItalic.ttf in Resources */ = {isa = PBXBuildFile; fileRef = CDAEC1172A612981007DE08D /* Inter-LightItalic.ttf */; };
+		CD95516D2A6688ED00AF6476 /* Inter-ExtraBold.ttf in Resources */ = {isa = PBXBuildFile; fileRef = CDAEC1182A612981007DE08D /* Inter-ExtraBold.ttf */; };
+		CD95516E2A6688ED00AF6476 /* Inter-Italic.ttf in Resources */ = {isa = PBXBuildFile; fileRef = CDAEC11F2A612981007DE08D /* Inter-Italic.ttf */; };
+		CD95516F2A6688ED00AF6476 /* Inter-BoldItalic.ttf in Resources */ = {isa = PBXBuildFile; fileRef = CDAEC11B2A612981007DE08D /* Inter-BoldItalic.ttf */; };
+		CD9551702A6688ED00AF6476 /* Inter-Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = CDAEC1162A612981007DE08D /* Inter-Regular.ttf */; };
+		CD9551712A6688ED00AF6476 /* Inter-SemiBold.ttf in Resources */ = {isa = PBXBuildFile; fileRef = CDAEC1212A612981007DE08D /* Inter-SemiBold.ttf */; };
+		CD9551722A6688ED00AF6476 /* Inter-ExtraBoldItalic.ttf in Resources */ = {isa = PBXBuildFile; fileRef = CDAEC11C2A612981007DE08D /* Inter-ExtraBoldItalic.ttf */; };
+		CD9551732A6688ED00AF6476 /* Inter-Black.ttf in Resources */ = {isa = PBXBuildFile; fileRef = CDAEC11E2A612981007DE08D /* Inter-Black.ttf */; };
+		CD9551742A6688ED00AF6476 /* Inter-Bold.ttf in Resources */ = {isa = PBXBuildFile; fileRef = CDAEC1152A612981007DE08D /* Inter-Bold.ttf */; };
+		CD9551752A6688ED00AF6476 /* Inter-SemiBoldItalic.ttf in Resources */ = {isa = PBXBuildFile; fileRef = CDAEC1132A612981007DE08D /* Inter-SemiBoldItalic.ttf */; };
+		CD9551762A6688ED00AF6476 /* Inter-Medium.ttf in Resources */ = {isa = PBXBuildFile; fileRef = CDAEC1102A612981007DE08D /* Inter-Medium.ttf */; };
+		CD9551772A6688ED00AF6476 /* Inter-Thin.ttf in Resources */ = {isa = PBXBuildFile; fileRef = CDAEC1142A612981007DE08D /* Inter-Thin.ttf */; };
+		CD9551782A6688ED00AF6476 /* Inter-BlackItalic.ttf in Resources */ = {isa = PBXBuildFile; fileRef = CDAEC1202A612981007DE08D /* Inter-BlackItalic.ttf */; };
+		CD9551792A6688ED00AF6476 /* Inter-ThinItalic.ttf in Resources */ = {isa = PBXBuildFile; fileRef = CDAEC1192A612981007DE08D /* Inter-ThinItalic.ttf */; };
+		CD95517A2A6688ED00AF6476 /* Inter-ExtraLightItalic.ttf in Resources */ = {isa = PBXBuildFile; fileRef = CDAEC1122A612981007DE08D /* Inter-ExtraLightItalic.ttf */; };
+		CD95517B2A6688ED00AF6476 /* Inter-Light.ttf in Resources */ = {isa = PBXBuildFile; fileRef = CDAEC1112A612981007DE08D /* Inter-Light.ttf */; };
+		CD95517C2A6688ED00AF6476 /* Inter-ExtraLight.ttf in Resources */ = {isa = PBXBuildFile; fileRef = CDAEC11A2A612981007DE08D /* Inter-ExtraLight.ttf */; };
+		CD95517D2A6688ED00AF6476 /* Inter-MediumItalic.ttf in Resources */ = {isa = PBXBuildFile; fileRef = CDAEC11D2A612981007DE08D /* Inter-MediumItalic.ttf */; };
 		CD9829B72A3C07CB009F6743 /* SeminarListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD9829B62A3C07CB009F6743 /* SeminarListViewController.swift */; };
-		CDAEC1222A612981007DE08D /* Inter-Medium.ttf in Resources */ = {isa = PBXBuildFile; fileRef = CDAEC1102A612981007DE08D /* Inter-Medium.ttf */; };
-		CDAEC1232A612981007DE08D /* Inter-Light.ttf in Resources */ = {isa = PBXBuildFile; fileRef = CDAEC1112A612981007DE08D /* Inter-Light.ttf */; };
-		CDAEC1242A612981007DE08D /* Inter-ExtraLightItalic.ttf in Resources */ = {isa = PBXBuildFile; fileRef = CDAEC1122A612981007DE08D /* Inter-ExtraLightItalic.ttf */; };
-		CDAEC1252A612981007DE08D /* Inter-SemiBoldItalic.ttf in Resources */ = {isa = PBXBuildFile; fileRef = CDAEC1132A612981007DE08D /* Inter-SemiBoldItalic.ttf */; };
-		CDAEC1262A612981007DE08D /* Inter-Thin.ttf in Resources */ = {isa = PBXBuildFile; fileRef = CDAEC1142A612981007DE08D /* Inter-Thin.ttf */; };
-		CDAEC1272A612981007DE08D /* Inter-Bold.ttf in Resources */ = {isa = PBXBuildFile; fileRef = CDAEC1152A612981007DE08D /* Inter-Bold.ttf */; };
-		CDAEC1282A612981007DE08D /* Inter-Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = CDAEC1162A612981007DE08D /* Inter-Regular.ttf */; };
-		CDAEC1292A612981007DE08D /* Inter-LightItalic.ttf in Resources */ = {isa = PBXBuildFile; fileRef = CDAEC1172A612981007DE08D /* Inter-LightItalic.ttf */; };
-		CDAEC12A2A612981007DE08D /* Inter-ExtraBold.ttf in Resources */ = {isa = PBXBuildFile; fileRef = CDAEC1182A612981007DE08D /* Inter-ExtraBold.ttf */; };
-		CDAEC12B2A612981007DE08D /* Inter-ThinItalic.ttf in Resources */ = {isa = PBXBuildFile; fileRef = CDAEC1192A612981007DE08D /* Inter-ThinItalic.ttf */; };
-		CDAEC12C2A612981007DE08D /* Inter-ExtraLight.ttf in Resources */ = {isa = PBXBuildFile; fileRef = CDAEC11A2A612981007DE08D /* Inter-ExtraLight.ttf */; };
-		CDAEC12D2A612981007DE08D /* Inter-BoldItalic.ttf in Resources */ = {isa = PBXBuildFile; fileRef = CDAEC11B2A612981007DE08D /* Inter-BoldItalic.ttf */; };
-		CDAEC12E2A612981007DE08D /* Inter-ExtraBoldItalic.ttf in Resources */ = {isa = PBXBuildFile; fileRef = CDAEC11C2A612981007DE08D /* Inter-ExtraBoldItalic.ttf */; };
-		CDAEC12F2A612981007DE08D /* Inter-MediumItalic.ttf in Resources */ = {isa = PBXBuildFile; fileRef = CDAEC11D2A612981007DE08D /* Inter-MediumItalic.ttf */; };
-		CDAEC1302A612981007DE08D /* Inter-Black.ttf in Resources */ = {isa = PBXBuildFile; fileRef = CDAEC11E2A612981007DE08D /* Inter-Black.ttf */; };
-		CDAEC1312A612981007DE08D /* Inter-Italic.ttf in Resources */ = {isa = PBXBuildFile; fileRef = CDAEC11F2A612981007DE08D /* Inter-Italic.ttf */; };
-		CDAEC1322A612981007DE08D /* Inter-BlackItalic.ttf in Resources */ = {isa = PBXBuildFile; fileRef = CDAEC1202A612981007DE08D /* Inter-BlackItalic.ttf */; };
-		CDAEC1332A612981007DE08D /* Inter-SemiBold.ttf in Resources */ = {isa = PBXBuildFile; fileRef = CDAEC1212A612981007DE08D /* Inter-SemiBold.ttf */; };
 		CDDF46752A2DD81300049A19 /* CreateSeminarViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDDF46732A2DD81300049A19 /* CreateSeminarViewController.swift */; };
 		CDDF46762A2DD81300049A19 /* SeminarViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDDF46742A2DD81300049A19 /* SeminarViewController.swift */; };
 		CDDF467A2A2EF0A700049A19 /* ScreenSharingViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDDF46792A2EF0A700049A19 /* ScreenSharingViewController.swift */; };
@@ -987,27 +987,9 @@
 			buildActionMask = 2147483647;
 			files = (
 				CD46A06F2A0CE310009E4C87 /* DigiXLiteResources.bundle in Resources */,
-				CDAEC1242A612981007DE08D /* Inter-ExtraLightItalic.ttf in Resources */,
-				CDAEC12D2A612981007DE08D /* Inter-BoldItalic.ttf in Resources */,
 				CD46A06B2A0CE307009E4C87 /* Localizable.strings in Resources */,
-				CDAEC12C2A612981007DE08D /* Inter-ExtraLight.ttf in Resources */,
-				CDAEC1232A612981007DE08D /* Inter-Light.ttf in Resources */,
-				CDAEC1292A612981007DE08D /* Inter-LightItalic.ttf in Resources */,
-				CDAEC12A2A612981007DE08D /* Inter-ExtraBold.ttf in Resources */,
-				CDAEC1252A612981007DE08D /* Inter-SemiBoldItalic.ttf in Resources */,
-				CDAEC12E2A612981007DE08D /* Inter-ExtraBoldItalic.ttf in Resources */,
-				CDAEC1262A612981007DE08D /* Inter-Thin.ttf in Resources */,
-				CDAEC12B2A612981007DE08D /* Inter-ThinItalic.ttf in Resources */,
-				CDAEC1332A612981007DE08D /* Inter-SemiBold.ttf in Resources */,
-				CDAEC1272A612981007DE08D /* Inter-Bold.ttf in Resources */,
-				CDAEC1322A612981007DE08D /* Inter-BlackItalic.ttf in Resources */,
-				CDAEC1302A612981007DE08D /* Inter-Black.ttf in Resources */,
 				CD46A06C2A0CE307009E4C87 /* Assets.xcassets in Resources */,
-				CDAEC1282A612981007DE08D /* Inter-Regular.ttf in Resources */,
 				CD46A06D2A0CE307009E4C87 /* PreviewAttachmentImageVideo.xib in Resources */,
-				CDAEC1312A612981007DE08D /* Inter-Italic.ttf in Resources */,
-				CDAEC12F2A612981007DE08D /* Inter-MediumItalic.ttf in Resources */,
-				CDAEC1222A612981007DE08D /* Inter-Medium.ttf in Resources */,
 				CD46A06E2A0CE307009E4C87 /* Palio.storyboard in Resources */,
 				CD46A0BF2A0CE4FD009E4C87 /* DigiXLite.podspec in Resources */,
 			);
@@ -1024,14 +1006,19 @@
 			isa = PBXResourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				CD9551782A6688ED00AF6476 /* Inter-BlackItalic.ttf in Resources */,
+				CD9551752A6688ED00AF6476 /* Inter-SemiBoldItalic.ttf in Resources */,
 				CD46A0702A0CE320009E4C87 /* sticker_10000000_5.png in Resources */,
+				CD9551742A6688ED00AF6476 /* Inter-Bold.ttf in Resources */,
 				CD46A0712A0CE320009E4C87 /* sticker_20000000_22.png in Resources */,
 				CD46A0722A0CE320009E4C87 /* sticker_30000000_38.png in Resources */,
 				CD46A0732A0CE320009E4C87 /* sticker_30000000_10.png in Resources */,
 				CD46A0742A0CE320009E4C87 /* sticker_30000000_11.png in Resources */,
 				CD46A0752A0CE320009E4C87 /* sticker_30000000_39.png in Resources */,
+				CD9551762A6688ED00AF6476 /* Inter-Medium.ttf in Resources */,
 				CD46A0762A0CE320009E4C87 /* sticker_20000000_23.png in Resources */,
 				CD46A0772A0CE320009E4C87 /* sticker_10000000_4.png in Resources */,
+				CD9551792A6688ED00AF6476 /* Inter-ThinItalic.ttf in Resources */,
 				CD46A0782A0CE320009E4C87 /* sticker_10000000_6.png in Resources */,
 				CD46A0792A0CE320009E4C87 /* sticker_20000000_21.png in Resources */,
 				CD46A07A2A0CE320009E4C87 /* sticker_30000000_13.png in Resources */,
@@ -1039,15 +1026,19 @@
 				CD46A07C2A0CE320009E4C87 /* sticker_30000000_8.png in Resources */,
 				CD46A07D2A0CE320009E4C87 /* sticker_30000000_12.png in Resources */,
 				CD46A07E2A0CE320009E4C87 /* sticker_20000000_20.png in Resources */,
+				CD95517A2A6688ED00AF6476 /* Inter-ExtraLightItalic.ttf in Resources */,
 				CD46A07F2A0CE320009E4C87 /* sticker_10000000_7.png in Resources */,
 				CD46A0802A0CE320009E4C87 /* sticker_10000000_3.png in Resources */,
 				CD46A0812A0CE320009E4C87 /* sticker_20000000_18.png in Resources */,
+				CD95516C2A6688ED00AF6476 /* Inter-LightItalic.ttf in Resources */,
+				CD9551722A6688ED00AF6476 /* Inter-ExtraBoldItalic.ttf in Resources */,
 				CD46A0822A0CE320009E4C87 /* sticker_30000000_16.png in Resources */,
 				CD46A0832A0CE320009E4C87 /* sticker_30000000_17.png in Resources */,
 				CD46A0842A0CE320009E4C87 /* sticker_20000000_19.png in Resources */,
 				CD46A0852A0CE320009E4C87 /* sticker_10000000_2.png in Resources */,
 				CD46A0862A0CE320009E4C87 /* sticker_10000000_0.png in Resources */,
 				CD46A0872A0CE320009E4C87 /* sticker_20000000_8.png in Resources */,
+				CD95517D2A6688ED00AF6476 /* Inter-MediumItalic.ttf in Resources */,
 				CD46A0882A0CE320009E4C87 /* sticker_30000000_15.png in Resources */,
 				CD46A0892A0CE320009E4C87 /* sticker_30000000_29.png in Resources */,
 				CD46A08A2A0CE320009E4C87 /* sticker_30000000_28.png in Resources */,
@@ -1076,14 +1067,22 @@
 				CD46A0A12A0CE320009E4C87 /* sticker_30000000_27.png in Resources */,
 				CD46A0A22A0CE320009E4C87 /* sticker_30000000_33.png in Resources */,
 				CD46A0A32A0CE320009E4C87 /* sticker_20000000_6.png in Resources */,
+				CD95516D2A6688ED00AF6476 /* Inter-ExtraBold.ttf in Resources */,
+				CD9551732A6688ED00AF6476 /* Inter-Black.ttf in Resources */,
+				CD95516F2A6688ED00AF6476 /* Inter-BoldItalic.ttf in Resources */,
+				CD9551772A6688ED00AF6476 /* Inter-Thin.ttf in Resources */,
+				CD95517C2A6688ED00AF6476 /* Inter-ExtraLight.ttf in Resources */,
 				CD46A0A42A0CE320009E4C87 /* sticker_20000000_15.png in Resources */,
 				CD46A0A52A0CE320009E4C87 /* sticker_10000000_10.png in Resources */,
 				CD46A0A62A0CE320009E4C87 /* sticker_20000000_2.png in Resources */,
+				CD95516E2A6688ED00AF6476 /* Inter-Italic.ttf in Resources */,
 				CD46A0A72A0CE320009E4C87 /* sticker_20000000_11.png in Resources */,
 				CD46A0A82A0CE320009E4C87 /* sticker_30000000_37.png in Resources */,
+				CD95517B2A6688ED00AF6476 /* Inter-Light.ttf in Resources */,
 				CD46A0A92A0CE320009E4C87 /* sticker_30000000_23.png in Resources */,
 				CD46A0AA2A0CE320009E4C87 /* sticker_30000000_5.png in Resources */,
 				CD46A0AB2A0CE320009E4C87 /* sticker_30000000_4.png in Resources */,
+				CD9551702A6688ED00AF6476 /* Inter-Regular.ttf in Resources */,
 				CD46A0AC2A0CE320009E4C87 /* sticker_30000000_22.png in Resources */,
 				CD46A0AD2A0CE320009E4C87 /* sticker_30000000_36.png in Resources */,
 				CD46A0AE2A0CE320009E4C87 /* sticker_20000000_10.png in Resources */,
@@ -1095,6 +1094,7 @@
 				CD46A0B42A0CE320009E4C87 /* sticker_30000000_34.png in Resources */,
 				CD46A0B52A0CE320009E4C87 /* sticker_30000000_6.png in Resources */,
 				CD46A0B62A0CE320009E4C87 /* sticker_30000000_7.png in Resources */,
+				CD9551712A6688ED00AF6476 /* Inter-SemiBold.ttf in Resources */,
 				CD46A0B72A0CE320009E4C87 /* sticker_30000000_35.png in Resources */,
 				CD46A0B82A0CE320009E4C87 /* sticker_30000000_21.png in Resources */,
 				CD46A0B92A0CE320009E4C87 /* sticker_20000000_13.png in Resources */,

二進制
appbuilder-ios/DigiXLite/DigiXLite.xcworkspace/xcuserdata/akhmadalqindiirsyam.xcuserdatad/UserInterfaceState.xcuserstate


+ 3 - 3
appbuilder-ios/DigiXLite/DigiXLite/Source/APIS.swift

@@ -29,7 +29,7 @@ public class APIS: NSObject {
     }
     
     private static func showChangeProfile() {
-        let alert = UIAlertController(title: "Change Profile".localized(), message: "You must change your name to use this feature".localized(), preferredStyle: .alert)
+        let alert = LibAlertController(title: "Change Profile".localized(), message: "You must change your name to use this feature".localized(), preferredStyle: .alert)
         alert.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: {(_) in
             let controller = AppStoryBoard.Palio.instance.instantiateViewController(withIdentifier: "signupsignin") as! SignUpSignIn
             controller.forceLogin = true
@@ -180,7 +180,7 @@ public class APIS: NSObject {
         navigationController.navigationBar.isTranslucent = false
         navigationController.navigationBar.overrideUserInterfaceStyle = .dark
         navigationController.navigationBar.barStyle = .black
-        let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+        let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
         UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
         let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
         navigationController.navigationBar.titleTextAttributes = textAttributes
@@ -693,7 +693,7 @@ extension UINavigationController {
         self.navigationBar.isTranslucent = false
         self.navigationBar.overrideUserInterfaceStyle = .dark
         self.navigationBar.barStyle = .black
-        let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+        let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
         UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
         let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
         self.navigationBar.titleTextAttributes = textAttributes

+ 28 - 0
appbuilder-ios/DigiXLite/DigiXLite/Source/Extension.swift

@@ -1184,6 +1184,34 @@ class ImageCache {
     }
 }
 
+public class LibAlertController: UIAlertController {
+    public override func viewWillAppear(_ animated: Bool) {
+        super.viewWillAppear(animated)
+        
+        // Customize the title's font
+        let titleFont = UIFont.boldSystemFont(ofSize: 16)
+        let titleAttributes = [NSAttributedString.Key.font: titleFont]
+        setValue(NSAttributedString(string: self.title ?? "", attributes: titleAttributes), forKey: "attributedTitle")
+        
+        // Change the font for the message
+        let messageFont = UIFont.systemFont(ofSize: 14)
+        let messageAttributes = [NSAttributedString.Key.font: messageFont]
+        setValue(NSAttributedString(string: self.message ?? "", attributes: messageAttributes), forKey: "attributedMessage")
+    }
+    
+    open override func viewDidLayoutSubviews() {
+        super.viewDidLayoutSubviews()
+
+        for i in self.actions {
+            let attributedText = NSAttributedString(string: i.title ?? "", attributes: [NSAttributedString.Key.font : UIFont.systemFont(ofSize: 14)])
+
+            guard let label = (i.value(forKey: "__representer") as AnyObject).value(forKey: "label") as? UILabel else { return }
+            label.attributedText = attributedText
+        }
+
+    }
+}
+
 extension UISearchBar
 {
 

+ 1 - 1
appbuilder-ios/DigiXLite/DigiXLite/Source/FloatingButton/FloatingButton.swift

@@ -358,7 +358,7 @@ public class FloatingButton: UIView {
                 navigationController.navigationBar.isTranslucent = false
                 navigationController.navigationBar.overrideUserInterfaceStyle = .dark
                 navigationController.navigationBar.barStyle = .black
-                let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+                let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
                 UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
                 let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
                 navigationController.navigationBar.titleTextAttributes = textAttributes

+ 38 - 38
appbuilder-ios/DigiXLite/DigiXLite/Source/Nexilis.swift

@@ -52,7 +52,7 @@ public class Nexilis: NSObject {
     
     public static var openBroadcast = false
     
-    public static var loadingAlert = UIAlertController()
+    public static var loadingAlert = LibAlertController()
     
     private func createDelegate() {
         //print(("createDelegate...")
@@ -616,7 +616,7 @@ public class Nexilis: NSObject {
     public static func openUrl(isBNI: Bool = false, url: String = "") {
         let isChangeProfile = Utils.getSetProfile()
         if !isChangeProfile {
-            let alert = UIAlertController(title: "Change Profile".localized(), message: "You must change your name to use this feature".localized(), preferredStyle: .alert)
+            let alert = LibAlertController(title: "Change Profile".localized(), message: "You must change your name to use this feature".localized(), preferredStyle: .alert)
             alert.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: {(_) in
                 let controller = AppStoryBoard.Palio.instance.instantiateViewController(withIdentifier: "signupsignin") as! SignUpSignIn
                 controller.forceLogin = true
@@ -627,7 +627,7 @@ public class Nexilis: NSObject {
                 navigationController.navigationBar.isTranslucent = false
                 navigationController.navigationBar.overrideUserInterfaceStyle = .dark
                 navigationController.navigationBar.barStyle = .black
-                let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+                let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
                 UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
                 let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
                 navigationController.navigationBar.titleTextAttributes = textAttributes
@@ -660,7 +660,7 @@ public class Nexilis: NSObject {
         //print(("openApp itms-apps://apple.com/app/\(id)")
         let isChangeProfile = Utils.getSetProfile()
         if !isChangeProfile {
-            let alert = UIAlertController(title: "Change Profile".localized(), message: "You must change your name to use this feature".localized(), preferredStyle: .alert)
+            let alert = LibAlertController(title: "Change Profile".localized(), message: "You must change your name to use this feature".localized(), preferredStyle: .alert)
             alert.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: {(_) in
                 let controller = AppStoryBoard.Palio.instance.instantiateViewController(withIdentifier: "signupsignin") as! SignUpSignIn
                 controller.forceLogin = true
@@ -671,7 +671,7 @@ public class Nexilis: NSObject {
                 navigationController.navigationBar.isTranslucent = false
                 navigationController.navigationBar.overrideUserInterfaceStyle = .dark
                 navigationController.navigationBar.barStyle = .black
-                let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+                let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
                 UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
                 let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
                 navigationController.navigationBar.titleTextAttributes = textAttributes
@@ -697,12 +697,12 @@ public class Nexilis: NSObject {
         }
     }
     
-    static var alertChangeProfile = UIAlertController()
+    static var alertChangeProfile = LibAlertController()
     public static func checkIsChangePerson() -> Bool {
         let isChangeProfile = Utils.getSetProfile()
         if !isChangeProfile {
             alertChangeProfile.dismiss(animated: false)
-            alertChangeProfile = UIAlertController(title: "Change Profile".localized(), message: "You must change your name to use this feature".localized().localized(), preferredStyle: .alert)
+            alertChangeProfile = LibAlertController(title: "Change Profile".localized(), message: "You must change your name to use this feature".localized().localized(), preferredStyle: .alert)
             alertChangeProfile.addAction(UIAlertAction(title: "Cancel".localized(), style: .destructive, handler: nil))
             alertChangeProfile.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: {(_) in
                 let controller = AppStoryBoard.Palio.instance.instantiateViewController(withIdentifier: "signupsignin") as! SignUpSignIn
@@ -714,7 +714,7 @@ public class Nexilis: NSObject {
                 navigationController.navigationBar.isTranslucent = false
                 navigationController.navigationBar.overrideUserInterfaceStyle = .dark
                 navigationController.navigationBar.barStyle = .black
-                let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+                let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
                 UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
                 let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
                 navigationController.navigationBar.titleTextAttributes = textAttributes
@@ -738,7 +738,7 @@ public class Nexilis: NSObject {
     }
     
     public static func showLoader() {
-        loadingAlert = UIAlertController(title: nil, message: "Please wait...".localized(), preferredStyle: .alert)
+        loadingAlert = LibAlertController(title: nil, message: "Please wait...".localized(), preferredStyle: .alert)
 
         let loadingIndicator = UIActivityIndicatorView(frame: CGRect(x: 10, y: 5, width: 50, height: 50))
         loadingIndicator.hidesWhenStopped = true
@@ -1492,7 +1492,7 @@ extension UIFont {
     
     class func jbs_registerFont(withFilenameString filenameString: String) {
 
-        guard let pathForResourceString = Bundle.resourceBundle(for: Nexilis.self).path(forResource: filenameString, ofType: "ttf") else {
+        guard let pathForResourceString = Bundle.resourcesMediaBundle(for: Nexilis.self).path(forResource: filenameString, ofType: "ttf") else {
             //print(("UIFont+:  Failed to register font - path for resource not found.")
             return
         }
@@ -2030,7 +2030,7 @@ extension Nexilis: MessageDelegate {
                 } else if Nexilis.onGoingPushCC["f_display_name"] == message.getBody(key: CoreMessage_TMessageKey.F_DISPLAY_NAME) {
                     return
                 }
-                let alert = UIAlertController(title: "", message: "\n\n\n\n\n\n\n\n\n\n".localized(), preferredStyle: .alert)
+                let alert = LibAlertController(title: "", message: "\n\n\n\n\n\n\n\n\n\n".localized(), preferredStyle: .alert)
                 let newWidth = UIScreen.main.bounds.width * 0.90 - 270
                 // update width constraint value for main view
                 if let viewWidthConstraint = alert.view.constraints.filter({ return $0.firstAttribute == .width }).first{
@@ -2055,7 +2055,7 @@ extension Nexilis: MessageDelegate {
                 let acceptAction = UIAlertAction(title: "I'll handle the customer".localized(), style: .default, handler: {(_) in
                     let goAudioCall = Nexilis.checkMicPermission()
                     if !goAudioCall && message.getBody(key: CoreMessage_TMessageKey.CHANNEL) == "1" {
-                        let alert = UIAlertController(title: "Attention!".localized(), message: "Please allow microphone permission in your settings".localized(), preferredStyle: .alert)
+                        let alert = LibAlertController(title: "Attention!".localized(), message: "Please allow microphone permission in your settings".localized(), preferredStyle: .alert)
                         alert.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: { _ in
                             if let url = URL(string: UIApplication.openSettingsURLString), UIApplication.shared.canOpenURL(url) {
                                 UIApplication.shared.open(url, options: [:], completionHandler: nil)
@@ -2096,7 +2096,7 @@ extension Nexilis: MessageDelegate {
                         }
                         
                         if permissionCheck == 0 {
-                            let alert = UIAlertController(title: "Attention!".localized(), message: "Please allow camera permission in your settings".localized(), preferredStyle: .alert)
+                            let alert = LibAlertController(title: "Attention!".localized(), message: "Please allow camera permission in your settings".localized(), preferredStyle: .alert)
                             alert.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: { _ in
                                 if let url = URL(string: UIApplication.openSettingsURLString), UIApplication.shared.canOpenURL(url) {
                                     UIApplication.shared.open(url, options: [:], completionHandler: nil)
@@ -2120,9 +2120,9 @@ extension Nexilis: MessageDelegate {
                         let nc = UIApplication.shared.visibleViewController as! UINavigationController
                         if nc.visibleViewController is QmeraStreamingViewController {
                             let vc = nc.visibleViewController as! QmeraStreamingViewController
-                            var alert = UIAlertController(title: "", message: "Are you sure you want to end Live Streaming, and open notification?".localized(), preferredStyle: .alert)
+                            var alert = LibAlertController(title: "", message: "Are you sure you want to end Live Streaming, and open notification?".localized(), preferredStyle: .alert)
                             if !vc.isLive {
-                                alert = UIAlertController(title: "", message: "Are you sure you want to leave Live Streaming, and open notification?".localized(), preferredStyle: .alert)
+                                alert = LibAlertController(title: "", message: "Are you sure you want to leave Live Streaming, and open notification?".localized(), preferredStyle: .alert)
                             }
                             alert.addAction(UIAlertAction(title: "No".localized(), style: UIAlertAction.Style.default, handler: { _ in
                                 DispatchQueue.global().async {
@@ -2144,9 +2144,9 @@ extension Nexilis: MessageDelegate {
 //                                    NotificationCenter.default.post(name: NSNotification.Name(rawValue: "isRunningStreaming"), object: nil, userInfo: dataMessage)
                         } else if nc.visibleViewController is SeminarViewController {
                             let vc = nc.visibleViewController as! SeminarViewController
-                            var alert = UIAlertController(title: "", message: "Are you sure you want to end Seminar, and open notification?".localized(), preferredStyle: .alert)
+                            var alert = LibAlertController(title: "", message: "Are you sure you want to end Seminar, and open notification?".localized(), preferredStyle: .alert)
                             if !vc.isLive {
-                                alert = UIAlertController(title: "", message: "Are you sure you want to leave Seminar, and open notification?".localized(), preferredStyle: .alert)
+                                alert = LibAlertController(title: "", message: "Are you sure you want to leave Seminar, and open notification?".localized(), preferredStyle: .alert)
                             }
                             alert.addAction(UIAlertAction(title: "No".localized(), style: UIAlertAction.Style.default, handler: { _ in
                                 DispatchQueue.global().async {
@@ -2197,7 +2197,7 @@ extension Nexilis: MessageDelegate {
                                         navigationController.navigationBar.isTranslucent = false
                                         navigationController.navigationBar.overrideUserInterfaceStyle = .dark
                                         navigationController.navigationBar.barStyle = .black
-                                        let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+                                        let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
                                         UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
                                         let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
                                         navigationController.navigationBar.titleTextAttributes = textAttributes
@@ -2390,7 +2390,7 @@ extension Nexilis: MessageDelegate {
             }
             listCCIdInv.append(message.getBody(key: CoreMessage_TMessageKey.CALL_CENTER_ID))
             DispatchQueue.main.async {
-                let alert = UIAlertController(title: "", message: "\n\n\n\n\n\n\n\n\n\n".localized(), preferredStyle: .alert)
+                let alert = LibAlertController(title: "", message: "\n\n\n\n\n\n\n\n\n\n".localized(), preferredStyle: .alert)
                 let newWidth = UIScreen.main.bounds.width * 0.90 - 270
                 // update width constraint value for main view
                 if let viewWidthConstraint = alert.view.constraints.filter({ return $0.firstAttribute == .width }).first{
@@ -2420,7 +2420,7 @@ extension Nexilis: MessageDelegate {
                     listCCIdInv.removeAll(where: {$0 == message.getBody(key: CoreMessage_TMessageKey.CALL_CENTER_ID)})
                     let goAudioCall = Nexilis.checkMicPermission()
                     if !goAudioCall && message.getBody(key: CoreMessage_TMessageKey.CHANNEL) == "1" {
-                        let alert = UIAlertController(title: "Attention!".localized(), message: "Please allow microphone permission in your settings".localized(), preferredStyle: .alert)
+                        let alert = LibAlertController(title: "Attention!".localized(), message: "Please allow microphone permission in your settings".localized(), preferredStyle: .alert)
                         alert.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: { _ in
                             if let url = URL(string: UIApplication.openSettingsURLString), UIApplication.shared.canOpenURL(url) {
                                 UIApplication.shared.open(url, options: [:], completionHandler: nil)
@@ -2461,7 +2461,7 @@ extension Nexilis: MessageDelegate {
                         }
                         
                         if permissionCheck == 0 {
-                            let alert = UIAlertController(title: "Attention!".localized(), message: "Please allow camera permission in your settings".localized(), preferredStyle: .alert)
+                            let alert = LibAlertController(title: "Attention!".localized(), message: "Please allow camera permission in your settings".localized(), preferredStyle: .alert)
                             alert.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: { _ in
                                 if let url = URL(string: UIApplication.openSettingsURLString), UIApplication.shared.canOpenURL(url) {
                                     UIApplication.shared.open(url, options: [:], completionHandler: nil)
@@ -2486,9 +2486,9 @@ extension Nexilis: MessageDelegate {
                         let nc = UIApplication.shared.visibleViewController as! UINavigationController
                         if nc.visibleViewController is QmeraStreamingViewController {
                             let vc = nc.visibleViewController as! QmeraStreamingViewController
-                            var alert = UIAlertController(title: "", message: "Are you sure you want to end Live Streaming, and open notification?".localized(), preferredStyle: .alert)
+                            var alert = LibAlertController(title: "", message: "Are you sure you want to end Live Streaming, and open notification?".localized(), preferredStyle: .alert)
                             if !vc.isLive {
-                                alert = UIAlertController(title: "", message: "Are you sure you want to leave Live Streaming, and open notification?".localized(), preferredStyle: .alert)
+                                alert = LibAlertController(title: "", message: "Are you sure you want to leave Live Streaming, and open notification?".localized(), preferredStyle: .alert)
                             }
                             alert.addAction(UIAlertAction(title: "No".localized(), style: UIAlertAction.Style.default, handler: { _ in
                                 DispatchQueue.global().async {
@@ -2512,9 +2512,9 @@ extension Nexilis: MessageDelegate {
                             nc.present(alert, animated: true, completion: nil)
                         } else if nc.visibleViewController is SeminarViewController {
                             let vc = nc.visibleViewController as! SeminarViewController
-                            var alert = UIAlertController(title: "", message: "Are you sure you want to end Seminar, and open notification?".localized(), preferredStyle: .alert)
+                            var alert = LibAlertController(title: "", message: "Are you sure you want to end Seminar, and open notification?".localized(), preferredStyle: .alert)
                             if !vc.isLive {
-                                alert = UIAlertController(title: "", message: "Are you sure you want to leave Seminar, and open notification?".localized(), preferredStyle: .alert)
+                                alert = LibAlertController(title: "", message: "Are you sure you want to leave Seminar, and open notification?".localized(), preferredStyle: .alert)
                             }
                             alert.addAction(UIAlertAction(title: "No".localized(), style: UIAlertAction.Style.default, handler: { _ in
                                 DispatchQueue.global().async {
@@ -2594,7 +2594,7 @@ extension Nexilis: MessageDelegate {
                                             navigationController.navigationBar.isTranslucent = false
                                             navigationController.navigationBar.overrideUserInterfaceStyle = .dark
                                             navigationController.navigationBar.barStyle = .black
-                                            let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+                                            let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
                                             UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
                                             let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
                                             navigationController.navigationBar.titleTextAttributes = textAttributes
@@ -3024,7 +3024,7 @@ extension Nexilis: MessageDelegate {
                         Database.shared.database?.inTransaction({ (fmdb, rollback) in
                             if let cursorData = Database.shared.getRecords(fmdb: fmdb, query: "SELECT first_name, last_name FROM BUDDY where f_pin = '\(UserDefaults.standard.string(forKey: "me")!)'"), cursorData.next() {
                                 if (cursorData.string(forColumnIndex: 0)! + " " + cursorData.string(forColumnIndex: 1)!).trimmingCharacters(in: .whitespaces) == "USR\(UserDefaults.standard.string(forKey: "me")!)" {
-                                    let alert = UIAlertController(title: "Change Profile".localized(), message: "You must change your name to use this feature".localized(), preferredStyle: .alert)
+                                    let alert = LibAlertController(title: "Change Profile".localized(), message: "You must change your name to use this feature".localized(), preferredStyle: .alert)
                                     alert.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: {(_) in
                                         let controller = AppStoryBoard.Palio.instance.instantiateViewController(withIdentifier: "signupsignin") as! SignUpSignIn
                                         controller.forceLogin = true
@@ -3035,7 +3035,7 @@ extension Nexilis: MessageDelegate {
                                         navigationController.navigationBar.isTranslucent = false
                                         navigationController.navigationBar.overrideUserInterfaceStyle = .dark
                                         navigationController.navigationBar.barStyle = .black
-                                        let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+                                        let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
                                         UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
                                         let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
                                         navigationController.navigationBar.titleTextAttributes = textAttributes
@@ -3078,7 +3078,7 @@ extension Nexilis: MessageDelegate {
                                 navigationController.navigationBar.isTranslucent = false
                                 navigationController.navigationBar.overrideUserInterfaceStyle = .dark
                                 navigationController.navigationBar.barStyle = .black
-                                let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+                                let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
                                 UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
                                 let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
                                 navigationController.navigationBar.titleTextAttributes = textAttributes
@@ -3093,9 +3093,9 @@ extension Nexilis: MessageDelegate {
                                 let nc = UIApplication.shared.visibleViewController as! UINavigationController
                                 if nc.visibleViewController is QmeraStreamingViewController {
                                     let vc = nc.visibleViewController as! QmeraStreamingViewController
-                                    var alert = UIAlertController(title: "", message: "Are you sure you want to end Live Streaming, and open notification?".localized(), preferredStyle: .alert)
+                                    var alert = LibAlertController(title: "", message: "Are you sure you want to end Live Streaming, and open notification?".localized(), preferredStyle: .alert)
                                     if !vc.isLive {
-                                        alert = UIAlertController(title: "", message: "Are you sure you want to leave Live Streaming, and open notification?".localized(), preferredStyle: .alert)
+                                        alert = LibAlertController(title: "", message: "Are you sure you want to leave Live Streaming, and open notification?".localized(), preferredStyle: .alert)
                                     }
                                     alert.addAction(UIAlertAction(title: "No".localized(), style: UIAlertAction.Style.default, handler: nil))
                                     alert.addAction(UIAlertAction(title: "Yes".localized(), style: UIAlertAction.Style.default, handler: { _ in
@@ -3111,9 +3111,9 @@ extension Nexilis: MessageDelegate {
 //                                    NotificationCenter.default.post(name: NSNotification.Name(rawValue: "isRunningStreaming"), object: nil, userInfo: dataMessage)
                                 } else if nc.visibleViewController is SeminarViewController {
                                     let vc = nc.visibleViewController as! SeminarViewController
-                                    var alert = UIAlertController(title: "", message: "Are you sure you want to end Seminar, and open notification?".localized(), preferredStyle: .alert)
+                                    var alert = LibAlertController(title: "", message: "Are you sure you want to end Seminar, and open notification?".localized(), preferredStyle: .alert)
                                     if !vc.isLive {
-                                        alert = UIAlertController(title: "", message: "Are you sure you want to leave Seminar, and open notification?".localized(), preferredStyle: .alert)
+                                        alert = LibAlertController(title: "", message: "Are you sure you want to leave Seminar, and open notification?".localized(), preferredStyle: .alert)
                                     }
                                     alert.addAction(UIAlertAction(title: "No".localized(), style: UIAlertAction.Style.default, handler: nil))
                                     alert.addAction(UIAlertAction(title: "Yes".localized(), style: UIAlertAction.Style.default, handler: { _ in
@@ -3171,7 +3171,7 @@ extension Nexilis: MessageDelegate {
                                 navigationController.navigationBar.isTranslucent = false
                                 navigationController.navigationBar.overrideUserInterfaceStyle = .dark
                                 navigationController.navigationBar.barStyle = .black
-                                let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+                                let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
                                 UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
                                 let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
                                 navigationController.navigationBar.titleTextAttributes = textAttributes
@@ -3186,9 +3186,9 @@ extension Nexilis: MessageDelegate {
                                 let nc = UIApplication.shared.visibleViewController as! UINavigationController
                                 if nc.visibleViewController is QmeraStreamingViewController {
                                     let vc = nc.visibleViewController as! QmeraStreamingViewController
-                                    var alert = UIAlertController(title: "", message: "Are you sure you want to end Live Streaming, and open notification?".localized(), preferredStyle: .alert)
+                                    var alert = LibAlertController(title: "", message: "Are you sure you want to end Live Streaming, and open notification?".localized(), preferredStyle: .alert)
                                     if !vc.isLive {
-                                        alert = UIAlertController(title: "", message: "Are you sure you want to leave Live Streaming, and open notification?".localized(), preferredStyle: .alert)
+                                        alert = LibAlertController(title: "", message: "Are you sure you want to leave Live Streaming, and open notification?".localized(), preferredStyle: .alert)
                                     }
                                     alert.addAction(UIAlertAction(title: "No".localized(), style: UIAlertAction.Style.default, handler: nil))
                                     alert.addAction(UIAlertAction(title: "Yes".localized(), style: UIAlertAction.Style.default, handler: { _ in
@@ -3204,9 +3204,9 @@ extension Nexilis: MessageDelegate {
 //                                    NotificationCenter.default.post(name: NSNotification.Name(rawValue: "isRunningStreaming"), object: nil, userInfo: dataMessage)
                                 } else if nc.visibleViewController is SeminarViewController {
                                     let vc = nc.visibleViewController as! SeminarViewController
-                                    var alert = UIAlertController(title: "", message: "Are you sure you want to end Seminar, and open notification?".localized(), preferredStyle: .alert)
+                                    var alert = LibAlertController(title: "", message: "Are you sure you want to end Seminar, and open notification?".localized(), preferredStyle: .alert)
                                     if !vc.isLive {
-                                        alert = UIAlertController(title: "", message: "Are you sure you want to leave Seminar, and open notification?".localized(), preferredStyle: .alert)
+                                        alert = LibAlertController(title: "", message: "Are you sure you want to leave Seminar, and open notification?".localized(), preferredStyle: .alert)
                                     }
                                     alert.addAction(UIAlertAction(title: "No".localized(), style: UIAlertAction.Style.default, handler: nil))
                                     alert.addAction(UIAlertAction(title: "Yes".localized(), style: UIAlertAction.Style.default, handler: { _ in

+ 1 - 1
appbuilder-ios/DigiXLite/DigiXLite/Source/View/Call/QmeraAudioConference.swift

@@ -344,7 +344,7 @@ class QmeraAudioConference: UIViewController {
                 }
                 return
             }
-            let alert = UIAlertController(title: "Interaction with Call Center is in progress".localized(), message: "Are you sure you want to end the Call Center?".localized(), preferredStyle: .alert)
+            let alert = LibAlertController(title: "Interaction with Call Center is in progress".localized(), message: "Are you sure you want to end the Call Center?".localized(), preferredStyle: .alert)
             alert.addAction(UIAlertAction(title: "No".localized(), style: UIAlertAction.Style.default, handler: nil))
             alert.addAction(UIAlertAction(title: "Yes".localized(), style: UIAlertAction.Style.default, handler: {(_) in
                 self.dismiss(animated: false, completion: nil)

+ 3 - 3
appbuilder-ios/DigiXLite/DigiXLite/Source/View/Call/QmeraAudioViewController.swift

@@ -448,7 +448,7 @@ class QmeraAudioViewController: UIViewController {
         navigationController.navigationBar.isTranslucent = false
         navigationController.navigationBar.overrideUserInterfaceStyle = .dark
         navigationController.navigationBar.barStyle = .black
-        let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+        let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
         UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
         let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
         navigationController.navigationBar.titleTextAttributes = textAttributes
@@ -567,7 +567,7 @@ class QmeraAudioViewController: UIViewController {
             self.didEnd(sender: nil)
             return
         }
-        let alert = UIAlertController(title: "End Audio Call".localized(), message: "Are you sure you want to end audio call?".localized(), preferredStyle: .alert)
+        let alert = LibAlertController(title: "End Audio Call".localized(), message: "Are you sure you want to end audio call?".localized(), preferredStyle: .alert)
         alert.addAction(UIAlertAction(title: "No".localized(), style: UIAlertAction.Style.default, handler: nil))
         alert.addAction(UIAlertAction(title: "Yes".localized(), style: UIAlertAction.Style.default, handler: {(_) in
             DispatchQueue.main.async {
@@ -633,7 +633,7 @@ class QmeraAudioViewController: UIViewController {
                 }
                 return
             }
-            let alert = UIAlertController(title: "Interaction with Call Center is in progress".localized(), message: "Are you sure you want to end the Call Center?".localized(), preferredStyle: .alert)
+            let alert = LibAlertController(title: "Interaction with Call Center is in progress".localized(), message: "Are you sure you want to end the Call Center?".localized(), preferredStyle: .alert)
             alert.addAction(UIAlertAction(title: "No".localized(), style: UIAlertAction.Style.default, handler: nil))
             alert.addAction(UIAlertAction(title: "Yes".localized(), style: UIAlertAction.Style.default, handler: {(_) in
                 self.dismiss(animated: false, completion: nil)

+ 3 - 0
appbuilder-ios/DigiXLite/DigiXLite/Source/View/Call/QmeraCallContactViewController.swift

@@ -109,6 +109,9 @@ class QmeraCallContactViewController: UITableViewController {
                                         userType: cursor.string(forColumnIndex: 4) ?? "",
                                         official: cursor.string(forColumnIndex: 5) ?? "",
                                         ex_offmp: cursor.string(forColumnIndex: 6) ?? "")
+                        if (user.firstName + " " + user.lastName).trimmingCharacters(in: .whitespaces) == "USR\(user.pin)" {
+                            continue
+                        }
                         contacts.append(user)
                     }
                     cursor.close()

+ 4 - 4
appbuilder-ios/DigiXLite/DigiXLite/Source/View/Call/QmeraVideoViewController.swift

@@ -463,7 +463,7 @@ class QmeraVideoViewController: UIViewController {
     @objc func didTapDeclineCallButton(sender: AnyObject){
         let onGoingCC = UserDefaults.standard.string(forKey: "onGoingCC") ?? ""
         if !onGoingCC.isEmpty {
-            let alert = UIAlertController(title: "Interaction with Call Center is in progress".localized(), message: "Are you sure you want to end the Call Center?".localized(), preferredStyle: .alert)
+            let alert = LibAlertController(title: "Interaction with Call Center is in progress".localized(), message: "Are you sure you want to end the Call Center?".localized(), preferredStyle: .alert)
             alert.addAction(UIAlertAction(title: "No".localized(), style: UIAlertAction.Style.default, handler: nil))
             alert.addAction(UIAlertAction(title: "Yes".localized(), style: UIAlertAction.Style.default, handler: {(_) in
                 if(!self.wbRoomId.isEmpty){
@@ -477,7 +477,7 @@ class QmeraVideoViewController: UIViewController {
             }))
             self.present(alert, animated: true, completion: nil)
         } else {
-            let alert = UIAlertController(title: "End Video Call".localized(), message: "Are you sure you want to end video call?".localized(), preferredStyle: .alert)
+            let alert = LibAlertController(title: "End Video Call".localized(), message: "Are you sure you want to end video call?".localized(), preferredStyle: .alert)
             alert.addAction(UIAlertAction(title: "No".localized(), style: UIAlertAction.Style.default, handler: nil))
             alert.addAction(UIAlertAction(title: "Yes".localized(), style: UIAlertAction.Style.default, handler: {(_) in
                 if self.labelIncomingOutgoing.isDescendant(of: self.view) {
@@ -528,7 +528,7 @@ class QmeraVideoViewController: UIViewController {
             let goAudioCall = Nexilis.checkMicPermission()
             let goVideoCall = Nexilis.checkCameraPermission()
             if goVideoCall == 0 {
-                let alert = UIAlertController(title: "Attention!".localized(), message: !goAudioCall && goVideoCall == 0 ? "Please allow microphone & camera permission in your settings".localized() : !goAudioCall ? "Please allow microphone permission in your settings".localized() : "Please allow camera permission in your settings", preferredStyle: .alert)
+                let alert = LibAlertController(title: "Attention!".localized(), message: !goAudioCall && goVideoCall == 0 ? "Please allow microphone & camera permission in your settings".localized() : !goAudioCall ? "Please allow microphone permission in your settings".localized() : "Please allow camera permission in your settings", preferredStyle: .alert)
                 alert.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: {_ in
                     if let url = URL(string: UIApplication.openSettingsURLString), UIApplication.shared.canOpenURL(url) {
                         UIApplication.shared.open(url, options: [:], completionHandler: nil)
@@ -602,7 +602,7 @@ class QmeraVideoViewController: UIViewController {
         navigationController.navigationBar.isTranslucent = false
         navigationController.navigationBar.overrideUserInterfaceStyle = .dark
         navigationController.navigationBar.barStyle = .black
-        let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+        let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
         UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
         let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
         navigationController.navigationBar.titleTextAttributes = textAttributes

+ 1 - 1
appbuilder-ios/DigiXLite/DigiXLite/Source/View/Call/ScreenSharingViewController.swift

@@ -157,7 +157,7 @@ class ScreenSharingViewController: UIViewController {
     }
     
     @objc func didTapDeclineCallButton(sender: Any) {
-        let alert = UIAlertController(title: "End Screen Sharing Session".localized(), message: "Are you sure you want to end screen sharing session?".localized(), preferredStyle: .alert)
+        let alert = LibAlertController(title: "End Screen Sharing Session".localized(), message: "Are you sure you want to end screen sharing session?".localized(), preferredStyle: .alert)
         alert.addAction(UIAlertAction(title: "No".localized(), style: UIAlertAction.Style.default, handler: nil))
         alert.addAction(UIAlertAction(title: "Yes".localized(), style: UIAlertAction.Style.default, handler: {(_) in
             if self.fromContact == 0 {

+ 1 - 1
appbuilder-ios/DigiXLite/DigiXLite/Source/View/Call/VideoViewController.swift

@@ -487,7 +487,7 @@ extension VideoViewController: UITableViewDelegate, UITableViewDataSource {
 extension UIViewController{
     
     func showToast(message : String, seconds: Double){
-        let alert = UIAlertController(title: nil, message: message, preferredStyle: .alert)
+        let alert = LibAlertController(title: nil, message: message, preferredStyle: .alert)
         alert.view.backgroundColor = .black
         alert.view.alpha = 0.5
         alert.view.layer.cornerRadius = 15

+ 1 - 1
appbuilder-ios/DigiXLite/DigiXLite/Source/View/Call/WhiteboardViewController.swift

@@ -185,7 +185,7 @@ class WhiteboardViewController: UIViewController, WhiteboardDelegate {
     }
     
     @objc func didTapDeclineCallButton(sender: Any) {
-        let alert = UIAlertController(title: "End Whiteboard Session".localized(), message: "Are you sure you want to end whiteboard session?".localized(), preferredStyle: .alert)
+        let alert = LibAlertController(title: "End Whiteboard Session".localized(), message: "Are you sure you want to end whiteboard session?".localized(), preferredStyle: .alert)
         alert.addAction(UIAlertAction(title: "No".localized(), style: UIAlertAction.Style.default, handler: nil))
         alert.addAction(UIAlertAction(title: "Yes".localized(), style: UIAlertAction.Style.default, handler: {(_) in
             if self.fromContact == 0 {

+ 6 - 6
appbuilder-ios/DigiXLite/DigiXLite/Source/View/Chat/EditorGroup.swift

@@ -218,7 +218,7 @@ public class EditorGroup: UIViewController {
         navigationItem.rightBarButtonItem = nil
         let menu = UIMenu(title: "", children: [
             UIAction(title: "Delete Conversation".localized(), handler: {(_) in
-                let alert = UIAlertController(title: "", message: "Are you sure to delete all message in this conversation?".localized(), preferredStyle: .alert)
+                let alert = LibAlertController(title: "", message: "Are you sure to delete all message in this conversation?".localized(), preferredStyle: .alert)
                 alert.addAction(UIAlertAction(title: "Cancel".localized(), style: UIAlertAction.Style.default, handler: nil))
                 alert.addAction(UIAlertAction(title: "Delete".localized(), style: .destructive, handler: {(_) in
                     var l_pin = self.dataGroup["group_id"] as! String
@@ -950,7 +950,7 @@ public class EditorGroup: UIViewController {
             self.viewSticker.removeConstraints(self.viewSticker.constraints)
             self.viewSticker.removeFromSuperview()
         }
-        let alertController = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
+        let alertController = LibAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
         
         if let action = self.actionImageVideo(for: "image", title: "Choose Photo".localized()) {
             alertController.addAction(action)
@@ -985,7 +985,7 @@ public class EditorGroup: UIViewController {
             self.viewSticker.removeConstraints(self.viewSticker.constraints)
             self.viewSticker.removeFromSuperview()
         }
-        let alertController = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
+        let alertController = LibAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
         
         if let action = self.actionImageVideo(for: "imageCamera", title: "Take Photo".localized()) {
             alertController.addAction(action)
@@ -1196,7 +1196,7 @@ public class EditorGroup: UIViewController {
     }
     
     @objc func showChooserACKConfidential() {
-        let alertController = UIAlertController(title: "Message Mode".localized(), message: "Select".localized() + " " + "Message Mode".localized(), preferredStyle: .actionSheet)
+        let alertController = LibAlertController(title: "Message Mode".localized(), message: "Select".localized() + " " + "Message Mode".localized(), preferredStyle: .actionSheet)
         let imageAck = resizeImage(image: UIImage(named: "ack_icon", in: Bundle.resourceBundle(for: Nexilis.self), with: nil)!, targetSize: CGSize(width: 30, height: 30)).withRenderingMode(.alwaysOriginal)
         let ackAction = UIAlertAction(title: "Confirmation Message".localized(), style: .default, handler: { (UIAlertAction) in
             if !self.isAck {
@@ -2502,7 +2502,7 @@ extension EditorGroup: UIContextMenuInteractionDelegate {
             if countSelected == 0 {
                 return
             }
-            let alertController = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
+            let alertController = LibAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
             
             if let action = self.actionDelete(for: "me", title: "Delete".localized() + " \(countSelected) " + "For Me".localized(), dataMessages: dataMessages) {
                 alertController.addAction(action)
@@ -2903,7 +2903,7 @@ extension EditorGroup: UITableViewDelegate, UITableViewDataSource {
                 streamingNav.navigationBar.isTranslucent = false
                 streamingNav.navigationBar.overrideUserInterfaceStyle = .dark
                 streamingNav.navigationBar.barStyle = .black
-                let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+                let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
                 UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
                 let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
                 streamingNav.navigationBar.titleTextAttributes = textAttributes

+ 16 - 16
appbuilder-ios/DigiXLite/DigiXLite/Source/View/Chat/EditorPersonal.swift

@@ -295,7 +295,7 @@ public class EditorPersonal: UIViewController, ImageVideoPickerDelegate, UIGestu
             }),
             UIAction(title: "Delete Conversation".localized(), handler: {(_) in
                 if !self.isContactCenter {
-                    let alert = UIAlertController(title: "", message: "Are you sure to delete all message in this conversation?".localized(), preferredStyle: .alert)
+                    let alert = LibAlertController(title: "", message: "Are you sure to delete all message in this conversation?".localized(), preferredStyle: .alert)
                     alert.addAction(UIAlertAction(title: "Cancel".localized(), style: UIAlertAction.Style.default, handler: nil))
                     alert.addAction(UIAlertAction(title: "Delete".localized(), style: .destructive, handler: {(_) in
                         Database.shared.database?.inTransaction({ (fmdb, rollback) in
@@ -371,7 +371,7 @@ public class EditorPersonal: UIViewController, ImageVideoPickerDelegate, UIGestu
                 }),
                 UIAction(title: "Delete Conversation".localized(), handler: {(_) in
                     if !self.isContactCenter {
-                        let alert = UIAlertController(title: "", message: "Are you sure to delete all message in this conversation?".localized(), preferredStyle: .alert)
+                        let alert = LibAlertController(title: "", message: "Are you sure to delete all message in this conversation?".localized(), preferredStyle: .alert)
                         alert.addAction(UIAlertAction(title: "Cancel".localized(), style: UIAlertAction.Style.default, handler: nil))
                         alert.addAction(UIAlertAction(title: "Delete".localized(), style: .destructive, handler: {(_) in
                             Database.shared.database?.inTransaction({ (fmdb, rollback) in
@@ -445,7 +445,7 @@ public class EditorPersonal: UIViewController, ImageVideoPickerDelegate, UIGestu
                     }),
                     UIAction(title: "Delete Conversation".localized(), handler: {(_) in
                         if !self.isContactCenter {
-                            let alert = UIAlertController(title: "", message: "Are you sure to delete all message in this conversation?".localized(), preferredStyle: .alert)
+                            let alert = LibAlertController(title: "", message: "Are you sure to delete all message in this conversation?".localized(), preferredStyle: .alert)
                             alert.addAction(UIAlertAction(title: "Cancel".localized(), style: UIAlertAction.Style.default, handler: nil))
                             alert.addAction(UIAlertAction(title: "Delete".localized(), style: .destructive, handler: {(_) in
                                 Database.shared.database?.inTransaction({ (fmdb, rollback) in
@@ -484,7 +484,7 @@ public class EditorPersonal: UIViewController, ImageVideoPickerDelegate, UIGestu
                     }),
                     UIAction(title: "Delete Conversation".localized(), handler: {(_) in
                         if !self.isContactCenter {
-                            let alert = UIAlertController(title: "", message: "Are you sure to delete all message in this conversation?".localized(), preferredStyle: .alert)
+                            let alert = LibAlertController(title: "", message: "Are you sure to delete all message in this conversation?".localized(), preferredStyle: .alert)
                             alert.addAction(UIAlertAction(title: "Cancel".localized(), style: UIAlertAction.Style.default, handler: nil))
                             alert.addAction(UIAlertAction(title: "Delete".localized(), style: .destructive, handler: {(_) in
                                 Database.shared.database?.inTransaction({ (fmdb, rollback) in
@@ -1839,7 +1839,7 @@ public class EditorPersonal: UIViewController, ImageVideoPickerDelegate, UIGestu
         if isContactCenter && fPinContacCenter.isEmpty && isRequestContactCenter {
             return
         }
-        let alertController = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
+        let alertController = LibAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
         
         if let action = self.actionImageVideo(for: "image", title: "Choose Photo".localized()) {
             alertController.addAction(action)
@@ -1877,7 +1877,7 @@ public class EditorPersonal: UIViewController, ImageVideoPickerDelegate, UIGestu
         if isContactCenter && fPinContacCenter.isEmpty && isRequestContactCenter {
             return
         }
-        let alertController = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
+        let alertController = LibAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
         
         if let action = self.actionImageVideo(for: "imageCamera", title: "Take Photo".localized()) {
             alertController.addAction(action)
@@ -1952,7 +1952,7 @@ public class EditorPersonal: UIViewController, ImageVideoPickerDelegate, UIGestu
     }
     
     @objc func showChooserACKConfidential() {
-        let alertController = UIAlertController(title: "Message Mode".localized(), message: "Select".localized() + " " + "Message Mode".localized(), preferredStyle: .actionSheet)
+        let alertController = LibAlertController(title: "Message Mode".localized(), message: "Select".localized() + " " + "Message Mode".localized(), preferredStyle: .actionSheet)
         let imageConfidential = resizeImage(image: UIImage(named: "confidential_icon", in: Bundle.resourceBundle(for: Nexilis.self), with: nil)!, targetSize: CGSize(width: 30, height: 30)).withRenderingMode(.alwaysOriginal)
         let imageAck = resizeImage(image: UIImage(named: "ack_icon", in: Bundle.resourceBundle(for: Nexilis.self), with: nil)!, targetSize: CGSize(width: 30, height: 30)).withRenderingMode(.alwaysOriginal)
         let confidentialAction = UIAlertAction(title: "Confidential Message".localized(), style: .default, handler: { (UIAlertAction) in
@@ -2015,7 +2015,7 @@ public class EditorPersonal: UIViewController, ImageVideoPickerDelegate, UIGestu
         if sender.tag == 0 {
             let goAudioCall = Nexilis.checkMicPermission()
             if !goAudioCall{
-                let alert = UIAlertController(title: "Attention!".localized(), message: "Please allow microphone permission in your settings".localized(), preferredStyle: .alert)
+                let alert = LibAlertController(title: "Attention!".localized(), message: "Please allow microphone permission in your settings".localized(), preferredStyle: .alert)
                 alert.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: {_ in
                     if let url = URL(string: UIApplication.openSettingsURLString), UIApplication.shared.canOpenURL(url) {
                         UIApplication.shared.open(url, options: [:], completionHandler: nil)
@@ -2042,7 +2042,7 @@ public class EditorPersonal: UIViewController, ImageVideoPickerDelegate, UIGestu
             let goAudioCall = Nexilis.checkMicPermission()
             let goVideoCall = Nexilis.checkCameraPermission()
             if goVideoCall == 0 {
-                let alert = UIAlertController(title: "Attention!".localized(), message: !goAudioCall && goVideoCall == 0 ? "Please allow microphone & camera permission in your settings".localized() : !goAudioCall ? "Please allow microphone permission in your settings".localized() : "Please allow camera permission in your settings", preferredStyle: .alert)
+                let alert = LibAlertController(title: "Attention!".localized(), message: !goAudioCall && goVideoCall == 0 ? "Please allow microphone & camera permission in your settings".localized() : !goAudioCall ? "Please allow microphone permission in your settings".localized() : "Please allow camera permission in your settings", preferredStyle: .alert)
                 alert.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: {_ in
                     if let url = URL(string: UIApplication.openSettingsURLString), UIApplication.shared.canOpenURL(url) {
                         UIApplication.shared.open(url, options: [:], completionHandler: nil)
@@ -2090,7 +2090,7 @@ public class EditorPersonal: UIViewController, ImageVideoPickerDelegate, UIGestu
             NotificationCenter.default.post(name: NSNotification.Name(rawValue: "refreshView"), object: nil, userInfo: nil)
             self.dismiss(animated: true, completion: nil)
         } else if !complaintId.isEmpty {
-            let alert = UIAlertController(title: "Interaction with Call Center is in progress".localized(), message: "Are you sure you want to end the Call Center?".localized(), preferredStyle: .alert)
+            let alert = LibAlertController(title: "Interaction with Call Center is in progress".localized(), message: "Are you sure you want to end the Call Center?".localized(), preferredStyle: .alert)
             alert.addAction(UIAlertAction(title: "No".localized(), style: UIAlertAction.Style.default, handler: nil))
             alert.addAction(UIAlertAction(title: "Yes".localized(), style: UIAlertAction.Style.default, handler: {(_) in
                 self.endCallCenter()
@@ -2417,7 +2417,7 @@ public class EditorPersonal: UIViewController, ImageVideoPickerDelegate, UIGestu
                         let goAudioCall = Nexilis.checkMicPermission()
                         let goVideoCall = Nexilis.checkCameraPermission()
                         if goVideoCall == 0 {
-                            let alert = UIAlertController(title: "Attention!".localized(), message: !goAudioCall && goVideoCall == 0 && channel == 2 ? "Please allow microphone & camera permission in your settings".localized() : !goAudioCall ? "Please allow microphone permission in your settings".localized() : "Please allow camera permission in your settings", preferredStyle: .alert)
+                            let alert = LibAlertController(title: "Attention!".localized(), message: !goAudioCall && goVideoCall == 0 && channel == 2 ? "Please allow microphone & camera permission in your settings".localized() : !goAudioCall ? "Please allow microphone permission in your settings".localized() : "Please allow camera permission in your settings", preferredStyle: .alert)
                             alert.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: {_ in
                                 if let url = URL(string: UIApplication.openSettingsURLString), UIApplication.shared.canOpenURL(url) {
                                     UIApplication.shared.open(url, options: [:], completionHandler: nil)
@@ -2431,7 +2431,7 @@ public class EditorPersonal: UIViewController, ImageVideoPickerDelegate, UIGestu
                     } else if channel == 1 {
                         let goAudioCall = Nexilis.checkMicPermission()
                         if !goAudioCall{
-                            let alert = UIAlertController(title: "Attention!".localized(), message: "Please allow microphone permission in your settings".localized(), preferredStyle: .alert)
+                            let alert = LibAlertController(title: "Attention!".localized(), message: "Please allow microphone permission in your settings".localized(), preferredStyle: .alert)
                             alert.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: {_ in
                                 if let url = URL(string: UIApplication.openSettingsURLString), UIApplication.shared.canOpenURL(url) {
                                     UIApplication.shared.open(url, options: [:], completionHandler: nil)
@@ -2505,7 +2505,7 @@ public class EditorPersonal: UIViewController, ImageVideoPickerDelegate, UIGestu
                 let goAudioCall = Nexilis.checkMicPermission()
                 let goVideoCall = Nexilis.checkCameraPermission()
                 if goVideoCall == 0 {
-                    let alert = UIAlertController(title: "Attention!".localized(), message: !goAudioCall && goVideoCall == 0 && channelContactCenter == "2" ? "Please allow microphone & camera permission in your settings".localized() : !goAudioCall ? "Please allow microphone permission in your settings".localized() : "Please allow camera permission in your settings", preferredStyle: .alert)
+                    let alert = LibAlertController(title: "Attention!".localized(), message: !goAudioCall && goVideoCall == 0 && channelContactCenter == "2" ? "Please allow microphone & camera permission in your settings".localized() : !goAudioCall ? "Please allow microphone permission in your settings".localized() : "Please allow camera permission in your settings", preferredStyle: .alert)
                     alert.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: {_ in
                         if let url = URL(string: UIApplication.openSettingsURLString), UIApplication.shared.canOpenURL(url) {
                             UIApplication.shared.open(url, options: [:], completionHandler: nil)
@@ -2519,7 +2519,7 @@ public class EditorPersonal: UIViewController, ImageVideoPickerDelegate, UIGestu
             } else if channelContactCenter == "1" {
                 let goAudioCall = Nexilis.checkMicPermission()
                 if !goAudioCall{
-                    let alert = UIAlertController(title: "Attention!".localized(), message: "Please allow microphone permission in your settings".localized(), preferredStyle: .alert)
+                    let alert = LibAlertController(title: "Attention!".localized(), message: "Please allow microphone permission in your settings".localized(), preferredStyle: .alert)
                     alert.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: {_ in
                         if let url = URL(string: UIApplication.openSettingsURLString), UIApplication.shared.canOpenURL(url) {
                             UIApplication.shared.open(url, options: [:], completionHandler: nil)
@@ -3663,7 +3663,7 @@ extension EditorPersonal: UIContextMenuInteractionDelegate {
             if countSelected == 0 {
                 return
             }
-            let alertController = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
+            let alertController = LibAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
 
             if let action = self.actionDelete(for: "me", title: "Delete".localized() + " \(countSelected) " + "For Me".localized(), dataMessages: dataMessages) {
                 alertController.addAction(action)
@@ -3996,7 +3996,7 @@ extension EditorPersonal: UITableViewDelegate, UITableViewDataSource {
                 streamingNav.navigationBar.isTranslucent = false
                 streamingNav.navigationBar.overrideUserInterfaceStyle = .dark
                 streamingNav.navigationBar.barStyle = .black
-                let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+                let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
                 UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
                 let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
                 streamingNav.navigationBar.titleTextAttributes = textAttributes

+ 1 - 1
appbuilder-ios/DigiXLite/DigiXLite/Source/View/Chat/EditorStarMessages.swift

@@ -1021,7 +1021,7 @@ public class EditorStarMessages: UIViewController, UITableViewDataSource, UITabl
             navigationController.navigationBar.isTranslucent = false
             navigationController.navigationBar.overrideUserInterfaceStyle = .dark
             navigationController.navigationBar.barStyle = .black
-            let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+            let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
             UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
             let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
             navigationController.navigationBar.titleTextAttributes = textAttributes

+ 1 - 1
appbuilder-ios/DigiXLite/DigiXLite/Source/View/Chat/PreviewAttachmentImageVideo.swift

@@ -124,7 +124,7 @@ class PreviewAttachmentImageVideo: UIViewController, UIScrollViewDelegate, UITex
     }
     
     @objc func showChooserACKConfidential() {
-        let alertController = UIAlertController(title: "Message Mode".localized(), message: "Select".localized() + " " + "Message Mode".localized(), preferredStyle: .actionSheet)
+        let alertController = LibAlertController(title: "Message Mode".localized(), message: "Select".localized() + " " + "Message Mode".localized(), preferredStyle: .actionSheet)
         if !self.isGroup {
             let imageConfidential = resizeImage(image: UIImage(named: "confidential_icon", in: Bundle.resourceBundle(for: Nexilis.self), with: nil)!, targetSize: CGSize(width: 30, height: 30)).withRenderingMode(.alwaysOriginal)
             let confidentialAction = UIAlertAction(title: "Confidential Message".localized(), style: .default, handler: { (UIAlertAction) in

+ 4 - 4
appbuilder-ios/DigiXLite/DigiXLite/Source/View/Control/BroadcastViewController.swift

@@ -113,7 +113,7 @@ class BroadcastViewController: UITableViewController, UITextFieldDelegate, UITex
         navigationController?.navigationBar.overrideUserInterfaceStyle = .dark
         navigationController?.navigationBar.barStyle = .black
         navigationController?.view.backgroundColor = .mainColor
-        let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+        let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
         UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
         let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
         navigationController?.navigationBar.titleTextAttributes = textAttributes
@@ -341,14 +341,14 @@ class BroadcastViewController: UITableViewController, UITextFieldDelegate, UITex
         type = "\(broadcastTypeLabel.tag + 1)"
         mode = "\(broadcastModeLabel.tag + 1)"
         if(messageTitle.trimmingCharacters(in: .whitespaces).isEmpty || message.trimmingCharacters(in: .whitespaces).isEmpty){
-            let alert = UIAlertController(title: "", message: "Title and message must not be empty".localized(), preferredStyle: .alert)
+            let alert = LibAlertController(title: "", message: "Title and message must not be empty".localized(), preferredStyle: .alert)
             alert.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: nil))
             self.present(alert, animated: true, completion: nil)
             return
         }
         if(dest == BroadcastViewController.DESTINATION_GROUP){
             if(groups.isEmpty){
-                let alert = UIAlertController(title: "", message: "Please select at least one contact".localized(), preferredStyle: .alert)
+                let alert = LibAlertController(title: "", message: "Please select at least one contact".localized(), preferredStyle: .alert)
                 alert.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: nil))
                 self.present(alert, animated: true, completion: nil)
                 return
@@ -362,7 +362,7 @@ class BroadcastViewController: UITableViewController, UITextFieldDelegate, UITex
         }
         else if(dest == BroadcastViewController.DESTINATION_SPESIFIC){
             if(contacts.isEmpty){
-                let alert = UIAlertController(title: "", message: "Please select at least one contact".localized(), preferredStyle: .alert)
+                let alert = LibAlertController(title: "", message: "Please select at least one contact".localized(), preferredStyle: .alert)
                 alert.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: nil))
                 self.present(alert, animated: true, completion: nil)
                 return

+ 1 - 1
appbuilder-ios/DigiXLite/DigiXLite/Source/View/Control/ChangeNameTableViewController.swift

@@ -16,7 +16,7 @@ class ChangeNameTableViewController: UITableViewController {
     var data: String = ""
     
     override func viewWillAppear(_ animated: Bool) {
-        let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.black]
+        let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.black, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
         UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
     }
     

+ 1 - 1
appbuilder-ios/DigiXLite/DigiXLite/Source/View/Control/ContactChatViewController.swift

@@ -695,7 +695,7 @@ extension ContactChatViewController {
             groupMap.removeValue(forKey: group.id)
         }
         if group.groupType == "NOTJOINED" {
-            let alert = UIAlertController(title: "Do you want to join this group?".localized(), message: "Groups : \(group.name)\nMembers: \(group.by)".localized(), preferredStyle: .alert)
+            let alert = LibAlertController(title: "Do you want to join this group?".localized(), message: "Groups : \(group.name)\nMembers: \(group.by)".localized(), preferredStyle: .alert)
             alert.addAction(UIAlertAction(title: "Cancel".localized(), style: .cancel, handler: nil))
             alert.addAction(UIAlertAction(title: "Join".localized(), style: .default, handler: {(_) in
                 self.joinOpenGroup(groupId: group.id, completion: { result in

+ 13 - 13
appbuilder-ios/DigiXLite/DigiXLite/Source/View/Control/GroupDetailViewController.swift

@@ -148,7 +148,7 @@ class GroupDetailViewController: UITableViewController {
     }
     
     func createSubGroup() {
-        self.alert2 = UIAlertController(title: "Create Sub Group".localized(), message: nil, preferredStyle: .alert)
+        self.alert2 = LibAlertController(title: "Create Sub Group".localized(), message: nil, preferredStyle: .alert)
         self.textFields.removeAll()
         self.alert2?.addTextField{ (texfield) in
             texfield.placeholder = "Group's Name".localized()
@@ -200,7 +200,7 @@ class GroupDetailViewController: UITableViewController {
             self.reload()
         }
         let navController = UINavigationController(rootViewController: controller)
-        let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+        let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
         UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
         let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
         navController.navigationBar.titleTextAttributes = textAttributes
@@ -280,7 +280,7 @@ class GroupDetailViewController: UITableViewController {
         switch sections[indexPath.section] {
         case .profile:
             if isAdmin {
-                let alert = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
+                let alert = LibAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
                 alert.addAction(UIAlertAction(title: "Take Photo".localized(), style: .default, handler: { action in
                     self.imageVideoPicker.present(source: .imageCamera)
                 }))
@@ -301,7 +301,7 @@ class GroupDetailViewController: UITableViewController {
                     self.reload()
                 }
                 let navController = UINavigationController(rootViewController: controller)
-                let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+                let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
                 UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
                 let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
                 navController.navigationBar.titleTextAttributes = textAttributes
@@ -345,7 +345,7 @@ class GroupDetailViewController: UITableViewController {
                     self.reload()
                 }
                 let navController = UINavigationController(rootViewController: controller)
-                let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+                let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
                 UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
                 let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
                 navController.navigationBar.titleTextAttributes = textAttributes
@@ -370,7 +370,7 @@ class GroupDetailViewController: UITableViewController {
                     }
                     return
                 }
-                let alert = UIAlertController(title: nil, message: topic.title, preferredStyle: .actionSheet)
+                let alert = LibAlertController(title: nil, message: topic.title, preferredStyle: .actionSheet)
                 alert.addAction(UIAlertAction(title: "Enter Topic", style: .default, handler: { action in
                     if let controller = self.previousViewController as? EditorGroup {
                         if controller.dataTopic["chat_id"] as! String == topic.chatId {
@@ -389,7 +389,7 @@ class GroupDetailViewController: UITableViewController {
                     }
                 }))
                 alert.addAction(UIAlertAction(title: "Rename Topic", style: .default, handler: { action in
-                    self.alert2 = UIAlertController(title: "Change Topic's Name".localized(), message: nil, preferredStyle: .alert)
+                    self.alert2 = LibAlertController(title: "Change Topic's Name".localized(), message: nil, preferredStyle: .alert)
                     self.textFields.removeAll()
                     self.alert2?.addTextField{ (texfield) in
                         texfield.text = topic.title
@@ -435,7 +435,7 @@ class GroupDetailViewController: UITableViewController {
                 }))
                 alert.addAction(UIAlertAction(title: "Remove Topic".localized(), style: .destructive, handler: { action in
                     let message = "Remove \(topic.title) from the \"\(g.name)\" group?"
-                    let notif = UIAlertController(title: nil, message: message, preferredStyle: .actionSheet)
+                    let notif = LibAlertController(title: nil, message: message, preferredStyle: .actionSheet)
                     notif.addAction(UIAlertAction(title: "Remove".localized(), style: .destructive, handler: { notifAction in
                         self.removeTopic(chatId: topic.chatId) { result in
                             if result, let index = g.topics.firstIndex(of: topic) {
@@ -514,7 +514,7 @@ class GroupDetailViewController: UITableViewController {
                     self.reload()
                 }
                 let navController = UINavigationController(rootViewController: controller)
-                let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+                let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
                 UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
                 let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
                 navController.navigationBar.titleTextAttributes = textAttributes
@@ -534,7 +534,7 @@ class GroupDetailViewController: UITableViewController {
                         self.navigationController?.show(controller, sender: nil)
                         return
                     }
-                    let alert = UIAlertController(title: nil, message: "\(member.firstName) \(member.lastName)", preferredStyle: .actionSheet)
+                    let alert = LibAlertController(title: nil, message: "\(member.firstName) \(member.lastName)", preferredStyle: .actionSheet)
                     alert.addAction(UIAlertAction(title: "Info".localized(), style: .default, handler: { action in
                         let data = User.getDataCanNil(pin: member.pin)
                         let controller = AppStoryBoard.Palio.instance.instantiateViewController(withIdentifier: "profileView") as! ProfileViewController
@@ -550,7 +550,7 @@ class GroupDetailViewController: UITableViewController {
                     }))
                     alert.addAction(UIAlertAction(title: member.position == "0" ? "Make Group Admin".localized() : "Remove Group Admin".localized(), style: member.position == "0" ? .default : .destructive, handler: { action in
                         let message = "\(member.position == "0" ? "Make" : "Remove") \(member.fullName) from the \"\(g.name)\" group Admin?"
-                        let notif = UIAlertController(title: nil, message: message, preferredStyle: .actionSheet)
+                        let notif = LibAlertController(title: nil, message: message, preferredStyle: .actionSheet)
                         notif.addAction(UIAlertAction(title: member.position == "0" ? "Make".localized() : "Remove".localized(), style: member.position == "0" ? .default : .destructive, handler: { notifAction in
                             self.changePosition(pin: member.pin, isAdmin: member.position == "0") { result in
                                 if result {
@@ -570,7 +570,7 @@ class GroupDetailViewController: UITableViewController {
                     }))
                     alert.addAction(UIAlertAction(title: "Remove From Group".localized(), style: .destructive, handler: { action in
                         let message = "Remove \(member.fullName) from the \"\(g.name)\" group?"
-                        let notif = UIAlertController(title: nil, message: message, preferredStyle: .actionSheet)
+                        let notif = LibAlertController(title: nil, message: message, preferredStyle: .actionSheet)
                         notif.addAction(UIAlertAction(title: "Remove".localized(), style: .destructive, handler: { notifAction in
                             self.exitGroup(pin: member.pin) { result in
                                 if result, let index = g.members.firstIndex(of: member) {
@@ -631,7 +631,7 @@ class GroupDetailViewController: UITableViewController {
                     message = "Are you sure want to exit the group?".localized()
 //                    message = "Are you sure want to exit the \"\(g.name)\" group?".localized()
                 }
-                let alert = UIAlertController(title: nil, message: message, preferredStyle: .actionSheet)
+                let alert = LibAlertController(title: nil, message: message, preferredStyle: .actionSheet)
                 alert.addAction(UIAlertAction(title: isDeleted ? "Delete Group".localized() : "Exit Group".localized(), style: .destructive, handler: { action in
                     self.exitGroup(pin: isDeleted ? "ALL": UserDefaults.standard.string(forKey: "me")!) { result in
                         if result {

+ 2 - 2
appbuilder-ios/DigiXLite/DigiXLite/Source/View/Control/ImageVideoPicker.swift

@@ -33,7 +33,7 @@ open class ImageVideoPicker: NSObject {
             isBlackCancelButton = UIBarButtonItem.appearance().titleTextAttributes(for: .normal)?.values.first as! NSObject == UIColor.black
         }
         if !isBlackCancelButton {
-            let cancelButtonAttributes = [NSAttributedString.Key.foregroundColor: UIColor.black]
+            let cancelButtonAttributes = [NSAttributedString.Key.foregroundColor: UIColor.black, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
             UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes , for: .normal)
         }
     }
@@ -73,7 +73,7 @@ open class ImageVideoPicker: NSObject {
     
     private func pickerController(_ controller: UIImagePickerController, didSelect imagevideo: Any?) {
         if !isBlackCancelButton {
-            let cancelButtonAttributes = [NSAttributedString.Key.foregroundColor: UIColor.white]
+            let cancelButtonAttributes = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
             UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes , for: .normal)
         }
         controller.dismiss(animated: false, completion: nil)

+ 7 - 8
appbuilder-ios/DigiXLite/DigiXLite/Source/View/Control/ProfileViewController.swift

@@ -83,7 +83,7 @@ public class ProfileViewController: UITableViewController {
                     if let me = UserDefaults.standard.string(forKey: "me"), me == self.data || self.flag == Flag.me {
                         Database.shared.database?.inTransaction({ fmdb, rollback in
                             let idMe = UserDefaults.standard.string(forKey: "me")!
-                            if let cursorCount = Database.shared.getRecords(fmdb: fmdb, query: "select COUNT(*) from BUDDY where f_pin <> '\(idMe)' "), cursorCount.next() {
+                            if let cursorCount = Database.shared.getRecords(fmdb: fmdb, query: "select COUNT(*) from BUDDY where f_pin <> '\(idMe)' and first_name NOT LIKE 'USR%' "), cursorCount.next() {
                                 let count = cursorCount.string(forColumnIndex: 0)!
                                 self.countFriend.text = count + " " + "Friends".localized()
                                 self.countFriend.font = .systemFont(ofSize: 12)
@@ -135,7 +135,7 @@ public class ProfileViewController: UITableViewController {
             r = User.getData(pin: self.data)
             Database.shared.database?.inTransaction({ fmdb, rollback in
                 let idMe = UserDefaults.standard.string(forKey: "me")!
-                if let cursorCount = Database.shared.getRecords(fmdb: fmdb, query: "select COUNT(*) from BUDDY where f_pin <> '\(idMe)' "), cursorCount.next() {
+                if let cursorCount = Database.shared.getRecords(fmdb: fmdb, query: "select COUNT(*) from BUDDY where f_pin <> '\(idMe)' and first_name NOT LIKE 'USR%' "), cursorCount.next() {
                     DispatchQueue.main.async {
                         self.countFriend.text = cursorCount.string(forColumnIndex: 0) ?? "" + " " + "Friends".localized()
                     }
@@ -164,7 +164,7 @@ public class ProfileViewController: UITableViewController {
             if let me = UserDefaults.standard.string(forKey: "me"), me == self.data || self.flag == Flag.me {
                 Database.shared.database?.inTransaction({ fmdb, rollback in
                     let idMe = UserDefaults.standard.string(forKey: "me")!
-                    if let cursorCount = Database.shared.getRecords(fmdb: fmdb, query: "select COUNT(*) from BUDDY where f_pin <> '\(idMe)' "), cursorCount.next() {
+                    if let cursorCount = Database.shared.getRecords(fmdb: fmdb, query: "select COUNT(*) from BUDDY where f_pin <> '\(idMe)' and first_name NOT LIKE 'USR%' "), cursorCount.next() {
                         let count = cursorCount.string(forColumnIndex: 0)!
                         self.countFriend.text = count + " " + "Friends".localized()
                         cursorCount.close()
@@ -446,9 +446,9 @@ public class ProfileViewController: UITableViewController {
     func didTapProfile() {
         if let userImage = user?.thumb {
             if !userImage.isEmpty {
-                let firstAlert = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
+                let firstAlert = LibAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
                 firstAlert.addAction(UIAlertAction(title: "Change Profile Picture".localized(), style: .default, handler: { action in
-                    let alert = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
+                    let alert = LibAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
                     alert.addAction(UIAlertAction(title: "Take Photo".localized(), style: .default, handler: { action in
                         self.imageVideoPicker.present(source: .imageCamera)
                     }))
@@ -486,7 +486,7 @@ public class ProfileViewController: UITableViewController {
                 firstAlert.addAction(UIAlertAction(title: "Cancel".localized(), style: .cancel, handler: nil))
                 self.navigationController?.present(firstAlert, animated: true)
             } else {
-                let alert = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
+                let alert = LibAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
                 alert.addAction(UIAlertAction(title: "Take Photo".localized(), style: .default, handler: { action in
                     self.imageVideoPicker.present(source: .imageCamera)
                 }))
@@ -538,7 +538,7 @@ public class ProfileViewController: UITableViewController {
             message.isEnabled = false
         }
         Nexilis.shared.stateUnfriend = self.data
-        let alert = UIAlertController(title: "", message: "Are you sure to unfriend".localized() + " \(self.user!.fullName)", preferredStyle: .alert)
+        let alert = LibAlertController(title: "", message: "Are you sure to unfriend".localized() + " \(self.user!.fullName)", preferredStyle: .alert)
         alert.addAction(UIAlertAction(title: "Cancel".localized(), style: UIAlertAction.Style.default, handler: {(_) in
             if self.call != nil {
                 self.call.isEnabled = true
@@ -633,7 +633,6 @@ public class ProfileViewController: UITableViewController {
     @objc func friendsTapped() {
         if let me = UserDefaults.standard.string(forKey: "me"), me == data || flag == Flag.me {
             let controller = QmeraCallContactViewController()
-            controller.modalPresentationStyle = .custom
             controller.isInviteCC = true
             controller.listFriends = true
             show(controller, sender: nil)

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

@@ -106,7 +106,7 @@ public class SetInternalCSAccount: UITableViewController {
     }
     
     private func setInternalCS(user: User) {
-        let alert = UIAlertController(title: "", message: "Are you sure want to set".localized() + " \(user.fullName) " + (isSetCS ? "become CS Account?".localized() : "become Internal Account?".localized()), preferredStyle: .alert)
+        let alert = LibAlertController(title: "", message: "Are you sure want to set".localized() + " \(user.fullName) " + (isSetCS ? "become CS Account?".localized() : "become Internal Account?".localized()), preferredStyle: .alert)
         alert.addAction(UIAlertAction(title: "No".localized(), style: .default, handler: nil))
         alert.addAction(UIAlertAction(title: "Yes".localized(), style: .default, handler: {(_) in
             Nexilis.showLoader()
@@ -150,7 +150,7 @@ public class SetInternalCSAccount: UITableViewController {
     }
     
     private func unsetInternalCS(user: User) {
-        let alert = UIAlertController(title: "", message: "Are you sure want to unset".localized() + " \(user.fullName) " + (isSetCS ? "from CS Account?".localized() : "from Internal Account?".localized()), preferredStyle: .alert)
+        let alert = LibAlertController(title: "", message: "Are you sure want to unset".localized() + " \(user.fullName) " + (isSetCS ? "from CS Account?".localized() : "from Internal Account?".localized()), preferredStyle: .alert)
         alert.addAction(UIAlertAction(title: "No".localized(), style: UIAlertAction.Style.default, handler: nil))
         alert.addAction(UIAlertAction(title: "Yes".localized(), style: .destructive, handler: {(_) in
             Nexilis.showLoader()

+ 2 - 2
appbuilder-ios/DigiXLite/DigiXLite/Source/View/Control/SetOfficerBNI.swift

@@ -266,7 +266,7 @@ class SetOfficerBNI: UIViewController {
         pickerView.centerXAnchor.constraint(equalTo: vc.view.centerXAnchor).isActive = true
         pickerView.centerYAnchor.constraint(equalTo: vc.view.centerYAnchor).isActive = true
         
-        let alert = UIAlertController(title: titleChooser, message: "", preferredStyle: .actionSheet)
+        let alert = LibAlertController(title: titleChooser, message: "", preferredStyle: .actionSheet)
         
         alert.setValue(vc, forKey: "contentViewController")
         alert.addAction(UIAlertAction(title: "Cancel".localized(), style: .cancel, handler: { (UIAlertAction) in
@@ -340,7 +340,7 @@ class SetOfficerBNI: UIViewController {
     }
     
     @objc func setOfficer() {
-        let alert = UIAlertController(title: "Set Officer Account".localized(), message: "Are you sure want to add \(name) to Officer Account category \(self.chosenData[self.chosenData.count - 1].service_name)?", preferredStyle: .alert)
+        let alert = LibAlertController(title: "Set Officer Account".localized(), message: "Are you sure want to add \(name) to Officer Account category \(self.chosenData[self.chosenData.count - 1].service_name)?", preferredStyle: .alert)
         alert.addAction(UIAlertAction(title: "Yes".localized(), style: .default, handler: { (action) -> Void in
             if !CheckConnection.isConnectedToNetwork()  || API.nGetCLXConnState() == 0 {
                 let imageView = UIImageView(image: UIImage(systemName: "xmark.circle.fill"))

+ 10 - 10
appbuilder-ios/DigiXLite/DigiXLite/Source/View/Control/SettingTableViewController.swift

@@ -375,7 +375,7 @@ public class SettingTableViewController: UITableViewController, UIGestureRecogni
                     banner.show()
                     return
                 }
-                let alertController = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
+                let alertController = LibAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
                 if(item.title.contains("Change")){
                     if let action = self.actionChangePassword(for: "admin", title: "Change Admin Password".localized()) {
                         alertController.addAction(action)
@@ -414,7 +414,7 @@ public class SettingTableViewController: UITableViewController, UIGestureRecogni
             pickerView.centerXAnchor.constraint(equalTo: vc.view.centerXAnchor).isActive = true
             pickerView.centerYAnchor.constraint(equalTo: vc.view.centerYAnchor).isActive = true
             
-            let alert = UIAlertController(title: "Select Language".localized(), message: "", preferredStyle: .actionSheet)
+            let alert = LibAlertController(title: "Select Language".localized(), message: "", preferredStyle: .actionSheet)
             
             alert.setValue(vc, forKey: "contentViewController")
             alert.addAction(UIAlertAction(title: "Cancel".localized(), style: .cancel, handler: { (UIAlertAction) in
@@ -445,7 +445,7 @@ public class SettingTableViewController: UITableViewController, UIGestureRecogni
             }
             navigationController?.show(controller, sender: nil)
         } else if item.title == "Sign-Out".localized() {
-            let alert = UIAlertController(title: "Sign-Out".localized(), message: "Are you sure want to logout?".localized(), preferredStyle: .alert)
+            let alert = LibAlertController(title: "Sign-Out".localized(), message: "Are you sure want to logout?".localized(), preferredStyle: .alert)
             alert.addAction(UIAlertAction(title: "Cancel".localized(), style: UIAlertAction.Style.default, handler: nil))
             alert.addAction(UIAlertAction(title: "Yes".localized(), style: .destructive, handler: {(_) in
                 if !CheckConnection.isConnectedToNetwork()  || API.nGetCLXConnState() == 0 {
@@ -528,7 +528,7 @@ public class SettingTableViewController: UITableViewController, UIGestureRecogni
             }
             
             if permissionCheck == 0 {
-                let alert = UIAlertController(title: "Attention!".localized(), message: "Please allow camera permission in your settings".localized(), preferredStyle: .alert)
+                let alert = LibAlertController(title: "Attention!".localized(), message: "Please allow camera permission in your settings".localized(), preferredStyle: .alert)
                 alert.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: { _ in
                     if let url = URL(string: UIApplication.openSettingsURLString), UIApplication.shared.canOpenURL(url) {
                         UIApplication.shared.open(url, options: [:], completionHandler: nil)
@@ -546,7 +546,7 @@ public class SettingTableViewController: UITableViewController, UIGestureRecogni
             navigationController.navigationBar.tintColor = .white
             navigationController.navigationBar.barTintColor = .mainColor
             navigationController.navigationBar.isTranslucent = false
-            let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+            let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
             UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
             let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
             navigationController.navigationBar.titleTextAttributes = textAttributes
@@ -566,7 +566,7 @@ public class SettingTableViewController: UITableViewController, UIGestureRecogni
             navigationController.navigationBar.isTranslucent = false
             navigationController.navigationBar.overrideUserInterfaceStyle = .dark
             navigationController.navigationBar.barStyle = .black
-            let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+            let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
             UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
             let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
             navigationController.navigationBar.titleTextAttributes = textAttributes
@@ -587,9 +587,9 @@ public class SettingTableViewController: UITableViewController, UIGestureRecogni
     
     private func actionLogin(for type: String, title: String) -> UIAlertAction? {
         return UIAlertAction(title: title, style: .default) { _ in
-            self.alert = UIAlertController(title:"Access Admin Features".localized(), message: nil, preferredStyle: .alert)
+            self.alert = LibAlertController(title:"Access Admin Features".localized(), message: nil, preferredStyle: .alert)
             if type == "internal" {
-                self.alert = UIAlertController(title: "Access Internal Features".localized(), message: nil, preferredStyle: .alert)
+                self.alert = LibAlertController(title: "Access Internal Features".localized(), message: nil, preferredStyle: .alert)
             }
             self.textFields.removeAll()
             self.alert?.addTextField{ (texfield) in
@@ -666,9 +666,9 @@ public class SettingTableViewController: UITableViewController, UIGestureRecogni
     
     private func actionChangePassword(for type: String, title: String) -> UIAlertAction? {
         return UIAlertAction(title: title, style: .default) { _ in
-            self.alert = UIAlertController(title: "Change Admin Password".localized(), message: nil, preferredStyle: .alert)
+            self.alert = LibAlertController(title: "Change Admin Password".localized(), message: nil, preferredStyle: .alert)
             if type == "internal" {
-                self.alert = UIAlertController(title: "Change Internal Password".localized(), message: nil, preferredStyle: .alert)
+                self.alert = LibAlertController(title: "Change Internal Password".localized(), message: nil, preferredStyle: .alert)
             }
             self.textFields.removeAll()
             self.alert?.addTextField{ (texfield) in

+ 2 - 2
appbuilder-ios/DigiXLite/DigiXLite/Source/View/Streaming/CreateSeminarViewController.swift

@@ -168,7 +168,7 @@ public class CreateSeminarViewController: UITableViewController {
         } else {
             let goAudioCall = Nexilis.checkMicPermission()
             if !goAudioCall {
-                let alert = UIAlertController(title: "Attention!".localized(), message: "Please allow microphone permission in your settings".localized(), preferredStyle: .alert)
+                let alert = LibAlertController(title: "Attention!".localized(), message: "Please allow microphone permission in your settings".localized(), preferredStyle: .alert)
                 alert.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: { _ in
                     if let url = URL(string: UIApplication.openSettingsURLString), UIApplication.shared.canOpenURL(url) {
                         UIApplication.shared.open(url, options: [:], completionHandler: nil)
@@ -201,7 +201,7 @@ public class CreateSeminarViewController: UITableViewController {
             }
             
             if permissionCheck == 0 {
-                let alert = UIAlertController(title: "Attention!".localized(), message: "Please allow camera permission in your settings".localized(), preferredStyle: .alert)
+                let alert = LibAlertController(title: "Attention!".localized(), message: "Please allow camera permission in your settings".localized(), preferredStyle: .alert)
                 alert.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: { _ in
                     if let url = URL(string: UIApplication.openSettingsURLString), UIApplication.shared.canOpenURL(url) {
                         UIApplication.shared.open(url, options: [:], completionHandler: nil)

+ 2 - 2
appbuilder-ios/DigiXLite/DigiXLite/Source/View/Streaming/QmeraCreateStreamingViewController.swift

@@ -186,7 +186,7 @@ public class QmeraCreateStreamingViewController: UITableViewController {
         } else {
             let goAudioCall = Nexilis.checkMicPermission()
             if !goAudioCall {
-                let alert = UIAlertController(title: "Attention!".localized(), message: "Please allow microphone permission in your settings".localized(), preferredStyle: .alert)
+                let alert = LibAlertController(title: "Attention!".localized(), message: "Please allow microphone permission in your settings".localized(), preferredStyle: .alert)
                 alert.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: { _ in
                     if let url = URL(string: UIApplication.openSettingsURLString), UIApplication.shared.canOpenURL(url) {
                         UIApplication.shared.open(url, options: [:], completionHandler: nil)
@@ -219,7 +219,7 @@ public class QmeraCreateStreamingViewController: UITableViewController {
             }
             
             if permissionCheck == 0 {
-                let alert = UIAlertController(title: "Attention!".localized(), message: "Please allow camera permission in your settings".localized(), preferredStyle: .alert)
+                let alert = LibAlertController(title: "Attention!".localized(), message: "Please allow camera permission in your settings".localized(), preferredStyle: .alert)
                 alert.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: { _ in
                     if let url = URL(string: UIApplication.openSettingsURLString), UIApplication.shared.canOpenURL(url) {
                         UIApplication.shared.open(url, options: [:], completionHandler: nil)

+ 2 - 2
appbuilder-ios/DigiXLite/DigiXLite/Source/View/Streaming/QmeraStreamingViewController.swift

@@ -279,9 +279,9 @@ class QmeraStreamingViewController: UIViewController {
     
     @objc func close(sender: Any?) {
         hideKeyboard()
-        var alert = UIAlertController(title: "", message: "Are you sure you want to end Live Streaming?".localized(), preferredStyle: .alert)
+        var alert = LibAlertController(title: "", message: "Are you sure you want to end Live Streaming?".localized(), preferredStyle: .alert)
         if !isLive {
-            alert = UIAlertController(title: "", message: "Are you sure you want to leave Live Streaming?".localized(), preferredStyle: .alert)
+            alert = LibAlertController(title: "", message: "Are you sure you want to leave Live Streaming?".localized(), preferredStyle: .alert)
         }
         alert.addAction(UIAlertAction(title: "No".localized(), style: UIAlertAction.Style.default, handler: nil))
         alert.addAction(UIAlertAction(title: "Yes".localized(), style: UIAlertAction.Style.default, handler: {[weak self] _ in

+ 1 - 1
appbuilder-ios/DigiXLite/DigiXLite/Source/View/Streaming/SeminarListViewController.swift

@@ -98,7 +98,7 @@ class SeminarListViewController: UIViewController {
     
     func showChooserButtonTapped(viewer: SeminarViewer) {
         // Create an instance of the alert controller with the action sheet style
-        let alertController = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
+        let alertController = LibAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
         
         // Add action buttons to the alert controller
         var actionTitle = "Make Speaker"

+ 2 - 2
appbuilder-ios/DigiXLite/DigiXLite/Source/View/Streaming/SeminarViewController.swift

@@ -390,9 +390,9 @@ class SeminarViewController: UIViewController {
     
     @objc func close(sender: Any?) {
         hideKeyboard()
-        var alert = UIAlertController(title: "", message: "Are you sure you want to end Seminar?".localized(), preferredStyle: .alert)
+        var alert = LibAlertController(title: "", message: "Are you sure you want to end Seminar?".localized(), preferredStyle: .alert)
         if !isLive {
-            alert = UIAlertController(title: "", message: "Are you sure you want to leave Seminar?".localized(), preferredStyle: .alert)
+            alert = LibAlertController(title: "", message: "Are you sure you want to leave Seminar?".localized(), preferredStyle: .alert)
         }
         alert.addAction(UIAlertAction(title: "No".localized(), style: UIAlertAction.Style.default, handler: nil))
         alert.addAction(UIAlertAction(title: "Yes".localized(), style: UIAlertAction.Style.default, handler: {[weak self] _ in

+ 3 - 3
appbuilder-ios/NexilisLite/NexilisLite/Source/APIS.swift

@@ -29,7 +29,7 @@ public class APIS: NSObject {
     }
     
     private static func showChangeProfile() {
-        let alert = UIAlertController(title: "Change Profile".localized(), message: "You must change your name to use this feature".localized(), preferredStyle: .alert)
+        let alert = LibAlertController(title: "Change Profile".localized(), message: "You must change your name to use this feature".localized(), preferredStyle: .alert)
         alert.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: {(_) in
             let controller = AppStoryBoard.Palio.instance.instantiateViewController(withIdentifier: "signupsignin") as! SignUpSignIn
             controller.forceLogin = true
@@ -180,7 +180,7 @@ public class APIS: NSObject {
         navigationController.navigationBar.isTranslucent = false
         navigationController.navigationBar.overrideUserInterfaceStyle = .dark
         navigationController.navigationBar.barStyle = .black
-        let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+        let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
         UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
         let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
         navigationController.navigationBar.titleTextAttributes = textAttributes
@@ -693,7 +693,7 @@ extension UINavigationController {
         self.navigationBar.isTranslucent = false
         self.navigationBar.overrideUserInterfaceStyle = .dark
         self.navigationBar.barStyle = .black
-        let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+        let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
         UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
         let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
         self.navigationBar.titleTextAttributes = textAttributes

+ 29 - 0
appbuilder-ios/NexilisLite/NexilisLite/Source/Extension.swift

@@ -1184,6 +1184,35 @@ class ImageCache {
     }
 }
 
+public class LibAlertController: UIAlertController {
+    public override func viewWillAppear(_ animated: Bool) {
+        super.viewWillAppear(animated)
+        
+        // Customize the title's font
+        let titleFont = UIFont.boldSystemFont(ofSize: 16)
+        let titleAttributes = [NSAttributedString.Key.font: titleFont]
+        setValue(NSAttributedString(string: self.title ?? "", attributes: titleAttributes), forKey: "attributedTitle")
+        
+        // Change the font for the message
+        let messageFont = UIFont.systemFont(ofSize: 14)
+        let messageAttributes = [NSAttributedString.Key.font: messageFont]
+        setValue(NSAttributedString(string: self.message ?? "", attributes: messageAttributes), forKey: "attributedMessage")
+    }
+    
+    open override func viewDidLayoutSubviews() {
+        super.viewDidLayoutSubviews()
+
+        for i in self.actions {
+            let attributedText = NSAttributedString(string: i.title ?? "", attributes: [NSAttributedString.Key.font : UIFont.systemFont(ofSize: 14)])
+
+            guard let label = (i.value(forKey: "__representer") as AnyObject).value(forKey: "label") as? UILabel else { return }
+            label.attributedText = attributedText
+        }
+
+    }
+}
+
+
 extension UISearchBar
 {
 

+ 1 - 1
appbuilder-ios/NexilisLite/NexilisLite/Source/FloatingButton/FloatingButton.swift

@@ -358,7 +358,7 @@ public class FloatingButton: UIView {
                 navigationController.navigationBar.isTranslucent = false
                 navigationController.navigationBar.overrideUserInterfaceStyle = .dark
                 navigationController.navigationBar.barStyle = .black
-                let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+                let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
                 UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
                 let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
                 navigationController.navigationBar.titleTextAttributes = textAttributes

+ 54 - 48
appbuilder-ios/NexilisLite/NexilisLite/Source/Nexilis.swift

@@ -52,7 +52,7 @@ public class Nexilis: NSObject {
     
     public static var openBroadcast = false
     
-    public static var loadingAlert = UIAlertController()
+    public static var loadingAlert = LibAlertController()
     
     private func createDelegate() {
         //print("createDelegate...")
@@ -161,16 +161,7 @@ public class Nexilis: NSObject {
                 getPullWorkingArea()
                 getPullGroupNoMember()
                 delegate.onSuccess(userId: me)
-                if let response = Nexilis.writeSync(message: getPrefs(key: "default_cc"), timeout: 5000) {
-                    if response.mBodies[CoreMessage_TMessageKey.ERRCOD] == "00" {
-                        let data = response.getBody(key: CoreMessage_TMessageKey.DATA)
-                        if let json = try! JSONSerialization.jsonObject(with: data.data(using: String.Encoding.utf8)!, options: []) as? [[String: Any?]] {
-                            if json.count > 0 , let default_cc = json[0]["default_cc"] as? String {
-                                Utils.setDefaultCC(value: default_cc)
-                            }
-                        }
-                    }
-                }
+                getPullDefaultCC()
                 if showButton {
                     DispatchQueue.main.async {
                         var viewController = UIApplication.shared.windows.first?.rootViewController
@@ -211,6 +202,21 @@ public class Nexilis: NSObject {
         }
     }
     
+    private static func getPullDefaultCC() {
+        DispatchQueue.global().async {
+            if let response = Nexilis.writeSync(message: getPrefs(key: "default_cc"), timeout: 30 * 1000) {
+                if response.mBodies[CoreMessage_TMessageKey.ERRCOD] == "00" {
+                    let data = response.getBody(key: CoreMessage_TMessageKey.DATA)
+                    if let json = try! JSONSerialization.jsonObject(with: data.data(using: String.Encoding.utf8)!, options: []) as? [[String: Any?]] {
+                        if json.count > 0 , let default_cc = json[0]["default_cc"] as? String {
+                            Utils.setDefaultCC(value: default_cc)
+                        }
+                    }
+                }
+            }
+        }
+    }
+    
     private static func getPrefs(key: String) -> TMessage {
         let tMessage = NexilisLite.TMessage()
         let me = UserDefaults.standard.string(forKey: "me")
@@ -616,7 +622,7 @@ public class Nexilis: NSObject {
     public static func openUrl(isBNI: Bool = false, url: String = "") {
         let isChangeProfile = Utils.getSetProfile()
         if !isChangeProfile {
-            let alert = UIAlertController(title: "Change Profile".localized(), message: "You must change your name to use this feature".localized(), preferredStyle: .alert)
+            let alert = LibAlertController(title: "Change Profile".localized(), message: "You must change your name to use this feature".localized(), preferredStyle: .alert)
             alert.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: {(_) in
                 let controller = AppStoryBoard.Palio.instance.instantiateViewController(withIdentifier: "signupsignin") as! SignUpSignIn
                 controller.forceLogin = true
@@ -627,7 +633,7 @@ public class Nexilis: NSObject {
                 navigationController.navigationBar.isTranslucent = false
                 navigationController.navigationBar.overrideUserInterfaceStyle = .dark
                 navigationController.navigationBar.barStyle = .black
-                let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+                let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
                 UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
                 let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
                 navigationController.navigationBar.titleTextAttributes = textAttributes
@@ -660,7 +666,7 @@ public class Nexilis: NSObject {
         //print("openApp itms-apps://apple.com/app/\(id)")
         let isChangeProfile = Utils.getSetProfile()
         if !isChangeProfile {
-            let alert = UIAlertController(title: "Change Profile".localized(), message: "You must change your name to use this feature".localized(), preferredStyle: .alert)
+            let alert = LibAlertController(title: "Change Profile".localized(), message: "You must change your name to use this feature".localized(), preferredStyle: .alert)
             alert.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: {(_) in
                 let controller = AppStoryBoard.Palio.instance.instantiateViewController(withIdentifier: "signupsignin") as! SignUpSignIn
                 controller.forceLogin = true
@@ -671,7 +677,7 @@ public class Nexilis: NSObject {
                 navigationController.navigationBar.isTranslucent = false
                 navigationController.navigationBar.overrideUserInterfaceStyle = .dark
                 navigationController.navigationBar.barStyle = .black
-                let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+                let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
                 UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
                 let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
                 navigationController.navigationBar.titleTextAttributes = textAttributes
@@ -697,12 +703,12 @@ public class Nexilis: NSObject {
         }
     }
     
-    static var alertChangeProfile = UIAlertController()
+    static var alertChangeProfile = LibAlertController()
     public static func checkIsChangePerson() -> Bool {
         let isChangeProfile = Utils.getSetProfile()
         if !isChangeProfile {
             alertChangeProfile.dismiss(animated: false)
-            alertChangeProfile = UIAlertController(title: "Change Profile".localized(), message: "You must change your name to use this feature".localized().localized(), preferredStyle: .alert)
+            alertChangeProfile = LibAlertController(title: "Change Profile".localized(), message: "You must change your name to use this feature".localized().localized(), preferredStyle: .alert)
             alertChangeProfile.addAction(UIAlertAction(title: "Cancel".localized(), style: .destructive, handler: nil))
             alertChangeProfile.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: {(_) in
                 let controller = AppStoryBoard.Palio.instance.instantiateViewController(withIdentifier: "signupsignin") as! SignUpSignIn
@@ -714,7 +720,7 @@ public class Nexilis: NSObject {
                 navigationController.navigationBar.isTranslucent = false
                 navigationController.navigationBar.overrideUserInterfaceStyle = .dark
                 navigationController.navigationBar.barStyle = .black
-                let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+                let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
                 UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
                 let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
                 navigationController.navigationBar.titleTextAttributes = textAttributes
@@ -738,7 +744,7 @@ public class Nexilis: NSObject {
     }
     
     public static func showLoader() {
-        loadingAlert = UIAlertController(title: nil, message: "Please wait...".localized(), preferredStyle: .alert)
+        loadingAlert = LibAlertController(title: nil, message: "Please wait...".localized(), preferredStyle: .alert)
 
         let loadingIndicator = UIActivityIndicatorView(frame: CGRect(x: 10, y: 5, width: 50, height: 50))
         loadingIndicator.hidesWhenStopped = true
@@ -1492,7 +1498,7 @@ extension UIFont {
     
     class func jbs_registerFont(withFilenameString filenameString: String) {
 
-        guard let pathForResourceString = Bundle.resourceBundle(for: Nexilis.self).path(forResource: filenameString, ofType: "otf") else {
+        guard let pathForResourceString = Bundle.resourcesMediaBundle(for: Nexilis.self).path(forResource: filenameString, ofType: "otf") else {
             //print("UIFont+:  Failed to register font - path for resource not found.")
             return
         }
@@ -2030,7 +2036,7 @@ extension Nexilis: MessageDelegate {
                 } else if Nexilis.onGoingPushCC["f_display_name"] == message.getBody(key: CoreMessage_TMessageKey.F_DISPLAY_NAME) {
                     return
                 }
-                let alert = UIAlertController(title: "", message: "\n\n\n\n\n\n\n\n\n\n".localized(), preferredStyle: .alert)
+                let alert = LibAlertController(title: "", message: "\n\n\n\n\n\n\n\n\n\n".localized(), preferredStyle: .alert)
                 let newWidth = UIScreen.main.bounds.width * 0.90 - 270
                 // update width constraint value for main view
                 if let viewWidthConstraint = alert.view.constraints.filter({ return $0.firstAttribute == .width }).first{
@@ -2055,7 +2061,7 @@ extension Nexilis: MessageDelegate {
                 let acceptAction = UIAlertAction(title: "I'll handle the customer".localized(), style: .default, handler: {(_) in
                     let goAudioCall = Nexilis.checkMicPermission()
                     if !goAudioCall && message.getBody(key: CoreMessage_TMessageKey.CHANNEL) == "1" {
-                        let alert = UIAlertController(title: "Attention!".localized(), message: "Please allow microphone permission in your settings".localized(), preferredStyle: .alert)
+                        let alert = LibAlertController(title: "Attention!".localized(), message: "Please allow microphone permission in your settings".localized(), preferredStyle: .alert)
                         alert.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: { _ in
                             if let url = URL(string: UIApplication.openSettingsURLString), UIApplication.shared.canOpenURL(url) {
                                 UIApplication.shared.open(url, options: [:], completionHandler: nil)
@@ -2096,7 +2102,7 @@ extension Nexilis: MessageDelegate {
                         }
                         
                         if permissionCheck == 0 {
-                            let alert = UIAlertController(title: "Attention!".localized(), message: "Please allow camera permission in your settings".localized(), preferredStyle: .alert)
+                            let alert = LibAlertController(title: "Attention!".localized(), message: "Please allow camera permission in your settings".localized(), preferredStyle: .alert)
                             alert.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: { _ in
                                 if let url = URL(string: UIApplication.openSettingsURLString), UIApplication.shared.canOpenURL(url) {
                                     UIApplication.shared.open(url, options: [:], completionHandler: nil)
@@ -2120,9 +2126,9 @@ extension Nexilis: MessageDelegate {
                         let nc = UIApplication.shared.visibleViewController as! UINavigationController
                         if nc.visibleViewController is QmeraStreamingViewController {
                             let vc = nc.visibleViewController as! QmeraStreamingViewController
-                            var alert = UIAlertController(title: "", message: "Are you sure you want to end Live Streaming, and open notification?".localized(), preferredStyle: .alert)
+                            var alert = LibAlertController(title: "", message: "Are you sure you want to end Live Streaming, and open notification?".localized(), preferredStyle: .alert)
                             if !vc.isLive {
-                                alert = UIAlertController(title: "", message: "Are you sure you want to leave Live Streaming, and open notification?".localized(), preferredStyle: .alert)
+                                alert = LibAlertController(title: "", message: "Are you sure you want to leave Live Streaming, and open notification?".localized(), preferredStyle: .alert)
                             }
                             alert.addAction(UIAlertAction(title: "No".localized(), style: UIAlertAction.Style.default, handler: { _ in
                                 DispatchQueue.global().async {
@@ -2144,9 +2150,9 @@ extension Nexilis: MessageDelegate {
 //                                    NotificationCenter.default.post(name: NSNotification.Name(rawValue: "isRunningStreaming"), object: nil, userInfo: dataMessage)
                         } else if nc.visibleViewController is SeminarViewController {
                             let vc = nc.visibleViewController as! SeminarViewController
-                            var alert = UIAlertController(title: "", message: "Are you sure you want to end Seminar, and open notification?".localized(), preferredStyle: .alert)
+                            var alert = LibAlertController(title: "", message: "Are you sure you want to end Seminar, and open notification?".localized(), preferredStyle: .alert)
                             if !vc.isLive {
-                                alert = UIAlertController(title: "", message: "Are you sure you want to leave Seminar, and open notification?".localized(), preferredStyle: .alert)
+                                alert = LibAlertController(title: "", message: "Are you sure you want to leave Seminar, and open notification?".localized(), preferredStyle: .alert)
                             }
                             alert.addAction(UIAlertAction(title: "No".localized(), style: UIAlertAction.Style.default, handler: { _ in
                                 DispatchQueue.global().async {
@@ -2197,7 +2203,7 @@ extension Nexilis: MessageDelegate {
                                         navigationController.navigationBar.isTranslucent = false
                                         navigationController.navigationBar.overrideUserInterfaceStyle = .dark
                                         navigationController.navigationBar.barStyle = .black
-                                        let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+                                        let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
                                         UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
                                         let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
                                         navigationController.navigationBar.titleTextAttributes = textAttributes
@@ -2390,7 +2396,7 @@ extension Nexilis: MessageDelegate {
             }
             listCCIdInv.append(message.getBody(key: CoreMessage_TMessageKey.CALL_CENTER_ID))
             DispatchQueue.main.async {
-                let alert = UIAlertController(title: "", message: "\n\n\n\n\n\n\n\n\n\n".localized(), preferredStyle: .alert)
+                let alert = LibAlertController(title: "", message: "\n\n\n\n\n\n\n\n\n\n".localized(), preferredStyle: .alert)
                 let newWidth = UIScreen.main.bounds.width * 0.90 - 270
                 // update width constraint value for main view
                 if let viewWidthConstraint = alert.view.constraints.filter({ return $0.firstAttribute == .width }).first{
@@ -2420,7 +2426,7 @@ extension Nexilis: MessageDelegate {
                     listCCIdInv.removeAll(where: {$0 == message.getBody(key: CoreMessage_TMessageKey.CALL_CENTER_ID)})
                     let goAudioCall = Nexilis.checkMicPermission()
                     if !goAudioCall && message.getBody(key: CoreMessage_TMessageKey.CHANNEL) == "1" {
-                        let alert = UIAlertController(title: "Attention!".localized(), message: "Please allow microphone permission in your settings".localized(), preferredStyle: .alert)
+                        let alert = LibAlertController(title: "Attention!".localized(), message: "Please allow microphone permission in your settings".localized(), preferredStyle: .alert)
                         alert.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: { _ in
                             if let url = URL(string: UIApplication.openSettingsURLString), UIApplication.shared.canOpenURL(url) {
                                 UIApplication.shared.open(url, options: [:], completionHandler: nil)
@@ -2461,7 +2467,7 @@ extension Nexilis: MessageDelegate {
                         }
                         
                         if permissionCheck == 0 {
-                            let alert = UIAlertController(title: "Attention!".localized(), message: "Please allow camera permission in your settings".localized(), preferredStyle: .alert)
+                            let alert = LibAlertController(title: "Attention!".localized(), message: "Please allow camera permission in your settings".localized(), preferredStyle: .alert)
                             alert.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: { _ in
                                 if let url = URL(string: UIApplication.openSettingsURLString), UIApplication.shared.canOpenURL(url) {
                                     UIApplication.shared.open(url, options: [:], completionHandler: nil)
@@ -2486,9 +2492,9 @@ extension Nexilis: MessageDelegate {
                         let nc = UIApplication.shared.visibleViewController as! UINavigationController
                         if nc.visibleViewController is QmeraStreamingViewController {
                             let vc = nc.visibleViewController as! QmeraStreamingViewController
-                            var alert = UIAlertController(title: "", message: "Are you sure you want to end Live Streaming, and open notification?".localized(), preferredStyle: .alert)
+                            var alert = LibAlertController(title: "", message: "Are you sure you want to end Live Streaming, and open notification?".localized(), preferredStyle: .alert)
                             if !vc.isLive {
-                                alert = UIAlertController(title: "", message: "Are you sure you want to leave Live Streaming, and open notification?".localized(), preferredStyle: .alert)
+                                alert = LibAlertController(title: "", message: "Are you sure you want to leave Live Streaming, and open notification?".localized(), preferredStyle: .alert)
                             }
                             alert.addAction(UIAlertAction(title: "No".localized(), style: UIAlertAction.Style.default, handler: { _ in
                                 DispatchQueue.global().async {
@@ -2512,9 +2518,9 @@ extension Nexilis: MessageDelegate {
                             nc.present(alert, animated: true, completion: nil)
                         } else if nc.visibleViewController is SeminarViewController {
                             let vc = nc.visibleViewController as! SeminarViewController
-                            var alert = UIAlertController(title: "", message: "Are you sure you want to end Seminar, and open notification?".localized(), preferredStyle: .alert)
+                            var alert = LibAlertController(title: "", message: "Are you sure you want to end Seminar, and open notification?".localized(), preferredStyle: .alert)
                             if !vc.isLive {
-                                alert = UIAlertController(title: "", message: "Are you sure you want to leave Seminar, and open notification?".localized(), preferredStyle: .alert)
+                                alert = LibAlertController(title: "", message: "Are you sure you want to leave Seminar, and open notification?".localized(), preferredStyle: .alert)
                             }
                             alert.addAction(UIAlertAction(title: "No".localized(), style: UIAlertAction.Style.default, handler: { _ in
                                 DispatchQueue.global().async {
@@ -2594,7 +2600,7 @@ extension Nexilis: MessageDelegate {
                                             navigationController.navigationBar.isTranslucent = false
                                             navigationController.navigationBar.overrideUserInterfaceStyle = .dark
                                             navigationController.navigationBar.barStyle = .black
-                                            let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+                                            let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
                                             UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
                                             let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
                                             navigationController.navigationBar.titleTextAttributes = textAttributes
@@ -3024,7 +3030,7 @@ extension Nexilis: MessageDelegate {
                         Database.shared.database?.inTransaction({ (fmdb, rollback) in
                             if let cursorData = Database.shared.getRecords(fmdb: fmdb, query: "SELECT first_name, last_name FROM BUDDY where f_pin = '\(UserDefaults.standard.string(forKey: "me")!)'"), cursorData.next() {
                                 if (cursorData.string(forColumnIndex: 0)! + " " + cursorData.string(forColumnIndex: 1)!).trimmingCharacters(in: .whitespaces) == "USR\(UserDefaults.standard.string(forKey: "me")!)" {
-                                    let alert = UIAlertController(title: "Change Profile".localized(), message: "You must change your name to use this feature".localized(), preferredStyle: .alert)
+                                    let alert = LibAlertController(title: "Change Profile".localized(), message: "You must change your name to use this feature".localized(), preferredStyle: .alert)
                                     alert.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: {(_) in
                                         let controller = AppStoryBoard.Palio.instance.instantiateViewController(withIdentifier: "signupsignin") as! SignUpSignIn
                                         controller.forceLogin = true
@@ -3035,7 +3041,7 @@ extension Nexilis: MessageDelegate {
                                         navigationController.navigationBar.isTranslucent = false
                                         navigationController.navigationBar.overrideUserInterfaceStyle = .dark
                                         navigationController.navigationBar.barStyle = .black
-                                        let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+                                        let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
                                         UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
                                         let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
                                         navigationController.navigationBar.titleTextAttributes = textAttributes
@@ -3078,7 +3084,7 @@ extension Nexilis: MessageDelegate {
                                 navigationController.navigationBar.isTranslucent = false
                                 navigationController.navigationBar.overrideUserInterfaceStyle = .dark
                                 navigationController.navigationBar.barStyle = .black
-                                let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+                                let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
                                 UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
                                 let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
                                 navigationController.navigationBar.titleTextAttributes = textAttributes
@@ -3093,9 +3099,9 @@ extension Nexilis: MessageDelegate {
                                 let nc = UIApplication.shared.visibleViewController as! UINavigationController
                                 if nc.visibleViewController is QmeraStreamingViewController {
                                     let vc = nc.visibleViewController as! QmeraStreamingViewController
-                                    var alert = UIAlertController(title: "", message: "Are you sure you want to end Live Streaming, and open notification?".localized(), preferredStyle: .alert)
+                                    var alert = LibAlertController(title: "", message: "Are you sure you want to end Live Streaming, and open notification?".localized(), preferredStyle: .alert)
                                     if !vc.isLive {
-                                        alert = UIAlertController(title: "", message: "Are you sure you want to leave Live Streaming, and open notification?".localized(), preferredStyle: .alert)
+                                        alert = LibAlertController(title: "", message: "Are you sure you want to leave Live Streaming, and open notification?".localized(), preferredStyle: .alert)
                                     }
                                     alert.addAction(UIAlertAction(title: "No".localized(), style: UIAlertAction.Style.default, handler: nil))
                                     alert.addAction(UIAlertAction(title: "Yes".localized(), style: UIAlertAction.Style.default, handler: { _ in
@@ -3111,9 +3117,9 @@ extension Nexilis: MessageDelegate {
 //                                    NotificationCenter.default.post(name: NSNotification.Name(rawValue: "isRunningStreaming"), object: nil, userInfo: dataMessage)
                                 } else if nc.visibleViewController is SeminarViewController {
                                     let vc = nc.visibleViewController as! SeminarViewController
-                                    var alert = UIAlertController(title: "", message: "Are you sure you want to end Seminar, and open notification?".localized(), preferredStyle: .alert)
+                                    var alert = LibAlertController(title: "", message: "Are you sure you want to end Seminar, and open notification?".localized(), preferredStyle: .alert)
                                     if !vc.isLive {
-                                        alert = UIAlertController(title: "", message: "Are you sure you want to leave Seminar, and open notification?".localized(), preferredStyle: .alert)
+                                        alert = LibAlertController(title: "", message: "Are you sure you want to leave Seminar, and open notification?".localized(), preferredStyle: .alert)
                                     }
                                     alert.addAction(UIAlertAction(title: "No".localized(), style: UIAlertAction.Style.default, handler: nil))
                                     alert.addAction(UIAlertAction(title: "Yes".localized(), style: UIAlertAction.Style.default, handler: { _ in
@@ -3171,7 +3177,7 @@ extension Nexilis: MessageDelegate {
                                 navigationController.navigationBar.isTranslucent = false
                                 navigationController.navigationBar.overrideUserInterfaceStyle = .dark
                                 navigationController.navigationBar.barStyle = .black
-                                let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+                                let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
                                 UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
                                 let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
                                 navigationController.navigationBar.titleTextAttributes = textAttributes
@@ -3186,9 +3192,9 @@ extension Nexilis: MessageDelegate {
                                 let nc = UIApplication.shared.visibleViewController as! UINavigationController
                                 if nc.visibleViewController is QmeraStreamingViewController {
                                     let vc = nc.visibleViewController as! QmeraStreamingViewController
-                                    var alert = UIAlertController(title: "", message: "Are you sure you want to end Live Streaming, and open notification?".localized(), preferredStyle: .alert)
+                                    var alert = LibAlertController(title: "", message: "Are you sure you want to end Live Streaming, and open notification?".localized(), preferredStyle: .alert)
                                     if !vc.isLive {
-                                        alert = UIAlertController(title: "", message: "Are you sure you want to leave Live Streaming, and open notification?".localized(), preferredStyle: .alert)
+                                        alert = LibAlertController(title: "", message: "Are you sure you want to leave Live Streaming, and open notification?".localized(), preferredStyle: .alert)
                                     }
                                     alert.addAction(UIAlertAction(title: "No".localized(), style: UIAlertAction.Style.default, handler: nil))
                                     alert.addAction(UIAlertAction(title: "Yes".localized(), style: UIAlertAction.Style.default, handler: { _ in
@@ -3204,9 +3210,9 @@ extension Nexilis: MessageDelegate {
 //                                    NotificationCenter.default.post(name: NSNotification.Name(rawValue: "isRunningStreaming"), object: nil, userInfo: dataMessage)
                                 } else if nc.visibleViewController is SeminarViewController {
                                     let vc = nc.visibleViewController as! SeminarViewController
-                                    var alert = UIAlertController(title: "", message: "Are you sure you want to end Seminar, and open notification?".localized(), preferredStyle: .alert)
+                                    var alert = LibAlertController(title: "", message: "Are you sure you want to end Seminar, and open notification?".localized(), preferredStyle: .alert)
                                     if !vc.isLive {
-                                        alert = UIAlertController(title: "", message: "Are you sure you want to leave Seminar, and open notification?".localized(), preferredStyle: .alert)
+                                        alert = LibAlertController(title: "", message: "Are you sure you want to leave Seminar, and open notification?".localized(), preferredStyle: .alert)
                                     }
                                     alert.addAction(UIAlertAction(title: "No".localized(), style: UIAlertAction.Style.default, handler: nil))
                                     alert.addAction(UIAlertAction(title: "Yes".localized(), style: UIAlertAction.Style.default, handler: { _ in

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

@@ -344,7 +344,7 @@ class QmeraAudioConference: UIViewController {
                 }
                 return
             }
-            let alert = UIAlertController(title: "Interaction with Call Center is in progress".localized(), message: "Are you sure you want to end the Call Center?".localized(), preferredStyle: .alert)
+            let alert = LibAlertController(title: "Interaction with Call Center is in progress".localized(), message: "Are you sure you want to end the Call Center?".localized(), preferredStyle: .alert)
             alert.addAction(UIAlertAction(title: "No".localized(), style: UIAlertAction.Style.default, handler: nil))
             alert.addAction(UIAlertAction(title: "Yes".localized(), style: UIAlertAction.Style.default, handler: {(_) in
                 self.dismiss(animated: false, completion: nil)

+ 3 - 3
appbuilder-ios/NexilisLite/NexilisLite/Source/View/Call/QmeraAudioViewController.swift

@@ -448,7 +448,7 @@ class QmeraAudioViewController: UIViewController {
         navigationController.navigationBar.isTranslucent = false
         navigationController.navigationBar.overrideUserInterfaceStyle = .dark
         navigationController.navigationBar.barStyle = .black
-        let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+        let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
         UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
         let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
         navigationController.navigationBar.titleTextAttributes = textAttributes
@@ -567,7 +567,7 @@ class QmeraAudioViewController: UIViewController {
             self.didEnd(sender: nil)
             return
         }
-        let alert = UIAlertController(title: "End Audio Call".localized(), message: "Are you sure you want to end audio call?".localized(), preferredStyle: .alert)
+        let alert = LibAlertController(title: "End Audio Call".localized(), message: "Are you sure you want to end audio call?".localized(), preferredStyle: .alert)
         alert.addAction(UIAlertAction(title: "No".localized(), style: UIAlertAction.Style.default, handler: nil))
         alert.addAction(UIAlertAction(title: "Yes".localized(), style: UIAlertAction.Style.default, handler: {(_) in
             DispatchQueue.main.async {
@@ -633,7 +633,7 @@ class QmeraAudioViewController: UIViewController {
                 }
                 return
             }
-            let alert = UIAlertController(title: "Interaction with Call Center is in progress".localized(), message: "Are you sure you want to end the Call Center?".localized(), preferredStyle: .alert)
+            let alert = LibAlertController(title: "Interaction with Call Center is in progress".localized(), message: "Are you sure you want to end the Call Center?".localized(), preferredStyle: .alert)
             alert.addAction(UIAlertAction(title: "No".localized(), style: UIAlertAction.Style.default, handler: nil))
             alert.addAction(UIAlertAction(title: "Yes".localized(), style: UIAlertAction.Style.default, handler: {(_) in
                 self.dismiss(animated: false, completion: nil)

+ 3 - 0
appbuilder-ios/NexilisLite/NexilisLite/Source/View/Call/QmeraCallContactViewController.swift

@@ -109,6 +109,9 @@ class QmeraCallContactViewController: UITableViewController {
                                         userType: cursor.string(forColumnIndex: 4) ?? "",
                                         official: cursor.string(forColumnIndex: 5) ?? "",
                                         ex_offmp: cursor.string(forColumnIndex: 6) ?? "")
+                        if (user.firstName + " " + user.lastName).trimmingCharacters(in: .whitespaces) == "USR\(user.pin)" {
+                            continue
+                        }
                         contacts.append(user)
                     }
                     cursor.close()

+ 4 - 4
appbuilder-ios/NexilisLite/NexilisLite/Source/View/Call/QmeraVideoViewController.swift

@@ -463,7 +463,7 @@ class QmeraVideoViewController: UIViewController {
     @objc func didTapDeclineCallButton(sender: AnyObject){
         let onGoingCC = UserDefaults.standard.string(forKey: "onGoingCC") ?? ""
         if !onGoingCC.isEmpty {
-            let alert = UIAlertController(title: "Interaction with Call Center is in progress".localized(), message: "Are you sure you want to end the Call Center?".localized(), preferredStyle: .alert)
+            let alert = LibAlertController(title: "Interaction with Call Center is in progress".localized(), message: "Are you sure you want to end the Call Center?".localized(), preferredStyle: .alert)
             alert.addAction(UIAlertAction(title: "No".localized(), style: UIAlertAction.Style.default, handler: nil))
             alert.addAction(UIAlertAction(title: "Yes".localized(), style: UIAlertAction.Style.default, handler: {(_) in
                 if(!self.wbRoomId.isEmpty){
@@ -477,7 +477,7 @@ class QmeraVideoViewController: UIViewController {
             }))
             self.present(alert, animated: true, completion: nil)
         } else {
-            let alert = UIAlertController(title: "End Video Call".localized(), message: "Are you sure you want to end video call?".localized(), preferredStyle: .alert)
+            let alert = LibAlertController(title: "End Video Call".localized(), message: "Are you sure you want to end video call?".localized(), preferredStyle: .alert)
             alert.addAction(UIAlertAction(title: "No".localized(), style: UIAlertAction.Style.default, handler: nil))
             alert.addAction(UIAlertAction(title: "Yes".localized(), style: UIAlertAction.Style.default, handler: {(_) in
                 if self.labelIncomingOutgoing.isDescendant(of: self.view) {
@@ -528,7 +528,7 @@ class QmeraVideoViewController: UIViewController {
             let goAudioCall = Nexilis.checkMicPermission()
             let goVideoCall = Nexilis.checkCameraPermission()
             if goVideoCall == 0 {
-                let alert = UIAlertController(title: "Attention!".localized(), message: !goAudioCall && goVideoCall == 0 ? "Please allow microphone & camera permission in your settings".localized() : !goAudioCall ? "Please allow microphone permission in your settings".localized() : "Please allow camera permission in your settings", preferredStyle: .alert)
+                let alert = LibAlertController(title: "Attention!".localized(), message: !goAudioCall && goVideoCall == 0 ? "Please allow microphone & camera permission in your settings".localized() : !goAudioCall ? "Please allow microphone permission in your settings".localized() : "Please allow camera permission in your settings", preferredStyle: .alert)
                 alert.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: {_ in
                     if let url = URL(string: UIApplication.openSettingsURLString), UIApplication.shared.canOpenURL(url) {
                         UIApplication.shared.open(url, options: [:], completionHandler: nil)
@@ -602,7 +602,7 @@ class QmeraVideoViewController: UIViewController {
         navigationController.navigationBar.isTranslucent = false
         navigationController.navigationBar.overrideUserInterfaceStyle = .dark
         navigationController.navigationBar.barStyle = .black
-        let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+        let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
         UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
         let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
         navigationController.navigationBar.titleTextAttributes = textAttributes

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

@@ -157,7 +157,7 @@ class ScreenSharingViewController: UIViewController {
     }
     
     @objc func didTapDeclineCallButton(sender: Any) {
-        let alert = UIAlertController(title: "End Screen Sharing Session".localized(), message: "Are you sure you want to end screen sharing session?".localized(), preferredStyle: .alert)
+        let alert = LibAlertController(title: "End Screen Sharing Session".localized(), message: "Are you sure you want to end screen sharing session?".localized(), preferredStyle: .alert)
         alert.addAction(UIAlertAction(title: "No".localized(), style: UIAlertAction.Style.default, handler: nil))
         alert.addAction(UIAlertAction(title: "Yes".localized(), style: UIAlertAction.Style.default, handler: {(_) in
             if self.fromContact == 0 {

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

@@ -487,7 +487,7 @@ extension VideoViewController: UITableViewDelegate, UITableViewDataSource {
 extension UIViewController{
     
     func showToast(message : String, seconds: Double){
-        let alert = UIAlertController(title: nil, message: message, preferredStyle: .alert)
+        let alert = LibAlertController(title: nil, message: message, preferredStyle: .alert)
         alert.view.backgroundColor = .black
         alert.view.alpha = 0.5
         alert.view.layer.cornerRadius = 15

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

@@ -185,7 +185,7 @@ class WhiteboardViewController: UIViewController, WhiteboardDelegate {
     }
     
     @objc func didTapDeclineCallButton(sender: Any) {
-        let alert = UIAlertController(title: "End Whiteboard Session".localized(), message: "Are you sure you want to end whiteboard session?".localized(), preferredStyle: .alert)
+        let alert = LibAlertController(title: "End Whiteboard Session".localized(), message: "Are you sure you want to end whiteboard session?".localized(), preferredStyle: .alert)
         alert.addAction(UIAlertAction(title: "No".localized(), style: UIAlertAction.Style.default, handler: nil))
         alert.addAction(UIAlertAction(title: "Yes".localized(), style: UIAlertAction.Style.default, handler: {(_) in
             if self.fromContact == 0 {

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

@@ -218,7 +218,7 @@ public class EditorGroup: UIViewController {
         navigationItem.rightBarButtonItem = nil
         let menu = UIMenu(title: "", children: [
             UIAction(title: "Delete Conversation".localized(), handler: {(_) in
-                let alert = UIAlertController(title: "", message: "Are you sure to delete all message in this conversation?".localized(), preferredStyle: .alert)
+                let alert = LibAlertController(title: "", message: "Are you sure to delete all message in this conversation?".localized(), preferredStyle: .alert)
                 alert.addAction(UIAlertAction(title: "Cancel".localized(), style: UIAlertAction.Style.default, handler: nil))
                 alert.addAction(UIAlertAction(title: "Delete".localized(), style: .destructive, handler: {(_) in
                     var l_pin = self.dataGroup["group_id"] as! String
@@ -950,7 +950,7 @@ public class EditorGroup: UIViewController {
             self.viewSticker.removeConstraints(self.viewSticker.constraints)
             self.viewSticker.removeFromSuperview()
         }
-        let alertController = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
+        let alertController = LibAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
         
         if let action = self.actionImageVideo(for: "image", title: "Choose Photo".localized()) {
             alertController.addAction(action)
@@ -985,7 +985,7 @@ public class EditorGroup: UIViewController {
             self.viewSticker.removeConstraints(self.viewSticker.constraints)
             self.viewSticker.removeFromSuperview()
         }
-        let alertController = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
+        let alertController = LibAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
         
         if let action = self.actionImageVideo(for: "imageCamera", title: "Take Photo".localized()) {
             alertController.addAction(action)
@@ -1196,7 +1196,7 @@ public class EditorGroup: UIViewController {
     }
     
     @objc func showChooserACKConfidential() {
-        let alertController = UIAlertController(title: "Message Mode".localized(), message: "Select".localized() + " " + "Message Mode".localized(), preferredStyle: .actionSheet)
+        let alertController = LibAlertController(title: "Message Mode".localized(), message: "Select".localized() + " " + "Message Mode".localized(), preferredStyle: .actionSheet)
         let imageAck = resizeImage(image: UIImage(named: "ack_icon", in: Bundle.resourceBundle(for: Nexilis.self), with: nil)!, targetSize: CGSize(width: 30, height: 30)).withRenderingMode(.alwaysOriginal)
         let ackAction = UIAlertAction(title: "Confirmation Message".localized(), style: .default, handler: { (UIAlertAction) in
             if !self.isAck {
@@ -2502,7 +2502,7 @@ extension EditorGroup: UIContextMenuInteractionDelegate {
             if countSelected == 0 {
                 return
             }
-            let alertController = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
+            let alertController = LibAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
             
             if let action = self.actionDelete(for: "me", title: "Delete".localized() + " \(countSelected) " + "For Me".localized(), dataMessages: dataMessages) {
                 alertController.addAction(action)
@@ -2903,7 +2903,7 @@ extension EditorGroup: UITableViewDelegate, UITableViewDataSource {
                 streamingNav.navigationBar.isTranslucent = false
                 streamingNav.navigationBar.overrideUserInterfaceStyle = .dark
                 streamingNav.navigationBar.barStyle = .black
-                let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+                let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
                 UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
                 let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
                 streamingNav.navigationBar.titleTextAttributes = textAttributes

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

@@ -295,7 +295,7 @@ public class EditorPersonal: UIViewController, ImageVideoPickerDelegate, UIGestu
             }),
             UIAction(title: "Delete Conversation".localized(), handler: {(_) in
                 if !self.isContactCenter {
-                    let alert = UIAlertController(title: "", message: "Are you sure to delete all message in this conversation?".localized(), preferredStyle: .alert)
+                    let alert = LibAlertController(title: "", message: "Are you sure to delete all message in this conversation?".localized(), preferredStyle: .alert)
                     alert.addAction(UIAlertAction(title: "Cancel".localized(), style: UIAlertAction.Style.default, handler: nil))
                     alert.addAction(UIAlertAction(title: "Delete".localized(), style: .destructive, handler: {(_) in
                         Database.shared.database?.inTransaction({ (fmdb, rollback) in
@@ -371,7 +371,7 @@ public class EditorPersonal: UIViewController, ImageVideoPickerDelegate, UIGestu
                 }),
                 UIAction(title: "Delete Conversation".localized(), handler: {(_) in
                     if !self.isContactCenter {
-                        let alert = UIAlertController(title: "", message: "Are you sure to delete all message in this conversation?".localized(), preferredStyle: .alert)
+                        let alert = LibAlertController(title: "", message: "Are you sure to delete all message in this conversation?".localized(), preferredStyle: .alert)
                         alert.addAction(UIAlertAction(title: "Cancel".localized(), style: UIAlertAction.Style.default, handler: nil))
                         alert.addAction(UIAlertAction(title: "Delete".localized(), style: .destructive, handler: {(_) in
                             Database.shared.database?.inTransaction({ (fmdb, rollback) in
@@ -445,7 +445,7 @@ public class EditorPersonal: UIViewController, ImageVideoPickerDelegate, UIGestu
                     }),
                     UIAction(title: "Delete Conversation".localized(), handler: {(_) in
                         if !self.isContactCenter {
-                            let alert = UIAlertController(title: "", message: "Are you sure to delete all message in this conversation?".localized(), preferredStyle: .alert)
+                            let alert = LibAlertController(title: "", message: "Are you sure to delete all message in this conversation?".localized(), preferredStyle: .alert)
                             alert.addAction(UIAlertAction(title: "Cancel".localized(), style: UIAlertAction.Style.default, handler: nil))
                             alert.addAction(UIAlertAction(title: "Delete".localized(), style: .destructive, handler: {(_) in
                                 Database.shared.database?.inTransaction({ (fmdb, rollback) in
@@ -484,7 +484,7 @@ public class EditorPersonal: UIViewController, ImageVideoPickerDelegate, UIGestu
                     }),
                     UIAction(title: "Delete Conversation".localized(), handler: {(_) in
                         if !self.isContactCenter {
-                            let alert = UIAlertController(title: "", message: "Are you sure to delete all message in this conversation?".localized(), preferredStyle: .alert)
+                            let alert = LibAlertController(title: "", message: "Are you sure to delete all message in this conversation?".localized(), preferredStyle: .alert)
                             alert.addAction(UIAlertAction(title: "Cancel".localized(), style: UIAlertAction.Style.default, handler: nil))
                             alert.addAction(UIAlertAction(title: "Delete".localized(), style: .destructive, handler: {(_) in
                                 Database.shared.database?.inTransaction({ (fmdb, rollback) in
@@ -1839,7 +1839,7 @@ public class EditorPersonal: UIViewController, ImageVideoPickerDelegate, UIGestu
         if isContactCenter && fPinContacCenter.isEmpty && isRequestContactCenter {
             return
         }
-        let alertController = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
+        let alertController = LibAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
         
         if let action = self.actionImageVideo(for: "image", title: "Choose Photo".localized()) {
             alertController.addAction(action)
@@ -1877,7 +1877,7 @@ public class EditorPersonal: UIViewController, ImageVideoPickerDelegate, UIGestu
         if isContactCenter && fPinContacCenter.isEmpty && isRequestContactCenter {
             return
         }
-        let alertController = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
+        let alertController = LibAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
         
         if let action = self.actionImageVideo(for: "imageCamera", title: "Take Photo".localized()) {
             alertController.addAction(action)
@@ -1952,7 +1952,7 @@ public class EditorPersonal: UIViewController, ImageVideoPickerDelegate, UIGestu
     }
     
     @objc func showChooserACKConfidential() {
-        let alertController = UIAlertController(title: "Message Mode".localized(), message: "Select".localized() + " " + "Message Mode".localized(), preferredStyle: .actionSheet)
+        let alertController = LibAlertController(title: "Message Mode".localized(), message: "Select".localized() + " " + "Message Mode".localized(), preferredStyle: .actionSheet)
         let imageConfidential = resizeImage(image: UIImage(named: "confidential_icon", in: Bundle.resourceBundle(for: Nexilis.self), with: nil)!, targetSize: CGSize(width: 30, height: 30)).withRenderingMode(.alwaysOriginal)
         let imageAck = resizeImage(image: UIImage(named: "ack_icon", in: Bundle.resourceBundle(for: Nexilis.self), with: nil)!, targetSize: CGSize(width: 30, height: 30)).withRenderingMode(.alwaysOriginal)
         let confidentialAction = UIAlertAction(title: "Confidential Message".localized(), style: .default, handler: { (UIAlertAction) in
@@ -2015,7 +2015,7 @@ public class EditorPersonal: UIViewController, ImageVideoPickerDelegate, UIGestu
         if sender.tag == 0 {
             let goAudioCall = Nexilis.checkMicPermission()
             if !goAudioCall{
-                let alert = UIAlertController(title: "Attention!".localized(), message: "Please allow microphone permission in your settings".localized(), preferredStyle: .alert)
+                let alert = LibAlertController(title: "Attention!".localized(), message: "Please allow microphone permission in your settings".localized(), preferredStyle: .alert)
                 alert.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: {_ in
                     if let url = URL(string: UIApplication.openSettingsURLString), UIApplication.shared.canOpenURL(url) {
                         UIApplication.shared.open(url, options: [:], completionHandler: nil)
@@ -2042,7 +2042,7 @@ public class EditorPersonal: UIViewController, ImageVideoPickerDelegate, UIGestu
             let goAudioCall = Nexilis.checkMicPermission()
             let goVideoCall = Nexilis.checkCameraPermission()
             if goVideoCall == 0 {
-                let alert = UIAlertController(title: "Attention!".localized(), message: !goAudioCall && goVideoCall == 0 ? "Please allow microphone & camera permission in your settings".localized() : !goAudioCall ? "Please allow microphone permission in your settings".localized() : "Please allow camera permission in your settings", preferredStyle: .alert)
+                let alert = LibAlertController(title: "Attention!".localized(), message: !goAudioCall && goVideoCall == 0 ? "Please allow microphone & camera permission in your settings".localized() : !goAudioCall ? "Please allow microphone permission in your settings".localized() : "Please allow camera permission in your settings", preferredStyle: .alert)
                 alert.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: {_ in
                     if let url = URL(string: UIApplication.openSettingsURLString), UIApplication.shared.canOpenURL(url) {
                         UIApplication.shared.open(url, options: [:], completionHandler: nil)
@@ -2090,7 +2090,7 @@ public class EditorPersonal: UIViewController, ImageVideoPickerDelegate, UIGestu
             NotificationCenter.default.post(name: NSNotification.Name(rawValue: "refreshView"), object: nil, userInfo: nil)
             self.dismiss(animated: true, completion: nil)
         } else if !complaintId.isEmpty {
-            let alert = UIAlertController(title: "Interaction with Call Center is in progress".localized(), message: "Are you sure you want to end the Call Center?".localized(), preferredStyle: .alert)
+            let alert = LibAlertController(title: "Interaction with Call Center is in progress".localized(), message: "Are you sure you want to end the Call Center?".localized(), preferredStyle: .alert)
             alert.addAction(UIAlertAction(title: "No".localized(), style: UIAlertAction.Style.default, handler: nil))
             alert.addAction(UIAlertAction(title: "Yes".localized(), style: UIAlertAction.Style.default, handler: {(_) in
                 self.endCallCenter()
@@ -2417,7 +2417,7 @@ public class EditorPersonal: UIViewController, ImageVideoPickerDelegate, UIGestu
                         let goAudioCall = Nexilis.checkMicPermission()
                         let goVideoCall = Nexilis.checkCameraPermission()
                         if goVideoCall == 0 {
-                            let alert = UIAlertController(title: "Attention!".localized(), message: !goAudioCall && goVideoCall == 0 && channel == 2 ? "Please allow microphone & camera permission in your settings".localized() : !goAudioCall ? "Please allow microphone permission in your settings".localized() : "Please allow camera permission in your settings", preferredStyle: .alert)
+                            let alert = LibAlertController(title: "Attention!".localized(), message: !goAudioCall && goVideoCall == 0 && channel == 2 ? "Please allow microphone & camera permission in your settings".localized() : !goAudioCall ? "Please allow microphone permission in your settings".localized() : "Please allow camera permission in your settings", preferredStyle: .alert)
                             alert.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: {_ in
                                 if let url = URL(string: UIApplication.openSettingsURLString), UIApplication.shared.canOpenURL(url) {
                                     UIApplication.shared.open(url, options: [:], completionHandler: nil)
@@ -2431,7 +2431,7 @@ public class EditorPersonal: UIViewController, ImageVideoPickerDelegate, UIGestu
                     } else if channel == 1 {
                         let goAudioCall = Nexilis.checkMicPermission()
                         if !goAudioCall{
-                            let alert = UIAlertController(title: "Attention!".localized(), message: "Please allow microphone permission in your settings".localized(), preferredStyle: .alert)
+                            let alert = LibAlertController(title: "Attention!".localized(), message: "Please allow microphone permission in your settings".localized(), preferredStyle: .alert)
                             alert.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: {_ in
                                 if let url = URL(string: UIApplication.openSettingsURLString), UIApplication.shared.canOpenURL(url) {
                                     UIApplication.shared.open(url, options: [:], completionHandler: nil)
@@ -2505,7 +2505,7 @@ public class EditorPersonal: UIViewController, ImageVideoPickerDelegate, UIGestu
                 let goAudioCall = Nexilis.checkMicPermission()
                 let goVideoCall = Nexilis.checkCameraPermission()
                 if goVideoCall == 0 {
-                    let alert = UIAlertController(title: "Attention!".localized(), message: !goAudioCall && goVideoCall == 0 && channelContactCenter == "2" ? "Please allow microphone & camera permission in your settings".localized() : !goAudioCall ? "Please allow microphone permission in your settings".localized() : "Please allow camera permission in your settings", preferredStyle: .alert)
+                    let alert = LibAlertController(title: "Attention!".localized(), message: !goAudioCall && goVideoCall == 0 && channelContactCenter == "2" ? "Please allow microphone & camera permission in your settings".localized() : !goAudioCall ? "Please allow microphone permission in your settings".localized() : "Please allow camera permission in your settings", preferredStyle: .alert)
                     alert.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: {_ in
                         if let url = URL(string: UIApplication.openSettingsURLString), UIApplication.shared.canOpenURL(url) {
                             UIApplication.shared.open(url, options: [:], completionHandler: nil)
@@ -2519,7 +2519,7 @@ public class EditorPersonal: UIViewController, ImageVideoPickerDelegate, UIGestu
             } else if channelContactCenter == "1" {
                 let goAudioCall = Nexilis.checkMicPermission()
                 if !goAudioCall{
-                    let alert = UIAlertController(title: "Attention!".localized(), message: "Please allow microphone permission in your settings".localized(), preferredStyle: .alert)
+                    let alert = LibAlertController(title: "Attention!".localized(), message: "Please allow microphone permission in your settings".localized(), preferredStyle: .alert)
                     alert.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: {_ in
                         if let url = URL(string: UIApplication.openSettingsURLString), UIApplication.shared.canOpenURL(url) {
                             UIApplication.shared.open(url, options: [:], completionHandler: nil)
@@ -3663,7 +3663,7 @@ extension EditorPersonal: UIContextMenuInteractionDelegate {
             if countSelected == 0 {
                 return
             }
-            let alertController = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
+            let alertController = LibAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
 
             if let action = self.actionDelete(for: "me", title: "Delete".localized() + " \(countSelected) " + "For Me".localized(), dataMessages: dataMessages) {
                 alertController.addAction(action)
@@ -3996,7 +3996,7 @@ extension EditorPersonal: UITableViewDelegate, UITableViewDataSource {
                 streamingNav.navigationBar.isTranslucent = false
                 streamingNav.navigationBar.overrideUserInterfaceStyle = .dark
                 streamingNav.navigationBar.barStyle = .black
-                let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+                let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
                 UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
                 let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
                 streamingNav.navigationBar.titleTextAttributes = textAttributes

+ 1 - 1
appbuilder-ios/NexilisLite/NexilisLite/Source/View/Chat/EditorStarMessages.swift

@@ -1021,7 +1021,7 @@ public class EditorStarMessages: UIViewController, UITableViewDataSource, UITabl
             navigationController.navigationBar.isTranslucent = false
             navigationController.navigationBar.overrideUserInterfaceStyle = .dark
             navigationController.navigationBar.barStyle = .black
-            let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+            let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
             UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
             let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
             navigationController.navigationBar.titleTextAttributes = textAttributes

+ 1 - 1
appbuilder-ios/NexilisLite/NexilisLite/Source/View/Chat/PreviewAttachmentImageVideo.swift

@@ -124,7 +124,7 @@ class PreviewAttachmentImageVideo: UIViewController, UIScrollViewDelegate, UITex
     }
     
     @objc func showChooserACKConfidential() {
-        let alertController = UIAlertController(title: "Message Mode".localized(), message: "Select".localized() + " " + "Message Mode".localized(), preferredStyle: .actionSheet)
+        let alertController = LibAlertController(title: "Message Mode".localized(), message: "Select".localized() + " " + "Message Mode".localized(), preferredStyle: .actionSheet)
         if !self.isGroup {
             let imageConfidential = resizeImage(image: UIImage(named: "confidential_icon", in: Bundle.resourceBundle(for: Nexilis.self), with: nil)!, targetSize: CGSize(width: 30, height: 30)).withRenderingMode(.alwaysOriginal)
             let confidentialAction = UIAlertAction(title: "Confidential Message".localized(), style: .default, handler: { (UIAlertAction) in

+ 4 - 4
appbuilder-ios/NexilisLite/NexilisLite/Source/View/Control/BroadcastViewController.swift

@@ -113,7 +113,7 @@ class BroadcastViewController: UITableViewController, UITextFieldDelegate, UITex
         navigationController?.navigationBar.overrideUserInterfaceStyle = .dark
         navigationController?.navigationBar.barStyle = .black
         navigationController?.view.backgroundColor = .mainColor
-        let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+        let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
         UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
         let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
         navigationController?.navigationBar.titleTextAttributes = textAttributes
@@ -341,14 +341,14 @@ class BroadcastViewController: UITableViewController, UITextFieldDelegate, UITex
         type = "\(broadcastTypeLabel.tag + 1)"
         mode = "\(broadcastModeLabel.tag + 1)"
         if(messageTitle.trimmingCharacters(in: .whitespaces).isEmpty || message.trimmingCharacters(in: .whitespaces).isEmpty){
-            let alert = UIAlertController(title: "", message: "Title and message must not be empty".localized(), preferredStyle: .alert)
+            let alert = LibAlertController(title: "", message: "Title and message must not be empty".localized(), preferredStyle: .alert)
             alert.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: nil))
             self.present(alert, animated: true, completion: nil)
             return
         }
         if(dest == BroadcastViewController.DESTINATION_GROUP){
             if(groups.isEmpty){
-                let alert = UIAlertController(title: "", message: "Please select at least one contact".localized(), preferredStyle: .alert)
+                let alert = LibAlertController(title: "", message: "Please select at least one contact".localized(), preferredStyle: .alert)
                 alert.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: nil))
                 self.present(alert, animated: true, completion: nil)
                 return
@@ -362,7 +362,7 @@ class BroadcastViewController: UITableViewController, UITextFieldDelegate, UITex
         }
         else if(dest == BroadcastViewController.DESTINATION_SPESIFIC){
             if(contacts.isEmpty){
-                let alert = UIAlertController(title: "", message: "Please select at least one contact".localized(), preferredStyle: .alert)
+                let alert = LibAlertController(title: "", message: "Please select at least one contact".localized(), preferredStyle: .alert)
                 alert.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: nil))
                 self.present(alert, animated: true, completion: nil)
                 return

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

@@ -16,7 +16,7 @@ class ChangeNameTableViewController: UITableViewController {
     var data: String = ""
     
     override func viewWillAppear(_ animated: Bool) {
-        let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.black]
+        let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.black, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
         UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
     }
     

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

@@ -695,7 +695,7 @@ extension ContactChatViewController {
             groupMap.removeValue(forKey: group.id)
         }
         if group.groupType == "NOTJOINED" {
-            let alert = UIAlertController(title: "Do you want to join this group?".localized(), message: "Groups : \(group.name)\nMembers: \(group.by)".localized(), preferredStyle: .alert)
+            let alert = LibAlertController(title: "Do you want to join this group?".localized(), message: "Groups : \(group.name)\nMembers: \(group.by)".localized(), preferredStyle: .alert)
             alert.addAction(UIAlertAction(title: "Cancel".localized(), style: .cancel, handler: nil))
             alert.addAction(UIAlertAction(title: "Join".localized(), style: .default, handler: {(_) in
                 self.joinOpenGroup(groupId: group.id, completion: { result in

+ 13 - 13
appbuilder-ios/NexilisLite/NexilisLite/Source/View/Control/GroupDetailViewController.swift

@@ -148,7 +148,7 @@ class GroupDetailViewController: UITableViewController {
     }
     
     func createSubGroup() {
-        self.alert2 = UIAlertController(title: "Create Sub Group".localized(), message: nil, preferredStyle: .alert)
+        self.alert2 = LibAlertController(title: "Create Sub Group".localized(), message: nil, preferredStyle: .alert)
         self.textFields.removeAll()
         self.alert2?.addTextField{ (texfield) in
             texfield.placeholder = "Group's Name".localized()
@@ -200,7 +200,7 @@ class GroupDetailViewController: UITableViewController {
             self.reload()
         }
         let navController = UINavigationController(rootViewController: controller)
-        let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+        let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
         UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
         let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
         navController.navigationBar.titleTextAttributes = textAttributes
@@ -280,7 +280,7 @@ class GroupDetailViewController: UITableViewController {
         switch sections[indexPath.section] {
         case .profile:
             if isAdmin {
-                let alert = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
+                let alert = LibAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
                 alert.addAction(UIAlertAction(title: "Take Photo".localized(), style: .default, handler: { action in
                     self.imageVideoPicker.present(source: .imageCamera)
                 }))
@@ -301,7 +301,7 @@ class GroupDetailViewController: UITableViewController {
                     self.reload()
                 }
                 let navController = UINavigationController(rootViewController: controller)
-                let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+                let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
                 UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
                 let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
                 navController.navigationBar.titleTextAttributes = textAttributes
@@ -345,7 +345,7 @@ class GroupDetailViewController: UITableViewController {
                     self.reload()
                 }
                 let navController = UINavigationController(rootViewController: controller)
-                let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+                let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
                 UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
                 let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
                 navController.navigationBar.titleTextAttributes = textAttributes
@@ -370,7 +370,7 @@ class GroupDetailViewController: UITableViewController {
                     }
                     return
                 }
-                let alert = UIAlertController(title: nil, message: topic.title, preferredStyle: .actionSheet)
+                let alert = LibAlertController(title: nil, message: topic.title, preferredStyle: .actionSheet)
                 alert.addAction(UIAlertAction(title: "Enter Topic", style: .default, handler: { action in
                     if let controller = self.previousViewController as? EditorGroup {
                         if controller.dataTopic["chat_id"] as! String == topic.chatId {
@@ -389,7 +389,7 @@ class GroupDetailViewController: UITableViewController {
                     }
                 }))
                 alert.addAction(UIAlertAction(title: "Rename Topic", style: .default, handler: { action in
-                    self.alert2 = UIAlertController(title: "Change Topic's Name".localized(), message: nil, preferredStyle: .alert)
+                    self.alert2 = LibAlertController(title: "Change Topic's Name".localized(), message: nil, preferredStyle: .alert)
                     self.textFields.removeAll()
                     self.alert2?.addTextField{ (texfield) in
                         texfield.text = topic.title
@@ -435,7 +435,7 @@ class GroupDetailViewController: UITableViewController {
                 }))
                 alert.addAction(UIAlertAction(title: "Remove Topic".localized(), style: .destructive, handler: { action in
                     let message = "Remove \(topic.title) from the \"\(g.name)\" group?"
-                    let notif = UIAlertController(title: nil, message: message, preferredStyle: .actionSheet)
+                    let notif = LibAlertController(title: nil, message: message, preferredStyle: .actionSheet)
                     notif.addAction(UIAlertAction(title: "Remove".localized(), style: .destructive, handler: { notifAction in
                         self.removeTopic(chatId: topic.chatId) { result in
                             if result, let index = g.topics.firstIndex(of: topic) {
@@ -514,7 +514,7 @@ class GroupDetailViewController: UITableViewController {
                     self.reload()
                 }
                 let navController = UINavigationController(rootViewController: controller)
-                let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+                let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
                 UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
                 let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
                 navController.navigationBar.titleTextAttributes = textAttributes
@@ -534,7 +534,7 @@ class GroupDetailViewController: UITableViewController {
                         self.navigationController?.show(controller, sender: nil)
                         return
                     }
-                    let alert = UIAlertController(title: nil, message: "\(member.firstName) \(member.lastName)", preferredStyle: .actionSheet)
+                    let alert = LibAlertController(title: nil, message: "\(member.firstName) \(member.lastName)", preferredStyle: .actionSheet)
                     alert.addAction(UIAlertAction(title: "Info".localized(), style: .default, handler: { action in
                         let data = User.getDataCanNil(pin: member.pin)
                         let controller = AppStoryBoard.Palio.instance.instantiateViewController(withIdentifier: "profileView") as! ProfileViewController
@@ -550,7 +550,7 @@ class GroupDetailViewController: UITableViewController {
                     }))
                     alert.addAction(UIAlertAction(title: member.position == "0" ? "Make Group Admin".localized() : "Remove Group Admin".localized(), style: member.position == "0" ? .default : .destructive, handler: { action in
                         let message = "\(member.position == "0" ? "Make" : "Remove") \(member.fullName) from the \"\(g.name)\" group Admin?"
-                        let notif = UIAlertController(title: nil, message: message, preferredStyle: .actionSheet)
+                        let notif = LibAlertController(title: nil, message: message, preferredStyle: .actionSheet)
                         notif.addAction(UIAlertAction(title: member.position == "0" ? "Make".localized() : "Remove".localized(), style: member.position == "0" ? .default : .destructive, handler: { notifAction in
                             self.changePosition(pin: member.pin, isAdmin: member.position == "0") { result in
                                 if result {
@@ -570,7 +570,7 @@ class GroupDetailViewController: UITableViewController {
                     }))
                     alert.addAction(UIAlertAction(title: "Remove From Group".localized(), style: .destructive, handler: { action in
                         let message = "Remove \(member.fullName) from the \"\(g.name)\" group?"
-                        let notif = UIAlertController(title: nil, message: message, preferredStyle: .actionSheet)
+                        let notif = LibAlertController(title: nil, message: message, preferredStyle: .actionSheet)
                         notif.addAction(UIAlertAction(title: "Remove".localized(), style: .destructive, handler: { notifAction in
                             self.exitGroup(pin: member.pin) { result in
                                 if result, let index = g.members.firstIndex(of: member) {
@@ -631,7 +631,7 @@ class GroupDetailViewController: UITableViewController {
                     message = "Are you sure want to exit the group?".localized()
 //                    message = "Are you sure want to exit the \"\(g.name)\" group?".localized()
                 }
-                let alert = UIAlertController(title: nil, message: message, preferredStyle: .actionSheet)
+                let alert = LibAlertController(title: nil, message: message, preferredStyle: .actionSheet)
                 alert.addAction(UIAlertAction(title: isDeleted ? "Delete Group".localized() : "Exit Group".localized(), style: .destructive, handler: { action in
                     self.exitGroup(pin: isDeleted ? "ALL": UserDefaults.standard.string(forKey: "me")!) { result in
                         if result {

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

@@ -33,7 +33,7 @@ open class ImageVideoPicker: NSObject {
             isBlackCancelButton = UIBarButtonItem.appearance().titleTextAttributes(for: .normal)?.values.first as! NSObject == UIColor.black
         }
         if !isBlackCancelButton {
-            let cancelButtonAttributes = [NSAttributedString.Key.foregroundColor: UIColor.black]
+            let cancelButtonAttributes = [NSAttributedString.Key.foregroundColor: UIColor.black, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
             UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes , for: .normal)
         }
     }
@@ -73,7 +73,7 @@ open class ImageVideoPicker: NSObject {
     
     private func pickerController(_ controller: UIImagePickerController, didSelect imagevideo: Any?) {
         if !isBlackCancelButton {
-            let cancelButtonAttributes = [NSAttributedString.Key.foregroundColor: UIColor.white]
+            let cancelButtonAttributes = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
             UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes , for: .normal)
         }
         controller.dismiss(animated: false, completion: nil)

+ 8 - 9
appbuilder-ios/NexilisLite/NexilisLite/Source/View/Control/ProfileViewController.swift

@@ -83,7 +83,7 @@ public class ProfileViewController: UITableViewController {
                     if let me = UserDefaults.standard.string(forKey: "me"), me == self.data || self.flag == Flag.me {
                         Database.shared.database?.inTransaction({ fmdb, rollback in
                             let idMe = UserDefaults.standard.string(forKey: "me")!
-                            if let cursorCount = Database.shared.getRecords(fmdb: fmdb, query: "select COUNT(*) from BUDDY where f_pin <> '\(idMe)' "), cursorCount.next() {
+                            if let cursorCount = Database.shared.getRecords(fmdb: fmdb, query: "select COUNT(*) from BUDDY where f_pin <> '\(idMe)' and first_name NOT LIKE 'USR%' "), cursorCount.next() {
                                 let count = cursorCount.string(forColumnIndex: 0)!
                                 self.countFriend.text = count + " " + "Friends".localized()
                                 self.countFriend.font = .systemFont(ofSize: 12)
@@ -135,7 +135,7 @@ public class ProfileViewController: UITableViewController {
             r = User.getData(pin: self.data)
             Database.shared.database?.inTransaction({ fmdb, rollback in
                 let idMe = UserDefaults.standard.string(forKey: "me")!
-                if let cursorCount = Database.shared.getRecords(fmdb: fmdb, query: "select COUNT(*) from BUDDY where f_pin <> '\(idMe)' "), cursorCount.next() {
+                if let cursorCount = Database.shared.getRecords(fmdb: fmdb, query: "select COUNT(*) from BUDDY where f_pin <> '\(idMe)' and first_name NOT LIKE 'USR%' "), cursorCount.next() {
                     DispatchQueue.main.async {
                         self.countFriend.text = cursorCount.string(forColumnIndex: 0) ?? "" + " " + "Friends".localized()
                     }
@@ -164,7 +164,7 @@ public class ProfileViewController: UITableViewController {
             if let me = UserDefaults.standard.string(forKey: "me"), me == self.data || self.flag == Flag.me {
                 Database.shared.database?.inTransaction({ fmdb, rollback in
                     let idMe = UserDefaults.standard.string(forKey: "me")!
-                    if let cursorCount = Database.shared.getRecords(fmdb: fmdb, query: "select COUNT(*) from BUDDY where f_pin <> '\(idMe)' "), cursorCount.next() {
+                    if let cursorCount = Database.shared.getRecords(fmdb: fmdb, query: "select COUNT(*) from BUDDY where f_pin <> '\(idMe)' and first_name NOT LIKE 'USR%'"), cursorCount.next() {
                         let count = cursorCount.string(forColumnIndex: 0)!
                         self.countFriend.text = count + " " + "Friends".localized()
                         cursorCount.close()
@@ -204,7 +204,7 @@ public class ProfileViewController: UITableViewController {
         labelPrivateAccount.text = "Private Account Mode".localized()
         labelChangePassword.text = "Change Password".localized()
         labelAcceptCall.text = "Accept Call".localized()
-        buttonHistoryCC.setTitle("Call Center History".localized(), for: .normal)
+        buttonHistoryCC.setAttributedTitle(NSAttributedString(string: "Call Center History".localized(), attributes: [NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]), for: .normal)
         navigationController?.navigationBar.topItem?.backButtonTitle = "Back".localized()
         if let me = UserDefaults.standard.string(forKey: "me"), me == data || flag == Flag.me {
             buttonGroup.removeFromSuperview()
@@ -446,9 +446,9 @@ public class ProfileViewController: UITableViewController {
     func didTapProfile() {
         if let userImage = user?.thumb {
             if !userImage.isEmpty {
-                let firstAlert = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
+                let firstAlert = LibAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
                 firstAlert.addAction(UIAlertAction(title: "Change Profile Picture".localized(), style: .default, handler: { action in
-                    let alert = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
+                    let alert = LibAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
                     alert.addAction(UIAlertAction(title: "Take Photo".localized(), style: .default, handler: { action in
                         self.imageVideoPicker.present(source: .imageCamera)
                     }))
@@ -486,7 +486,7 @@ public class ProfileViewController: UITableViewController {
                 firstAlert.addAction(UIAlertAction(title: "Cancel".localized(), style: .cancel, handler: nil))
                 self.navigationController?.present(firstAlert, animated: true)
             } else {
-                let alert = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
+                let alert = LibAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
                 alert.addAction(UIAlertAction(title: "Take Photo".localized(), style: .default, handler: { action in
                     self.imageVideoPicker.present(source: .imageCamera)
                 }))
@@ -538,7 +538,7 @@ public class ProfileViewController: UITableViewController {
             message.isEnabled = false
         }
         Nexilis.shared.stateUnfriend = self.data
-        let alert = UIAlertController(title: "", message: "Are you sure to unfriend".localized() + " \(self.user!.fullName)", preferredStyle: .alert)
+        let alert = LibAlertController(title: "", message: "Are you sure to unfriend".localized() + " \(self.user!.fullName)", preferredStyle: .alert)
         alert.addAction(UIAlertAction(title: "Cancel".localized(), style: UIAlertAction.Style.default, handler: {(_) in
             if self.call != nil {
                 self.call.isEnabled = true
@@ -633,7 +633,6 @@ public class ProfileViewController: UITableViewController {
     @objc func friendsTapped() {
         if let me = UserDefaults.standard.string(forKey: "me"), me == data || flag == Flag.me {
             let controller = QmeraCallContactViewController()
-            controller.modalPresentationStyle = .custom
             controller.isInviteCC = true
             controller.listFriends = true
             show(controller, sender: nil)

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

@@ -106,7 +106,7 @@ public class SetInternalCSAccount: UITableViewController {
     }
     
     private func setInternalCS(user: User) {
-        let alert = UIAlertController(title: "", message: "Are you sure want to set".localized() + " \(user.fullName) " + (isSetCS ? "become CS Account?".localized() : "become Internal Account?".localized()), preferredStyle: .alert)
+        let alert = LibAlertController(title: "", message: "Are you sure want to set".localized() + " \(user.fullName) " + (isSetCS ? "become CS Account?".localized() : "become Internal Account?".localized()), preferredStyle: .alert)
         alert.addAction(UIAlertAction(title: "No".localized(), style: .default, handler: nil))
         alert.addAction(UIAlertAction(title: "Yes".localized(), style: .default, handler: {(_) in
             Nexilis.showLoader()
@@ -150,7 +150,7 @@ public class SetInternalCSAccount: UITableViewController {
     }
     
     private func unsetInternalCS(user: User) {
-        let alert = UIAlertController(title: "", message: "Are you sure want to unset".localized() + " \(user.fullName) " + (isSetCS ? "from CS Account?".localized() : "from Internal Account?".localized()), preferredStyle: .alert)
+        let alert = LibAlertController(title: "", message: "Are you sure want to unset".localized() + " \(user.fullName) " + (isSetCS ? "from CS Account?".localized() : "from Internal Account?".localized()), preferredStyle: .alert)
         alert.addAction(UIAlertAction(title: "No".localized(), style: UIAlertAction.Style.default, handler: nil))
         alert.addAction(UIAlertAction(title: "Yes".localized(), style: .destructive, handler: {(_) in
             Nexilis.showLoader()

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

@@ -266,7 +266,7 @@ class SetOfficerBNI: UIViewController {
         pickerView.centerXAnchor.constraint(equalTo: vc.view.centerXAnchor).isActive = true
         pickerView.centerYAnchor.constraint(equalTo: vc.view.centerYAnchor).isActive = true
         
-        let alert = UIAlertController(title: titleChooser, message: "", preferredStyle: .actionSheet)
+        let alert = LibAlertController(title: titleChooser, message: "", preferredStyle: .actionSheet)
         
         alert.setValue(vc, forKey: "contentViewController")
         alert.addAction(UIAlertAction(title: "Cancel".localized(), style: .cancel, handler: { (UIAlertAction) in
@@ -340,7 +340,7 @@ class SetOfficerBNI: UIViewController {
     }
     
     @objc func setOfficer() {
-        let alert = UIAlertController(title: "Set Officer Account".localized(), message: "Are you sure want to add \(name) to Officer Account category \(self.chosenData[self.chosenData.count - 1].service_name)?", preferredStyle: .alert)
+        let alert = LibAlertController(title: "Set Officer Account".localized(), message: "Are you sure want to add \(name) to Officer Account category \(self.chosenData[self.chosenData.count - 1].service_name)?", preferredStyle: .alert)
         alert.addAction(UIAlertAction(title: "Yes".localized(), style: .default, handler: { (action) -> Void in
             if !CheckConnection.isConnectedToNetwork()  || API.nGetCLXConnState() == 0 {
                 let imageView = UIImageView(image: UIImage(systemName: "xmark.circle.fill"))

+ 10 - 10
appbuilder-ios/NexilisLite/NexilisLite/Source/View/Control/SettingTableViewController.swift

@@ -375,7 +375,7 @@ public class SettingTableViewController: UITableViewController, UIGestureRecogni
                     banner.show()
                     return
                 }
-                let alertController = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
+                let alertController = LibAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
                 if(item.title.contains("Change")){
                     if let action = self.actionChangePassword(for: "admin", title: "Change Admin Password".localized()) {
                         alertController.addAction(action)
@@ -414,7 +414,7 @@ public class SettingTableViewController: UITableViewController, UIGestureRecogni
             pickerView.centerXAnchor.constraint(equalTo: vc.view.centerXAnchor).isActive = true
             pickerView.centerYAnchor.constraint(equalTo: vc.view.centerYAnchor).isActive = true
             
-            let alert = UIAlertController(title: "Select Language".localized(), message: "", preferredStyle: .actionSheet)
+            let alert = LibAlertController(title: "Select Language".localized(), message: "", preferredStyle: .actionSheet)
             
             alert.setValue(vc, forKey: "contentViewController")
             alert.addAction(UIAlertAction(title: "Cancel".localized(), style: .cancel, handler: { (UIAlertAction) in
@@ -445,7 +445,7 @@ public class SettingTableViewController: UITableViewController, UIGestureRecogni
             }
             navigationController?.show(controller, sender: nil)
         } else if item.title == "Sign-Out".localized() {
-            let alert = UIAlertController(title: "Sign-Out".localized(), message: "Are you sure want to logout?".localized(), preferredStyle: .alert)
+            let alert = LibAlertController(title: "Sign-Out".localized(), message: "Are you sure want to logout?".localized(), preferredStyle: .alert)
             alert.addAction(UIAlertAction(title: "Cancel".localized(), style: UIAlertAction.Style.default, handler: nil))
             alert.addAction(UIAlertAction(title: "Yes".localized(), style: .destructive, handler: {(_) in
                 if !CheckConnection.isConnectedToNetwork()  || API.nGetCLXConnState() == 0 {
@@ -528,7 +528,7 @@ public class SettingTableViewController: UITableViewController, UIGestureRecogni
             }
             
             if permissionCheck == 0 {
-                let alert = UIAlertController(title: "Attention!".localized(), message: "Please allow camera permission in your settings".localized(), preferredStyle: .alert)
+                let alert = LibAlertController(title: "Attention!".localized(), message: "Please allow camera permission in your settings".localized(), preferredStyle: .alert)
                 alert.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: { _ in
                     if let url = URL(string: UIApplication.openSettingsURLString), UIApplication.shared.canOpenURL(url) {
                         UIApplication.shared.open(url, options: [:], completionHandler: nil)
@@ -546,7 +546,7 @@ public class SettingTableViewController: UITableViewController, UIGestureRecogni
             navigationController.navigationBar.tintColor = .white
             navigationController.navigationBar.barTintColor = .mainColor
             navigationController.navigationBar.isTranslucent = false
-            let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+            let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
             UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
             let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
             navigationController.navigationBar.titleTextAttributes = textAttributes
@@ -566,7 +566,7 @@ public class SettingTableViewController: UITableViewController, UIGestureRecogni
             navigationController.navigationBar.isTranslucent = false
             navigationController.navigationBar.overrideUserInterfaceStyle = .dark
             navigationController.navigationBar.barStyle = .black
-            let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white]
+            let cancelButtonAttributes: [NSAttributedString.Key: Any] = [NSAttributedString.Key.foregroundColor: UIColor.white, NSAttributedString.Key.font : UIFont.systemFont(ofSize: 16)]
             UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes, for: .normal)
             let textAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
             navigationController.navigationBar.titleTextAttributes = textAttributes
@@ -587,9 +587,9 @@ public class SettingTableViewController: UITableViewController, UIGestureRecogni
     
     private func actionLogin(for type: String, title: String) -> UIAlertAction? {
         return UIAlertAction(title: title, style: .default) { _ in
-            self.alert = UIAlertController(title:"Access Admin Features".localized(), message: nil, preferredStyle: .alert)
+            self.alert = LibAlertController(title:"Access Admin Features".localized(), message: nil, preferredStyle: .alert)
             if type == "internal" {
-                self.alert = UIAlertController(title: "Access Internal Features".localized(), message: nil, preferredStyle: .alert)
+                self.alert = LibAlertController(title: "Access Internal Features".localized(), message: nil, preferredStyle: .alert)
             }
             self.textFields.removeAll()
             self.alert?.addTextField{ (texfield) in
@@ -666,9 +666,9 @@ public class SettingTableViewController: UITableViewController, UIGestureRecogni
     
     private func actionChangePassword(for type: String, title: String) -> UIAlertAction? {
         return UIAlertAction(title: title, style: .default) { _ in
-            self.alert = UIAlertController(title: "Change Admin Password".localized(), message: nil, preferredStyle: .alert)
+            self.alert = LibAlertController(title: "Change Admin Password".localized(), message: nil, preferredStyle: .alert)
             if type == "internal" {
-                self.alert = UIAlertController(title: "Change Internal Password".localized(), message: nil, preferredStyle: .alert)
+                self.alert = LibAlertController(title: "Change Internal Password".localized(), message: nil, preferredStyle: .alert)
             }
             self.textFields.removeAll()
             self.alert?.addTextField{ (texfield) in

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

@@ -168,7 +168,7 @@ public class CreateSeminarViewController: UITableViewController {
         } else {
             let goAudioCall = Nexilis.checkMicPermission()
             if !goAudioCall {
-                let alert = UIAlertController(title: "Attention!".localized(), message: "Please allow microphone permission in your settings".localized(), preferredStyle: .alert)
+                let alert = LibAlertController(title: "Attention!".localized(), message: "Please allow microphone permission in your settings".localized(), preferredStyle: .alert)
                 alert.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: { _ in
                     if let url = URL(string: UIApplication.openSettingsURLString), UIApplication.shared.canOpenURL(url) {
                         UIApplication.shared.open(url, options: [:], completionHandler: nil)
@@ -201,7 +201,7 @@ public class CreateSeminarViewController: UITableViewController {
             }
             
             if permissionCheck == 0 {
-                let alert = UIAlertController(title: "Attention!".localized(), message: "Please allow camera permission in your settings".localized(), preferredStyle: .alert)
+                let alert = LibAlertController(title: "Attention!".localized(), message: "Please allow camera permission in your settings".localized(), preferredStyle: .alert)
                 alert.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: { _ in
                     if let url = URL(string: UIApplication.openSettingsURLString), UIApplication.shared.canOpenURL(url) {
                         UIApplication.shared.open(url, options: [:], completionHandler: nil)

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

@@ -186,7 +186,7 @@ public class QmeraCreateStreamingViewController: UITableViewController {
         } else {
             let goAudioCall = Nexilis.checkMicPermission()
             if !goAudioCall {
-                let alert = UIAlertController(title: "Attention!".localized(), message: "Please allow microphone permission in your settings".localized(), preferredStyle: .alert)
+                let alert = LibAlertController(title: "Attention!".localized(), message: "Please allow microphone permission in your settings".localized(), preferredStyle: .alert)
                 alert.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: { _ in
                     if let url = URL(string: UIApplication.openSettingsURLString), UIApplication.shared.canOpenURL(url) {
                         UIApplication.shared.open(url, options: [:], completionHandler: nil)
@@ -219,7 +219,7 @@ public class QmeraCreateStreamingViewController: UITableViewController {
             }
             
             if permissionCheck == 0 {
-                let alert = UIAlertController(title: "Attention!".localized(), message: "Please allow camera permission in your settings".localized(), preferredStyle: .alert)
+                let alert = LibAlertController(title: "Attention!".localized(), message: "Please allow camera permission in your settings".localized(), preferredStyle: .alert)
                 alert.addAction(UIAlertAction(title: "OK".localized(), style: UIAlertAction.Style.default, handler: { _ in
                     if let url = URL(string: UIApplication.openSettingsURLString), UIApplication.shared.canOpenURL(url) {
                         UIApplication.shared.open(url, options: [:], completionHandler: nil)

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

@@ -279,9 +279,9 @@ class QmeraStreamingViewController: UIViewController {
     
     @objc func close(sender: Any?) {
         hideKeyboard()
-        var alert = UIAlertController(title: "", message: "Are you sure you want to end Live Streaming?".localized(), preferredStyle: .alert)
+        var alert = LibAlertController(title: "", message: "Are you sure you want to end Live Streaming?".localized(), preferredStyle: .alert)
         if !isLive {
-            alert = UIAlertController(title: "", message: "Are you sure you want to leave Live Streaming?".localized(), preferredStyle: .alert)
+            alert = LibAlertController(title: "", message: "Are you sure you want to leave Live Streaming?".localized(), preferredStyle: .alert)
         }
         alert.addAction(UIAlertAction(title: "No".localized(), style: UIAlertAction.Style.default, handler: nil))
         alert.addAction(UIAlertAction(title: "Yes".localized(), style: UIAlertAction.Style.default, handler: {[weak self] _ in

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

@@ -98,7 +98,7 @@ class SeminarListViewController: UIViewController {
     
     func showChooserButtonTapped(viewer: SeminarViewer) {
         // Create an instance of the alert controller with the action sheet style
-        let alertController = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
+        let alertController = LibAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
         
         // Add action buttons to the alert controller
         var actionTitle = "Make Speaker"

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

@@ -390,9 +390,9 @@ class SeminarViewController: UIViewController {
     
     @objc func close(sender: Any?) {
         hideKeyboard()
-        var alert = UIAlertController(title: "", message: "Are you sure you want to end Seminar?".localized(), preferredStyle: .alert)
+        var alert = LibAlertController(title: "", message: "Are you sure you want to end Seminar?".localized(), preferredStyle: .alert)
         if !isLive {
-            alert = UIAlertController(title: "", message: "Are you sure you want to leave Seminar?".localized(), preferredStyle: .alert)
+            alert = LibAlertController(title: "", message: "Are you sure you want to leave Seminar?".localized(), preferredStyle: .alert)
         }
         alert.addAction(UIAlertAction(title: "No".localized(), style: UIAlertAction.Style.default, handler: nil))
         alert.addAction(UIAlertAction(title: "Yes".localized(), style: UIAlertAction.Style.default, handler: {[weak self] _ in