Commit c311ada7 authored by jzhang's avatar jzhang

权限

parent c01964de
......@@ -18,6 +18,11 @@ class ViewController: UIViewController {
@IBOutlet weak var panelV: UIStackView!
@IBOutlet weak var popupView: UIView!
@IBOutlet weak var switchBtn: UIButton!
@IBOutlet weak var permisionPopupV: UIView!
@IBOutlet weak var permissionTitle: UILabel!
@IBOutlet weak var permissionText: UILabel!
@IBOutlet weak var permissionOKBtn: UIButton!
@IBOutlet weak var permissionPanel: UIView!
var methodChannel: FlutterMethodChannel?
lazy var vm: ViewModel = .init()
var isFirstLoad: Bool = true
......@@ -27,8 +32,14 @@ class ViewController: UIViewController {
stepL1.text = vm.landingPageStep1
stepL2.text = vm.landingPageStep2
stepL3.text = vm.landingPageStep3
permissionText.text = vm.cameraText1
permissionTitle.text = vm.cameraText
permissionOKBtn.setTitle(vm.cameraButtonText, for: .normal)
startBtn.setTitle(vm.landingPageStart, for: .normal)
panelV.layer.cornerRadius = 8
permissionPanel.layer.cornerRadius = 8
permissionPanel.clipsToBounds = true
panelV.clipsToBounds = true
}
......@@ -40,6 +51,10 @@ class ViewController: UIViewController {
updateUI()
popupView.isHidden = true
AVCaptureDevice.requestAccess(for: .video, completionHandler: { accessGranted in
guard accessGranted == true else { return }
})
if let flutterEngine = (UIApplication.shared.delegate as? AppDelegate)?.flutterEngine {
methodChannel = FlutterMethodChannel(name: "com.wmdigit.breastcoachai.native",
binaryMessenger: flutterEngine.binaryMessenger)
......@@ -73,6 +88,18 @@ class ViewController: UIViewController {
}
}
func checkCameraPermission() -> Bool {
let cameraAuthorizationStatus = AVCaptureDevice.authorizationStatus(for: .video)
switch cameraAuthorizationStatus {
case .authorized:
return true
default:
permisionPopupV.isHidden = false
return false
}
}
func showError(_ text: String?) {
let alertVC = UIAlertController(title: text, message: nil, preferredStyle: .alert)
alertVC.addAction(UIAlertAction(title: "OK", style: .cancel))
......@@ -87,6 +114,9 @@ class ViewController: UIViewController {
}
@IBAction func tapStart(_ sender: Any) {
if !checkCameraPermission() {
return
}
if !isFirstLoad {
methodChannel?.invokeMethod("reload", arguments: nil)
}
......@@ -115,6 +145,10 @@ class ViewController: UIViewController {
}
}
@IBAction func dismissPermissimPanel(_ sender: Any) {
permisionPopupV.isHidden = true
}
@IBAction func selectLanguage(_ sender: UIButton) {
switch sender.tag {
case 1000:
......
......@@ -31,6 +31,9 @@ class ViewModel {
var landingPageStart: String?
var congratulation: String?
var completeBtn: String?
var cameraText: String?
var cameraText1: String?
var cameraButtonText: String?
var languagePack: [String: Any] {
let languageFile = language.rawValue.appending(".json")
......@@ -69,6 +72,9 @@ class ViewModel {
landingPageStart = "Start Now"
congratulation = "Congratulations!"
completeBtn = "OK"
cameraText = "Camera not detected"
cameraText1 = "Camera disabled. Please grant camera permission first!"
cameraButtonText = "OK"
case .français:
landingPageTitle = "Coach AI en posture d'allaitement"
landingPageStep1 = "Placez votre appareil sur une surface stable"
......@@ -77,6 +83,9 @@ class ViewModel {
landingPageStart = "Commencez maintenant"
congratulation = "Toutes nos félicitations!"
completeBtn = "OK"
cameraText = "Caméra non détectée"
cameraText1 = "Caméra désactivée. Veuillez d'abord accorder l'autorisation de la caméra !"
cameraButtonText = "OK"
case .español:
landingPageTitle = "Asistente de AI de postura de lactancia"
landingPageStep1 = "Coloque su dispositivo en una superficie estable"
......@@ -85,6 +94,9 @@ class ViewModel {
landingPageStart = "Empezar ahora"
congratulation = "¡Felicidades!"
completeBtn = "DE ACUERDO"
cameraText = "Cámara no detectada"
cameraText1 = "Cámara desactivada. ¡Por favor, conceda permiso a la cámara primero!"
cameraButtonText = "DE ACUERDO"
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment