alqindiirsyam 2 роки тому
батько
коміт
abf4cb495b

+ 39 - 0
appbuilder-ios/AppBuilder/AppBuilder/ViewController.swift

@@ -129,6 +129,13 @@ class ViewController: UITabBarController, UITabBarControllerDelegate, SettingMAB
         thirdTab?.tabBarItem.imageInsets = UIEdgeInsets.init(top: 5,left: 0,bottom: -5,right: 0)
         fourthTab?.tabBarItem.image = resizeImage(image: UIImage(named: "tab_4_icon")!, targetSize: CGSize(width: 25, height: 25)).withRenderingMode(.alwaysOriginal)
         fourthTab?.tabBarItem.imageInsets = UIEdgeInsets.init(top: 5,left: 0,bottom: -5,right: 0)
+        let iPhoneModel = getiPhoneModel()
+        if iPhoneModel == "iPhone X or newer" {
+            firstTab?.tabBarItem.imageInsets = UIEdgeInsets.init(top: 25,left: 0,bottom: -25,right: 0)
+            secondTab?.tabBarItem.imageInsets = UIEdgeInsets.init(top: 25,left: 0,bottom: -25,right: 0)
+            thirdTab?.tabBarItem.imageInsets = UIEdgeInsets.init(top: 25,left: 0,bottom: -25,right: 0)
+            fourthTab?.tabBarItem.imageInsets = UIEdgeInsets.init(top: 25,left: 0,bottom: -25,right: 0)
+        }
         var i = 0
         var j = 0
         while j < customTab.count {
@@ -224,6 +231,34 @@ class ViewController: UITabBarController, UITabBarControllerDelegate, SettingMAB
         checkCounter()
     }
     
+    func getiPhoneModel() -> String {
+        var systemInfo = utsname()
+        uname(&systemInfo)
+        let machineMirror = Mirror(reflecting: systemInfo.machine)
+        let identifier = machineMirror.children.reduce("") { identifier, element in
+            guard let value = element.value as? Int8, value != 0 else { return identifier }
+            return identifier + String(UnicodeScalar(UInt8(value)))
+        }
+        
+        var model = ""
+        
+        if let modelName = mapToDevice(identifier: identifier) {
+            model = modelName
+        } else {
+            model = "Unknown"
+        }
+        
+        return model
+    }
+
+    func mapToDevice(identifier: String) -> String? {
+        // Add mappings for iPhone models as needed
+        switch identifier {
+            case "iPhone1,1", "iPhone1,2", "iPhone2,1", "iPhone3,1", "iPhone3,2", "iPhone3,3", "iPhone4,1", "iPhone5,1", "iPhone5,2", "iPhone5,3", "iPhone5,4", "iPhone6,1", "iPhone6,2", "iPhone7,1", "iPhone7,2", "iPhone8,1", "iPhone8,2", "iPhone8,4", "iPhone9,1", "iPhone9,2", "iPhone9,3", "iPhone9,4", "iPhone10,1", "iPhone10,2", "iPhone10,4", "iPhone10,5": return "iPhone under X"
+            default: return "iPhone X or newer"
+        }
+    }
+    
     func getPrefs(key: String) -> TMessage {
         let tMessage = NexilisLite.TMessage()
         let me = UserDefaults.standard.string(forKey: "me")
@@ -454,6 +489,10 @@ class ViewController: UITabBarController, UITabBarControllerDelegate, SettingMAB
         //print("buttonCenterX \(buttonCenterX)")
         //print("buttonCenterY \(buttonCenterY)")
         ViewController.middleButton = UIButton(frame: CGRect(x: buttonCenterX - 40 , y: buttonCenterY - 40, width: 80, height: 80))
+        let iPhoneModel = getiPhoneModel()
+        if iPhoneModel == "iPhone X or newer" {
+            ViewController.middleButton = UIButton(frame: CGRect(x: buttonCenterX - 40 , y: buttonCenterY - 60, width: 80, height: 80))
+        }
         if PrefsUtil.getIconDock() != nil {
             DispatchQueue.global().async {
                 ViewController.getDataImageFromUrl(from: URL(string: PrefsUtil.getUrlDock()!)!) { data, response, error in

BIN
appbuilder-ios/DigiXLite/DigiXLite.xcworkspace/xcuserdata/akhmadalqindiirsyam.xcuserdatad/UserInterfaceState.xcuserstate


+ 65 - 67
appbuilder-ios/DigiXLite/DigiXLite/Source/DigiX.swift

@@ -146,83 +146,81 @@ public class DigiX: NSObject {
             DigiX.dispatch = nil
             
 //            DigiX.initiateAudio()
-            DispatchQueue.main.async {
-                if(!id.isEmpty && (UserDefaults.standard.string(forKey: "me") == nil)){
-                    if let response = DigiX.writeSync(message: CoreMessage_TMessageBank.getSignUpApi(api: apiKey, p_pin: id), timeout: 30 * 1000){
-                        id = response.getBody(key: CoreMessage_TMessageKey.F_PIN, default_value: "")
-                        let enable_signup = (response.getBody(key: CoreMessage_TMessageKey.IS_ENABLED_ANONYMOUS, default_value: "0")) == "1"
-                        Utils.setForceAnonymous(value: enable_signup)
-                        if(!id.isEmpty) {
-                            DigiX.changeUser(f_pin: id)
-                            UserDefaults.standard.setValue(id, forKey: "me")
-                        }
+            if(!id.isEmpty && (UserDefaults.standard.string(forKey: "me") == nil)){
+                if let response = DigiX.writeSync(message: CoreMessage_TMessageBank.getSignUpApi(api: apiKey, p_pin: id), timeout: 30 * 1000){
+                    id = response.getBody(key: CoreMessage_TMessageKey.F_PIN, default_value: "")
+                    let enable_signup = (response.getBody(key: CoreMessage_TMessageKey.IS_ENABLED_ANONYMOUS, default_value: "0")) == "1"
+                    Utils.setForceAnonymous(value: enable_signup)
+                    if(!id.isEmpty) {
+                        DigiX.changeUser(f_pin: id)
+                        UserDefaults.standard.setValue(id, forKey: "me")
                     }
                 }
+            }
 
-                if UserDefaults.standard.string(forKey: "apiKey") == nil {
-                    UserDefaults.standard.setValue(apiKey, forKey: "apiKey")
-                }
-                
-                if let me = UserDefaults.standard.string(forKey: "me") {
-                    if Utils.getForceAnonymous() || (!Utils.getForceAnonymous() && Utils.getSetProfile()) {
-                        Database.shared.database?.inTransaction({ (fmdb, rollback) in
-                            if let cursorData = Database.shared.getRecords(fmdb: fmdb, query: "SELECT * FROM BUDDY where f_pin = '\(me)' ") {
-                                if !cursorData.next() {
-                                    _ = DigiX.write(message: CoreMessage_TMessageBank.getPostRegistration(p_pin: me))
-                                }
-                                cursorData.close()
-                            }
-                        })
-                        Database.shared.database?.inTransaction({ (fmdb, rollback) in
-                            if let cursorData = Database.shared.getRecords(fmdb: fmdb, query: "SELECT image_id FROM GROUPZ where group_type = 1 AND official = 1"), cursorData.next() {
-                                do {
-                                    let documentDir = try FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true)
-                                    let file = documentDir.appendingPathComponent(cursorData.string(forColumnIndex: 0)!)
-                                    if !FileManager().fileExists(atPath: file.path) {
-                                        Download().startHTTP(forKey: cursorData.string(forColumnIndex: 0)!) { (name, progress) in}
-                                    }
-                                } catch {}
-                                cursorData.close()
+            if UserDefaults.standard.string(forKey: "apiKey") == nil {
+                UserDefaults.standard.setValue(apiKey, forKey: "apiKey")
+            }
+            
+            if let me = UserDefaults.standard.string(forKey: "me") {
+                if Utils.getForceAnonymous() || (!Utils.getForceAnonymous() && Utils.getSetProfile()) {
+                    Database.shared.database?.inTransaction({ (fmdb, rollback) in
+                        if let cursorData = Database.shared.getRecords(fmdb: fmdb, query: "SELECT * FROM BUDDY where f_pin = '\(me)' ") {
+                            if !cursorData.next() {
+                                _ = DigiX.write(message: CoreMessage_TMessageBank.getPostRegistration(p_pin: me))
                             }
-                        })
-                    }
-                    getServiceBank()
-                    getPullWorkingArea()
-                    getPullGroupNoMember()
-                    delegate.onSuccess(userId: me)
-                    getPullDefaultCC()
-                    if showButton {
-                        DispatchQueue.main.async {
-                            var viewController = UIApplication.shared.windows.first?.rootViewController
-                            var notNull = false
-                            while !notNull {
-                                viewController = UIApplication.shared.windows.first?.rootViewController
-                                if viewController != nil {
-                                    notNull = true
+                            cursorData.close()
+                        }
+                    })
+                    Database.shared.database?.inTransaction({ (fmdb, rollback) in
+                        if let cursorData = Database.shared.getRecords(fmdb: fmdb, query: "SELECT image_id FROM GROUPZ where group_type = 1 AND official = 1"), cursorData.next() {
+                            do {
+                                let documentDir = try FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true)
+                                let file = documentDir.appendingPathComponent(cursorData.string(forColumnIndex: 0)!)
+                                if !FileManager().fileExists(atPath: file.path) {
+                                    Download().startHTTP(forKey: cursorData.string(forColumnIndex: 0)!) { (name, progress) in}
                                 }
+                            } catch {}
+                            cursorData.close()
+                        }
+                    })
+                }
+                getServiceBank()
+                getPullWorkingArea()
+                getPullGroupNoMember()
+                delegate.onSuccess(userId: me)
+                getPullDefaultCC()
+                if showButton {
+                    DispatchQueue.main.async {
+                        var viewController = UIApplication.shared.windows.first?.rootViewController
+                        var notNull = false
+                        while !notNull {
+                            viewController = UIApplication.shared.windows.first?.rootViewController
+                            if viewController != nil {
+                                notNull = true
                             }
-                            let fb = FloatingButton()
-                            if fromMAB {
-                                var vc = viewController
-                                if viewController is UINavigationController {
-                                    vc = (viewController as! UINavigationController).rootViewController
-                                }
-                                vc?.view.addSubview(fb)
-                                fb.mySettingDelegate = vc as? any SettingMABDelegate
-                            } else {
-                                viewController?.view.addSubview(fb)
+                        }
+                        let fb = FloatingButton()
+                        if fromMAB {
+                            var vc = viewController
+                            if viewController is UINavigationController {
+                                vc = (viewController as! UINavigationController).rootViewController
                             }
+                            vc?.view.addSubview(fb)
+                            fb.mySettingDelegate = vc as? any SettingMABDelegate
+                        } else {
+                            viewController?.view.addSubview(fb)
                         }
                     }
                 }
-                DigiX.destroyAll()
-                OutgoingThread.default.run()
-                
-                InquiryThread.default.run()
-                
-                if UIFont.systemFont(ofSize: 12).familyName == ".AppleSystemUIFont" {
-                    UIFont.libOverrideInitialize()
-                }
+            }
+            DigiX.destroyAll()
+            OutgoingThread.default.run()
+            
+            InquiryThread.default.run()
+            
+            if UIFont.systemFont(ofSize: 12).familyName == ".AppleSystemUIFont" {
+                UIFont.libOverrideInitialize()
             }
             //print(("MANIA \(UIFont.systemFont(ofSize: 12)) <> \(UIFont.italicSystemFont(ofSize: 12)) <> \(UIFont.boldSystemFont(ofSize: 12))")
         }

+ 65 - 67
appbuilder-ios/NexilisLite/NexilisLite/Source/Nexilis.swift

@@ -146,83 +146,81 @@ public class Nexilis: NSObject {
             Nexilis.dispatch = nil
             
 //            Nexilis.initiateAudio()
-            DispatchQueue.main.async {
-                if(!id.isEmpty && (UserDefaults.standard.string(forKey: "me") == nil)){
-                    if let response = Nexilis.writeSync(message: CoreMessage_TMessageBank.getSignUpApi(api: apiKey, p_pin: id), timeout: 30 * 1000){
-                        id = response.getBody(key: CoreMessage_TMessageKey.F_PIN, default_value: "")
-                        let enable_signup = (response.getBody(key: CoreMessage_TMessageKey.IS_ENABLED_ANONYMOUS, default_value: "0")) == "1"
-                        Utils.setForceAnonymous(value: enable_signup)
-                        if(!id.isEmpty) {
-                            Nexilis.changeUser(f_pin: id)
-                            UserDefaults.standard.setValue(id, forKey: "me")
-                        }
+            if(!id.isEmpty && (UserDefaults.standard.string(forKey: "me") == nil)){
+                if let response = Nexilis.writeSync(message: CoreMessage_TMessageBank.getSignUpApi(api: apiKey, p_pin: id), timeout: 30 * 1000){
+                    id = response.getBody(key: CoreMessage_TMessageKey.F_PIN, default_value: "")
+                    let enable_signup = (response.getBody(key: CoreMessage_TMessageKey.IS_ENABLED_ANONYMOUS, default_value: "0")) == "1"
+                    Utils.setForceAnonymous(value: enable_signup)
+                    if(!id.isEmpty) {
+                        Nexilis.changeUser(f_pin: id)
+                        UserDefaults.standard.setValue(id, forKey: "me")
                     }
                 }
+            }
 
-                if UserDefaults.standard.string(forKey: "apiKey") == nil {
-                    UserDefaults.standard.setValue(apiKey, forKey: "apiKey")
-                }
-                
-                if let me = UserDefaults.standard.string(forKey: "me") {
-                    if Utils.getForceAnonymous() || (!Utils.getForceAnonymous() && Utils.getSetProfile()) {
-                        Database.shared.database?.inTransaction({ (fmdb, rollback) in
-                            if let cursorData = Database.shared.getRecords(fmdb: fmdb, query: "SELECT * FROM BUDDY where f_pin = '\(me)' ") {
-                                if !cursorData.next() {
-                                    _ = Nexilis.write(message: CoreMessage_TMessageBank.getPostRegistration(p_pin: me))
-                                }
-                                cursorData.close()
-                            }
-                        })
-                        Database.shared.database?.inTransaction({ (fmdb, rollback) in
-                            if let cursorData = Database.shared.getRecords(fmdb: fmdb, query: "SELECT image_id FROM GROUPZ where group_type = 1 AND official = 1"), cursorData.next() {
-                                do {
-                                    let documentDir = try FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true)
-                                    let file = documentDir.appendingPathComponent(cursorData.string(forColumnIndex: 0)!)
-                                    if !FileManager().fileExists(atPath: file.path) {
-                                        Download().startHTTP(forKey: cursorData.string(forColumnIndex: 0)!) { (name, progress) in}
-                                    }
-                                } catch {}
-                                cursorData.close()
+            if UserDefaults.standard.string(forKey: "apiKey") == nil {
+                UserDefaults.standard.setValue(apiKey, forKey: "apiKey")
+            }
+            
+            if let me = UserDefaults.standard.string(forKey: "me") {
+                if Utils.getForceAnonymous() || (!Utils.getForceAnonymous() && Utils.getSetProfile()) {
+                    Database.shared.database?.inTransaction({ (fmdb, rollback) in
+                        if let cursorData = Database.shared.getRecords(fmdb: fmdb, query: "SELECT * FROM BUDDY where f_pin = '\(me)' ") {
+                            if !cursorData.next() {
+                                _ = Nexilis.write(message: CoreMessage_TMessageBank.getPostRegistration(p_pin: me))
                             }
-                        })
-                    }
-                    getServiceBank()
-                    getPullWorkingArea()
-                    getPullGroupNoMember()
-                    delegate.onSuccess(userId: me)
-                    getPullDefaultCC()
-                    if showButton {
-                        DispatchQueue.main.async {
-                            var viewController = UIApplication.shared.windows.first?.rootViewController
-                            var notNull = false
-                            while !notNull {
-                                viewController = UIApplication.shared.windows.first?.rootViewController
-                                if viewController != nil {
-                                    notNull = true
+                            cursorData.close()
+                        }
+                    })
+                    Database.shared.database?.inTransaction({ (fmdb, rollback) in
+                        if let cursorData = Database.shared.getRecords(fmdb: fmdb, query: "SELECT image_id FROM GROUPZ where group_type = 1 AND official = 1"), cursorData.next() {
+                            do {
+                                let documentDir = try FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true)
+                                let file = documentDir.appendingPathComponent(cursorData.string(forColumnIndex: 0)!)
+                                if !FileManager().fileExists(atPath: file.path) {
+                                    Download().startHTTP(forKey: cursorData.string(forColumnIndex: 0)!) { (name, progress) in}
                                 }
+                            } catch {}
+                            cursorData.close()
+                        }
+                    })
+                }
+                getServiceBank()
+                getPullWorkingArea()
+                getPullGroupNoMember()
+                delegate.onSuccess(userId: me)
+                getPullDefaultCC()
+                if showButton {
+                    DispatchQueue.main.async {
+                        var viewController = UIApplication.shared.windows.first?.rootViewController
+                        var notNull = false
+                        while !notNull {
+                            viewController = UIApplication.shared.windows.first?.rootViewController
+                            if viewController != nil {
+                                notNull = true
                             }
-                            let fb = FloatingButton()
-                            if fromMAB {
-                                var vc = viewController
-                                if viewController is UINavigationController {
-                                    vc = (viewController as! UINavigationController).rootViewController
-                                }
-                                vc?.view.addSubview(fb)
-                                fb.mySettingDelegate = vc as? any SettingMABDelegate
-                            } else {
-                                viewController?.view.addSubview(fb)
+                        }
+                        let fb = FloatingButton()
+                        if fromMAB {
+                            var vc = viewController
+                            if viewController is UINavigationController {
+                                vc = (viewController as! UINavigationController).rootViewController
                             }
+                            vc?.view.addSubview(fb)
+                            fb.mySettingDelegate = vc as? any SettingMABDelegate
+                        } else {
+                            viewController?.view.addSubview(fb)
                         }
                     }
                 }
-                Nexilis.destroyAll()
-                OutgoingThread.default.run()
-                
-                InquiryThread.default.run()
-                
-                if UIFont.systemFont(ofSize: 12).familyName == ".AppleSystemUIFont" {
-                    UIFont.libOverrideInitialize()
-                }
+            }
+            Nexilis.destroyAll()
+            OutgoingThread.default.run()
+            
+            InquiryThread.default.run()
+            
+            if UIFont.systemFont(ofSize: 12).familyName == ".AppleSystemUIFont" {
+                UIFont.libOverrideInitialize()
             }
             //print("MANIA \(UIFont.systemFont(ofSize: 12)) <> \(UIFont.italicSystemFont(ofSize: 12)) <> \(UIFont.boldSystemFont(ofSize: 12))")
         }