alqindiirsyam %!s(int64=3) %!d(string=hai) anos
pai
achega
172e6f43a1

+ 29 - 1
appbuilder-ios/AppBuilder/AppBuilder/FirstTabViewController.swift

@@ -10,7 +10,7 @@ import WebKit
 import NexilisLite
 import Speech
 
-class FirstTabViewController: UIViewController, WKUIDelegate, UIScrollViewDelegate, UIGestureRecognizerDelegate, WKScriptMessageHandler {
+class FirstTabViewController: UIViewController, UIScrollViewDelegate, UIGestureRecognizerDelegate, WKScriptMessageHandler {
     
     @IBOutlet weak var webView: WKWebView!
     var address = ""
@@ -42,6 +42,7 @@ class FirstTabViewController: UIViewController, WKUIDelegate, UIScrollViewDelega
         refreshControl.addTarget(self, action: #selector(reloadWebView(_:)), for: .valueChanged)
         webView.scrollView.addSubview(refreshControl)
         webView.scrollView.delegate = self
+        webView.navigationDelegate = self
         webView.allowsBackForwardNavigationGestures = true
         
         let contentController = self.webView.configuration.userContentController
@@ -51,6 +52,7 @@ class FirstTabViewController: UIViewController, WKUIDelegate, UIScrollViewDelega
         contentController.add(self, name: "blockUser")
         contentController.add(self, name: "showAlert")
         contentController.add(self, name: "closeProfile")
+        contentController.add(self, name: "tabShowHide")
         
         let source: String = "var meta = document.createElement('meta');" +
             "meta.name = 'viewport';" +
@@ -294,6 +296,18 @@ class FirstTabViewController: UIViewController, WKUIDelegate, UIScrollViewDelega
                     }
                 }
             }
+        } else if message.name == "tabShowHide" {
+            guard let dict = message.body as? [String: AnyObject],
+                  let param1 = dict["param1"] as? Bool else {
+                return
+            }
+            if param1 {
+                ViewController.alwaysHideButton = false
+                showTabBar()
+            } else {
+                ViewController.alwaysHideButton = true
+                hideTabBar()
+            }
         }
     }
     
@@ -425,3 +439,17 @@ extension FirstTabViewController: SFSpeechRecognizerDelegate {
         }
     }
 }
+
+extension FirstTabViewController: WKUIDelegate, WKNavigationDelegate {
+      func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
+            if let urlStr = navigationAction.request.url?.absoluteString {
+                collapseDocked()
+                if urlStr.contains("nexilis/pages/tab1-main-only") || urlStr.contains("nexilis/pages/tab3-main-only") || urlStr.contains("nexilis/pages/tab1-main") || urlStr.contains("nexilis/pages/tab3-commerce") {
+                    ViewController.alwaysHideButton = false
+                    showTabBar()
+                }
+            }
+
+            decisionHandler(.allow)
+      }
+}

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

@@ -11,7 +11,7 @@ import nuSDKService
 import NexilisLite
 import Photos
 
-public class FourthTabViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, UIScrollViewDelegate {
+public class FourthTabViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, UIScrollViewDelegate, UIGestureRecognizerDelegate {
     
     var language: [[String: String]] = [["Indonesia": "id"],["English": "en"]]
     var alert: UIAlertController?
@@ -60,8 +60,19 @@ public class FourthTabViewController: UIViewController, UITableViewDelegate, UIT
         switchSaveToGallery.addTarget(self, action: #selector(saveToGallerySwitch), for: .valueChanged)
         switchAutoDownload.addTarget(self, action: #selector(autoDownloadSwitch), for: .valueChanged)
         
+        let tapGesture = UITapGestureRecognizer(target: self, action: #selector(collapseDocked))
+        tapGesture.cancelsTouchesInView = false
+        tapGesture.delegate = self
+        self.view.addGestureRecognizer(tapGesture)
+        
 //        navigationItem.leftBarButtonItem = UIBarButtonItem(barButtonSystemItem: .cancel, target: self, action: #selector(didTapCancel))
     }
+    
+    @objc func collapseDocked() {
+        if ViewController.isExpandButton {
+            ViewController.expandButton()
+        }
+    }
 
     public override func viewWillDisappear(_ animated: Bool) {
         if ViewController.isExpandButton {

+ 12 - 1
appbuilder-ios/AppBuilder/AppBuilder/SecondTabViewController.swift

@@ -10,7 +10,7 @@ import FMDB
 import NexilisLite
 import Speech
 
-class SecondTabViewController: UIViewController, UIScrollViewDelegate {
+class SecondTabViewController: UIViewController, UIScrollViewDelegate, UIGestureRecognizerDelegate {
     
     deinit {
         print(#function, ">>>> TADAA")
@@ -190,6 +190,17 @@ class SecondTabViewController: UIViewController, UIScrollViewDelegate {
         let cpaasMode = PrefsUtil.getCpaasMode()
         let isBurger = cpaasMode == PrefsUtil.CPAAS_MODE_BURGER
         navigationController?.setNavigationBarHidden(!isBurger, animated: false)
+        
+        let tapGesture = UITapGestureRecognizer(target: self, action: #selector(collapseDocked))
+        tapGesture.cancelsTouchesInView = false
+        tapGesture.delegate = self
+        self.view.addGestureRecognizer(tapGesture)
+    }
+    
+    @objc func collapseDocked() {
+        if ViewController.isExpandButton {
+            ViewController.expandButton()
+        }
     }
     
     @objc func startConversation(){

+ 28 - 0
appbuilder-ios/AppBuilder/AppBuilder/ThirdTabViewController.swift

@@ -48,6 +48,7 @@ class ThirdTabViewController: UIViewController, UIScrollViewDelegate, UIGestureR
         contentController.add(self, name: "blockUser")
         contentController.add(self, name: "showAlert")
         contentController.add(self, name: "closeProfile")
+        contentController.add(self, name: "tabShowHide")
         
         let source: String = "var meta = document.createElement('meta');" +
             "meta.name = 'viewport';" +
@@ -295,6 +296,18 @@ class ThirdTabViewController: UIViewController, UIScrollViewDelegate, UIGestureR
                     }
                 }
             }
+        } else if message.name == "tabShowHide" {
+            guard let dict = message.body as? [String: AnyObject],
+                  let param1 = dict["param1"] as? Bool else {
+                return
+            }
+            if param1 {
+                ViewController.alwaysHideButton = false
+                showTabBar()
+            } else {
+                ViewController.alwaysHideButton = true
+                hideTabBar()
+            }
         }
     }
     
@@ -426,3 +439,18 @@ extension ThirdTabViewController: SFSpeechRecognizerDelegate {
         }
     }
 }
+
+extension ThirdTabViewController: WKUIDelegate {
+      func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
+
+            if let urlStr = navigationAction.request.url?.absoluteString {
+                collapseDocked()
+                if urlStr.contains("nexilis/pages/tab1-main-only") || urlStr.contains("nexilis/pages/tab3-main-only") || urlStr.contains("nexilis/pages/tab1-main") || urlStr.contains("nexilis/pages/tab3-commerce") {
+                    ViewController.alwaysHideButton = false
+                    showTabBar()
+                }
+            }
+
+            decisionHandler(.allow)
+      }
+}