From c48ed5d7adf0413816ea6998f1015872fa7a2cdb Mon Sep 17 00:00:00 2001 From: Artur Savitskiy Date: Mon, 4 Mar 2024 17:16:47 +0100 Subject: [PATCH] Refactoring WiP --- Befund.xcodeproj/project.pbxproj | 12 - Befund/Controllers/LoginController.swift | 39 +- Befund/Controllers/OEGDController.swift | 897 --------------- Befund/Controllers/PDFViewController.swift | 1 - Befund/Controllers/SettingsController.swift | 64 +- Befund/Controllers/SupportController.swift | 25 +- Befund/Controllers/ViewController.swift | 43 +- Befund/Core/Lang/DE.swift | 8 - Befund/Core/Lang/EN.swift | 5 - Befund/Core/Models/.DS_Store | Bin 6148 -> 6148 bytes Befund/Core/Models/OEGD.swift | 92 -- Befund/Core/Models/OEGDFile.swift | 16 - Befund/Core/System.swift | 37 +- Befund/Screens/Base.lproj/Main.storyboard | 1097 +------------------ 14 files changed, 88 insertions(+), 2248 deletions(-) delete mode 100644 Befund/Controllers/OEGDController.swift delete mode 100644 Befund/Core/Models/OEGD.swift delete mode 100644 Befund/Core/Models/OEGDFile.swift diff --git a/Befund.xcodeproj/project.pbxproj b/Befund.xcodeproj/project.pbxproj index 2067fe3..d9668a9 100644 --- a/Befund.xcodeproj/project.pbxproj +++ b/Befund.xcodeproj/project.pbxproj @@ -72,7 +72,6 @@ 6E3CAB682891506900E3064D /* LoginController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E3CAB672891506900E3064D /* LoginController.swift */; }; 6E53C5E128BCA87C008125AC /* ScannerController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E53C5E028BCA87C008125AC /* ScannerController.swift */; }; 6E53C5E328BCDAB3008125AC /* SelectLaborController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E53C5E228BCDAB3008125AC /* SelectLaborController.swift */; }; - 6E6F186528A8EC6900610A59 /* OEGDController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6F186428A8EC6900610A59 /* OEGDController.swift */; }; 6E6F186728AC4D8600610A59 /* SupportController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6F186628AC4D8600610A59 /* SupportController.swift */; }; 6E74190D28EDABF9001632A6 /* faq.html in Resources */ = {isa = PBXBuildFile; fileRef = 6E74190C28EDABF9001632A6 /* faq.html */; }; 6E74190F28EDBB9F001632A6 /* privacy_policy.html in Resources */ = {isa = PBXBuildFile; fileRef = 6E74190E28EDBB9F001632A6 /* privacy_policy.html */; }; @@ -86,8 +85,6 @@ 6EA6D4F1289BCB870009F0E7 /* PIN.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EA6D4F0289BCB870009F0E7 /* PIN.swift */; }; 6EA6D4F3289BF9B40009F0E7 /* ViewControllerExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EA6D4F2289BF9B40009F0E7 /* ViewControllerExtension.swift */; }; 6EA6D4F5289D14AE0009F0E7 /* CheckBoxButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EA6D4F4289D14AE0009F0E7 /* CheckBoxButton.swift */; }; - 6EA6D4F728A106060009F0E7 /* OEGD.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EA6D4F628A106060009F0E7 /* OEGD.swift */; }; - 6EA6D4F928A10F310009F0E7 /* OEGDFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EA6D4F828A10F310009F0E7 /* OEGDFile.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -194,7 +191,6 @@ 6E3CAB672891506900E3064D /* LoginController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginController.swift; sourceTree = ""; }; 6E53C5E028BCA87C008125AC /* ScannerController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScannerController.swift; sourceTree = ""; }; 6E53C5E228BCDAB3008125AC /* SelectLaborController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectLaborController.swift; sourceTree = ""; }; - 6E6F186428A8EC6900610A59 /* OEGDController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OEGDController.swift; sourceTree = ""; }; 6E6F186628AC4D8600610A59 /* SupportController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SupportController.swift; sourceTree = ""; }; 6E74190C28EDABF9001632A6 /* faq.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = faq.html; sourceTree = ""; }; 6E74190E28EDBB9F001632A6 /* privacy_policy.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = privacy_policy.html; sourceTree = ""; }; @@ -208,8 +204,6 @@ 6EA6D4F0289BCB870009F0E7 /* PIN.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PIN.swift; sourceTree = ""; }; 6EA6D4F2289BF9B40009F0E7 /* ViewControllerExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewControllerExtension.swift; sourceTree = ""; }; 6EA6D4F4289D14AE0009F0E7 /* CheckBoxButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheckBoxButton.swift; sourceTree = ""; }; - 6EA6D4F628A106060009F0E7 /* OEGD.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OEGD.swift; sourceTree = ""; }; - 6EA6D4F828A10F310009F0E7 /* OEGDFile.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OEGDFile.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -280,8 +274,6 @@ 6995E6A2283C011A003ABF6C /* Session.swift */, 699DCADF283F81E10072D121 /* Settings.swift */, 6E3CAB63287C7E3300E3064D /* Labor.swift */, - 6EA6D4F628A106060009F0E7 /* OEGD.swift */, - 6EA6D4F828A10F310009F0E7 /* OEGDFile.swift */, ); path = Models; sourceTree = ""; @@ -325,7 +317,6 @@ 696B7548283685E000C8637D /* Controllers */ = { isa = PBXGroup; children = ( - 6E6F186428A8EC6900610A59 /* OEGDController.swift */, 69B7A113281C59F000A249C6 /* ViewController.swift */, 69AB1FA92842572D008045E1 /* PDFViewController.swift */, 6E3CAB652889AD6A00E3064D /* SettingsController.swift */, @@ -725,13 +716,11 @@ 69A0CA57281D7B5F00DEA57A /* Curve25519.swift in Sources */, 6E78B22928D376AA00F2DA82 /* KeyboardExtension.swift in Sources */, 698D54F428301C6800766CE3 /* Subscribe.swift in Sources */, - 6EA6D4F928A10F310009F0E7 /* OEGDFile.swift in Sources */, 69AB1FA028422AAC008045E1 /* Download.swift in Sources */, 698D54F2283015E000766CE3 /* EncryptedRequest.swift in Sources */, 699DCADE283F7DFF0072D121 /* Results.swift in Sources */, 6EA6D4EF289BC8C80009F0E7 /* Support.swift in Sources */, 6E3CAB662889AD6A00E3064D /* SettingsController.swift in Sources */, - 6EA6D4F728A106060009F0E7 /* OEGD.swift in Sources */, 696DF3992838DD6800E710BD /* Device.swift in Sources */, 69B7A110281C59F000A249C6 /* AppDelegate.swift in Sources */, 6E2A3E2628A706FB002EB204 /* UIDownPicker.m in Sources */, @@ -740,7 +729,6 @@ 694FF36B282FB4FA0070C3F2 /* PublicKey.swift in Sources */, 699DCAE5283FC7B90072D121 /* DE.swift in Sources */, 69F4DE99281C8DE60030D34D /* AES.swift in Sources */, - 6E6F186528A8EC6900610A59 /* OEGDController.swift in Sources */, 694E9F782841127300431F95 /* ResultsTableViewCell.swift in Sources */, 69B7A112281C59F000A249C6 /* SceneDelegate.swift in Sources */, 69F4DE93281C88600030D34D /* Security.swift in Sources */, diff --git a/Befund/Controllers/LoginController.swift b/Befund/Controllers/LoginController.swift index 691dc7b..9d01147 100644 --- a/Befund/Controllers/LoginController.swift +++ b/Befund/Controllers/LoginController.swift @@ -12,8 +12,7 @@ import UIKit class LoginController: UIViewController, UITextFieldDelegate, UIAlertViewDelegate { - public static var CurrentViewController: LoginController? = nil - public static var Settings: Core.Models.Settings? = nil + private var Settings: Core.Models.Settings? = nil @IBOutlet weak var loginPassword_PassworArea: UIView! @@ -78,8 +77,7 @@ class LoginController: UIViewController, UITextFieldDelegate, UIAlertViewDelegat */ private func Initialize() { - LoginController.CurrentViewController = self - LoginController.Settings = Core.Models.Settings.loadFromFile(atPath: Core.System.SettingsPath()) + Settings = Core.Models.Settings.loadFromFile(atPath: Core.System.SettingsPath()) self.loginPasswordView_txtPassword.delegate = self self.loginPasswordView_txtPassword.enablePasswordToggle() @@ -115,6 +113,11 @@ class LoginController: UIViewController, UITextFieldDelegate, UIAlertViewDelegat self.hideKeyboardWhenTappedAround() } + private func GetHost()-> Core.Https.Servers + { + return (Settings!.labor?.host ?? .DEVELOPMENT) + } + @objc func ShowPinHinweis() { self.passwordReset_Status.text = "" @@ -153,7 +156,7 @@ class LoginController: UIViewController, UITextFieldDelegate, UIAlertViewDelegat self.passwordReset_txtPassword.text = Core.Lang.Get(key: "LBL_NEW_PASSWORD") self.passwordReset_txtPasswordConfirm.text = Core.Lang.Get(key: "LBL_PASSWORD_CONFIRM") - self.loginPasswordView_LaborLogo.image = LoginController.Settings?.labor?.logo + self.loginPasswordView_LaborLogo.image = Settings?.labor?.logo } internal func textFieldShouldReturn(_ textField: UITextField) -> Bool { @@ -200,7 +203,7 @@ class LoginController: UIViewController, UITextFieldDelegate, UIAlertViewDelegat else { let password = self.loginPasswordView_txtPassword.text ?? "" - let encrypted_pwd = Core.Security.AES.Decrypt(value: LoginController.Settings?.hashed_private_key ?? "", password: String( decoding:Core.Security.AES.GetKey(password: password), as: UTF8.self)) + let encrypted_pwd = Core.Security.AES.Decrypt(value: Settings?.hashed_private_key ?? "", password: String( decoding:Core.Security.AES.GetKey(password: password), as: UTF8.self)) if(encrypted_pwd==nil) { self.loginPasswordView_Status.text=Core.Lang.Get(key: "ERROR_INVALID_PASSWORD") @@ -292,7 +295,7 @@ class LoginController: UIViewController, UITextFieldDelegate, UIAlertViewDelegat } else { - let oldPasswordDecrypted = Core.Models.Request.ChangeVerificatorHashProvider.GetDecryptedOldPasswordByPin(settings: LoginController.Settings!, pin: pin) + let oldPasswordDecrypted = Core.Models.Request.ChangeVerificatorHashProvider.GetDecryptedOldPasswordByPin(settings: Settings!, pin: pin) if(oldPasswordDecrypted == nil) { @@ -314,20 +317,18 @@ class LoginController: UIViewController, UITextFieldDelegate, UIAlertViewDelegat } else { - let changeVerificatorHash = Core.Models.Request.ChangeVerificatorHashProvider.PrepareChangeVerificatorHash(settings: LoginController.Settings!, oldPassword: oldPasswordDecrypted!, newPassword: newPass, newPin: pinNew) + let changeVerificatorHash = Core.Models.Request.ChangeVerificatorHashProvider.PrepareChangeVerificatorHash(settings: Settings!, oldPassword: oldPasswordDecrypted!, newPassword: newPass, newPin: pinNew) let requestKeyPair = Core.Security.Curve25519.GenerateKeyPair() - Core.Https.Request.KeyExchangeAsync(host: (LoginController.Settings!.labor?.host ?? .DEVELOPMENT), keyPair: requestKeyPair, + Core.Https.Request.KeyExchangeAsync(host: GetHost(), keyPair: requestKeyPair, onSuccess: { publicKey in let sharedKey = requestKeyPair.GetSharedKey(peerPublicKeyBase64: publicKey.key) let encryptedRequest = Core.Models.Request.EncryptedRequest(descriptor: "ChangeVerificatorHash", contentObject: changeVerificatorHash, requestType: .REQUEST_VERIFICATOR_HASH, key: sharedKey!) - - let currentHost = ViewController.Settings!.labor?.host ?? .DEVELOPMENT - - Core.Https.Request.EncryptedRequestAsync(host: currentHost, controller: "results", action: "update_verificator_hash", request: encryptedRequest, serverPublicKey: publicKey, keyPair: requestKeyPair, onSuccess: { + + Core.Https.Request.EncryptedRequestAsync(host: self.GetHost(), controller: "results", action: "update_verificator_hash", request: encryptedRequest, serverPublicKey: publicKey, keyPair: requestKeyPair, onSuccess: { encryptedResponse in @@ -338,7 +339,7 @@ class LoginController: UIViewController, UITextFieldDelegate, UIAlertViewDelegat if(encryptedResponse.descriptor!.lowercased() == "success") { var errMsg: String? = nil - LoginController.Settings = Core.Models.Request.ChangeVerificatorHashProvider.SaveChangedVerificatorBySuccess(settings: LoginController.Settings!, oldPassword: oldPasswordDecrypted!, newPassword: newPass, pin: (changeVerificatorHash.pin ?? ""), errorMsg: &errMsg) + self.Settings = Core.Models.Request.ChangeVerificatorHashProvider.SaveChangedVerificatorBySuccess(settings: self.Settings!, oldPassword: oldPasswordDecrypted!, newPassword: newPass, pin: (changeVerificatorHash.pin ?? ""), errorMsg: &errMsg) if(errMsg != nil) { @@ -459,20 +460,18 @@ class LoginController: UIViewController, UITextFieldDelegate, UIAlertViewDelegat { let requestKeyPair = Core.Security.Curve25519.GenerateKeyPair() - Core.Https.Request.KeyExchangeAsync(host: (LoginController.Settings!.labor?.host ?? .DEVELOPMENT), keyPair: requestKeyPair, + Core.Https.Request.KeyExchangeAsync(host: GetHost(), keyPair: requestKeyPair, onSuccess: { publicKey in let getPIN = Core.Models.Request.GetPIN() - getPIN.udid = LoginController.Settings!.udid; - getPIN.verificator_hash = LoginController.Settings!.verificator_hash; + getPIN.udid = self.Settings!.udid; + getPIN.verificator_hash = self.Settings!.verificator_hash; let sharedKey = requestKeyPair.GetSharedKey(peerPublicKeyBase64: publicKey.key) let encryptedRequest = Core.Models.Request.EncryptedRequest(descriptor: "PIN", contentObject: getPIN, requestType: .REQUEST_GET_PIN, key: sharedKey!) - let currentHost = ViewController.Settings!.labor?.host ?? .DEVELOPMENT - - Core.Https.Request.EncryptedRequestAsync(host: currentHost, controller: "results", action: "pin", request: encryptedRequest, serverPublicKey: publicKey, keyPair: requestKeyPair, onSuccess: { + Core.Https.Request.EncryptedRequestAsync(host: self.GetHost(), controller: "results", action: "pin", request: encryptedRequest, serverPublicKey: publicKey, keyPair: requestKeyPair, onSuccess: { encryptedResponse in diff --git a/Befund/Controllers/OEGDController.swift b/Befund/Controllers/OEGDController.swift deleted file mode 100644 index cfe5a71..0000000 --- a/Befund/Controllers/OEGDController.swift +++ /dev/null @@ -1,897 +0,0 @@ -// -// OEGDController.swift -// Befund -// -// Created by Artur Savitskiy on 03.08.22. -// Copyright © 2022 MVZ Dr. Stein und Kollegen. All rights reserved. -// - -import Foundation -import UIKit - -//import "DownPicker.h" - -class OEGDController: UIViewController, UITextFieldDelegate, UIScrollViewDelegate, UpdatingParentCheckBox -{ - public enum OEGDEditType: Int - { - case New - case Edit - } - public var currentMode: OEGDEditType = OEGDEditType.New - - private var Genders: NSMutableArray = - [ Core.Lang.Get(key: "LBL_GENDER_M") - , Core.Lang.Get(key: "LBL_GENDER_W") - , Core.Lang.Get(key: "LBL_GENDER_D") - , Core.Lang.Get(key: "LBL_GENDER_X")] - - @IBOutlet weak var editPopup_HeightScrollView: NSLayoutConstraint! - @IBOutlet weak var mainOEGD_HeightScrollView: NSLayoutConstraint! - - public static var Settings: Core.Models.Settings? = nil - - - @IBOutlet weak var LBL_TITLE: UILabel! - //@IBOutlet weak var LBL_BACK: UILabel! - @IBOutlet weak var mainOEGD_MenuBtn: UIButton! - @IBOutlet weak var mainOEGD_BackBtn: UIButton! - @IBOutlet weak var LBL_NO_OEGD: UILabel! - - //new or edit OEGD popup - @IBOutlet weak var LBL_EDIT_TITLE: UILabel! - - @IBOutlet weak var editPopup_Overlay: UIView! - @IBOutlet weak var editPopup_Content: UIView! - @IBOutlet weak var editPopup_ScrollView: UIScrollView! - - @IBOutlet weak var editOEGD_txtTitle: UITextField! - @IBOutlet weak var editOEGD_txtFirstname: UITextField! - @IBOutlet weak var editOEGD_txtLastname: UITextField! - @IBOutlet weak var editOEGD_txtAddLastname: UITextField! - @IBOutlet weak var editOEGD_txtPrefix: UITextField! - @IBOutlet weak var editOEGD_txtGender: UITextField! - var genderDownPicker: DownPicker! - - @IBOutlet weak var editOEGD_txtBirthday: UITextField! - let editOEGD_dtBirthday = UIDatePicker() - @IBOutlet weak var editOEGD_txtStreet: UITextField! - @IBOutlet weak var editOEGD_txtZip: UITextField! - @IBOutlet weak var editOEGD_txtCity: UITextField! - @IBOutlet weak var editOEGD_txtTelefon: UITextField! - @IBOutlet weak var editOEGD_CWAPolicyView: UIView! - @IBOutlet weak var editOEGD_CWAPolicyBtn: UIButton! - @IBOutlet weak var editOEGD_CreateBtn: UIButton! - @IBOutlet weak var editOEGD_BackBtn: UIButton! - @IBOutlet weak var editOEGD_Status: UILabel! - - //OEGD Options-Popup - - @IBOutlet weak var optionsPopup_Overlay: UIView! - @IBOutlet weak var optionsPopup_Content: UIView! - @IBOutlet weak var optionsPopup_ButtonsContent: UIView! - - @IBOutlet weak var optionsPopup_EditContent: UIView! - @IBOutlet weak var optionsPopup_AddContent: UIView! - @IBOutlet weak var optionsPopup_DeleteContent: UIView! - - @IBOutlet weak var optionsOEGD_AddBtn: UIButton! - @IBOutlet weak var optionsOEGD_EditBtn: UIButton! - @IBOutlet weak var optionsOEGD_DeleteBtn: UIButton! - @IBOutlet weak var optionsOEGD_CancelBtn: UIButton! - - @IBOutlet weak var optionsPopup_ConfirmDelete: UIView! - @IBOutlet weak var optionsOEGD_DeleteTitle: UILabel! - @IBOutlet weak var optionsOEGD_DeleteNoBtn: UIButton! - @IBOutlet weak var optionsOEGD_DeleteYesBtn: UIButton! - - - //CWA-Policy Popup - @IBOutlet weak var LBL_POLICY_TITLE: UILabel! - @IBOutlet weak var policyPopup_Overlay: UIView! - @IBOutlet weak var policyPopup_AcceptView: UIView! - @IBOutlet weak var policyPopup_PolicyText: UILabel! - @IBOutlet weak var policyPopup_btnAcceptPolicy: UIButton! - - @IBOutlet var editPopup_Checkbox: CheckBoxButton! - public var confirmCheckBox:CheckBoxButton! { - get { - return editPopup_Checkbox - } - } - - - @IBOutlet weak var pageControl: UIPageControl! - @IBOutlet weak var scrollView: UIScrollView! - - @IBOutlet weak var qrImage: UIImageView! - - private var OEGDFiles: [Core.Models.OEGDFile] = [] - private var CurrentOEGDFile: Core.Models.OEGDFile? = nil - - private let CWAPolicyLink = "https://www.limbachgruppe.com/datenschutz" - - private var blinkTimer: Timer? = nil - - private var isAlpha1: Bool = true - - private let menuBtnWidth = 90.0 - private let menuBtnHeight = 65.0 - - override func viewDidLoad() - { - super.viewDidLoad() - self.Initialize() - } - - override func viewDidAppear(_ animated: Bool) { - super.viewDidAppear(animated) - self.SetLabels() - } - - private func FormMenuButton() - { - if(self.OEGDFiles.count==0) - { - if (self.blinkTimer==nil) - { - self.blinkTimer = Timer.scheduledTimer(timeInterval: 0.7, target: self, selector: #selector(self.alarmAlertActivate), userInfo: nil, repeats: true) - } - } - else - { - if (self.blinkTimer != nil) - { - self.blinkTimer!.invalidate() - self.blinkTimer = nil - let menuImg = UIImage(named: "ic_dehaze")?.image(alpha: 1.0, targetSize: CGSize(width: menuBtnWidth, height: menuBtnHeight)) - self.mainOEGD_MenuBtn.setImage(menuImg, for: .normal) - } - } - } - - private func Initialize() - { - //OEGDController.CurrentViewController = self - OEGDController.Settings = Core.Models.Settings.loadFromFile(atPath: Core.System.SettingsPath()) - - - self.editOEGD_txtTitle.delegate = self - self.editOEGD_txtFirstname.delegate = self - self.editOEGD_txtLastname.delegate = self - self.editOEGD_txtAddLastname.delegate = self - self.editOEGD_txtPrefix.delegate = self - self.editOEGD_txtGender.delegate = self - self.editOEGD_txtBirthday.delegate = self - self.editOEGD_txtStreet.delegate = self - self.editOEGD_txtZip.delegate = self - self.editOEGD_txtCity.delegate = self - self.editOEGD_txtTelefon.delegate = self - - self.editOEGD_txtTitle.returnKeyType = .next - self.editOEGD_txtFirstname.returnKeyType = .next - self.editOEGD_txtLastname.returnKeyType = .next - self.editOEGD_txtAddLastname.returnKeyType = .next - self.editOEGD_txtPrefix.returnKeyType = .next - self.editOEGD_txtGender.returnKeyType = .next - self.editOEGD_txtBirthday.returnKeyType = .next - self.editOEGD_txtStreet.returnKeyType = .next - self.editOEGD_txtZip.returnKeyType = .next - self.editOEGD_txtCity.returnKeyType = .next - self.editOEGD_txtTelefon.returnKeyType = .done - - self.addDoneToolbar([self.editOEGD_txtTitle, self.editOEGD_txtFirstname, self.editOEGD_txtLastname, self.editOEGD_txtAddLastname, self.editOEGD_txtPrefix, self.editOEGD_txtGender, self.editOEGD_txtStreet, self.editOEGD_txtZip, self.editOEGD_txtCity, self.editOEGD_txtTelefon]) - - self.hideKeyboardWhenTappedAround() - self.createDatePicker() - - self.optionsPopup_Overlay.frame = self.view.frame - self.view.addSubview(self.optionsPopup_Overlay) - optionsPopup_Overlay.isHidden = true - - optionsPopup_ConfirmDelete.isHidden = true - - self.editPopup_Overlay.frame = self.view.frame - self.view.addSubview(self.editPopup_Overlay) - editPopup_Overlay.isHidden = true - - self.policyPopup_Overlay.frame = self.view.frame - self.view.addSubview(self.policyPopup_Overlay) - policyPopup_Overlay.isHidden = true - - self.editPopup_Checkbox = CheckBoxButton(frame: CGRect(x: 20, y: 10, width: 30, height: 30)) - self.editOEGD_CWAPolicyView.addSubview(self.editPopup_Checkbox) - let gesture = UITapGestureRecognizer(target: self, action: #selector(didTapCheckbox)) - self.editPopup_Checkbox.addGestureRecognizer(gesture) - self.editPopup_Checkbox.setChecked(flag: true) - - self.genderDownPicker = DownPicker(textField: editOEGD_txtGender, withData: (Genders as! [Any])) - - self.scrollView.delegate = self - - self.InitializeScrollView() - - //calc top-position of round Back-button - let screenBound = UIScreen.main.bounds; - var width = CGFloat((screenBound.width * 30) / 100.0) - if(width > 100.0) - { - width = CGFloat(100.0) - } - //calc new height for ScrollView in edit OEGD - let bottom = (screenBound.height - 100) - (width / 2.0) - 30 - var newHeight = bottom - self.editPopup_ScrollView.frame.origin.y - self.editPopup_HeightScrollView.constant = newHeight - //calc new height for ScrollView in main form (for QRCode), minus 10 pt for Page-control - newHeight = bottom - self.scrollView.frame.origin.y - 10 - self.mainOEGD_HeightScrollView.constant = newHeight - - let menuImg = UIImage(named: "ic_dehaze")?.image(alpha: 1.0, targetSize: CGSize(width: menuBtnWidth, height: menuBtnHeight)) - self.mainOEGD_MenuBtn.setImage(menuImg, for: .normal) - - } - - @objc func alarmAlertActivate(){ - UIView.animate(withDuration: 0.7) { - let menuImg = UIImage(named: "ic_dehaze")?.image(alpha: self.isAlpha1 ? 1.0: 0.0, targetSize: CGSize(width: self.menuBtnWidth, height: self.menuBtnHeight)) - self.mainOEGD_MenuBtn.setImage(menuImg, for: .normal) - } - self.isAlpha1 = !self.isAlpha1 - } - - func scrollViewDidScroll(_ scrollView: UIScrollView) { - let pageIndex = round(scrollView.contentOffset.x/view.frame.width) - pageControl.currentPage = Int(pageIndex) - self.CurrentOEGDFile = self.OEGDFiles[Int(pageIndex)] - } - - - internal func textFieldShouldReturn(_ textField: UITextField) -> Bool { - self.switchBasedNextTextField(textField) - return true - } - - private func switchBasedNextTextField(_ textField: UITextField) { - switch textField { - case self.editOEGD_txtTitle: - self.editOEGD_txtFirstname.becomeFirstResponder() - case self.editOEGD_txtFirstname: - self.editOEGD_txtLastname.becomeFirstResponder() - case self.editOEGD_txtLastname: - self.editOEGD_txtAddLastname.becomeFirstResponder() - case self.editOEGD_txtAddLastname: - self.editOEGD_txtPrefix.becomeFirstResponder() - case self.editOEGD_txtPrefix: - self.editOEGD_txtGender.becomeFirstResponder() - case self.editOEGD_txtGender: - self.editOEGD_txtBirthday.becomeFirstResponder() - case self.editOEGD_txtBirthday: - self.editOEGD_txtStreet.becomeFirstResponder() - case self.editOEGD_txtStreet: - self.editOEGD_txtZip.becomeFirstResponder() - case self.editOEGD_txtZip: - self.editOEGD_txtCity.becomeFirstResponder() - case self.editOEGD_txtCity: - self.editOEGD_txtTelefon.becomeFirstResponder() - default: - self.view.endEditing(true) - } - } - - - private func InitializeScrollView() - { - self.LoadOEGDs() - - - if(self.OEGDFiles.count>0) - { - let slides: [UISlider] = createSlides() - setupSlideScrollView(slides: slides) - - scrollView.contentOffset.x = 0 - pageControl.numberOfPages = slides.count - pageControl.currentPage = 0 - view.bringSubviewToFront(pageControl) - - self.CurrentOEGDFile = self.OEGDFiles[0] - - self.scrollView.isHidden = false - self.pageControl.isHidden = false - - optionsPopup_EditContent.isHidden = false - optionsPopup_DeleteContent.isHidden = false - - } - else - { - self.CurrentOEGDFile = nil - - self.scrollView.isHidden = true - self.pageControl.isHidden = true - - optionsPopup_EditContent.isHidden = true - optionsPopup_DeleteContent.isHidden = true - } - - self.FormMenuButton() - - } - - func setupSlideScrollView(slides : [UISlider]) { - scrollView.frame = CGRect(x: 0, y: 100, width: view.frame.width, height: view.frame.height-300) - scrollView.contentSize = CGSize(width: view.frame.width * CGFloat(slides.count), height: view.frame.height-300) - scrollView.isPagingEnabled = true - - for i in 0 ..< slides.count { - slides[i].frame = CGRect(x: view.frame.width * CGFloat(i), y: 0, width: view.frame.width, height: view.frame.height-200) - scrollView.addSubview(slides[i]) - } - } - - func createSlides() -> [UISlider] { - - var slides: [UISlider] = [] - - let fileCounter = self.OEGDFiles.count - if ( fileCounter > 0) - { - pageControl.numberOfPages = fileCounter - for index in 0.. UIImage - { - let context = CIContext() - let data = content - let filter = CIFilter.qrCodeGenerator() - filter.setValue(data, forKey: "inputMessage") - if let outputImage = filter.outputImage { - let transform = CGAffineTransform(scaleX: 10, y: 10) - let scaledQRImage = outputImage.transformed(by: transform) - if let cgimg = context.createCGImage(scaledQRImage, from: scaledQRImage.extent){ - return UIImage(cgImage: cgimg) - } - } - return UIImage(systemName: "xmark.circle") ?? UIImage() - } - - private func PrepareEditOEGD() - { - self.currentMode = OEGDEditType.Edit - self.LBL_EDIT_TITLE.text = Core.Lang.Get(key: "LBL_EDIT_OEGD") - - if (self.CurrentOEGDFile != nil) - { - let curOEGD = self.CurrentOEGDFile?.OEGD - self.editOEGD_txtTitle.text = curOEGD?.title - self.editOEGD_txtFirstname.text = curOEGD?.first_name - self.editOEGD_txtLastname.text = curOEGD?.last_name - self.editOEGD_txtAddLastname.text = curOEGD?.name_addition - self.editOEGD_txtPrefix.text = curOEGD?.prefix - - let curGender = curOEGD?.gender ?? "" - if(curGender == "M") - { - self.editOEGD_txtGender.text = Genders[0] as? String - } - else if(curGender == "W") - { - self.editOEGD_txtGender.text = Genders[1] as? String - } - else if(curGender == "D") - { - self.editOEGD_txtGender.text = Genders[2] as? String - } - else if(curGender == "X") - { - self.editOEGD_txtGender.text = Genders[3] as? String - } - - - if((curOEGD?.birthdate ?? "").count > 0) - { - let birthday = curOEGD?.GetBirthday() - if(birthday != nil) - { - self.editOEGD_dtBirthday.setDate(birthday!, animated: false) - self.editOEGD_txtBirthday.text = curOEGD?.GetFormatedBirthday() - } - } - self.editOEGD_txtStreet.text = curOEGD?.address.street_number - self.editOEGD_txtZip.text = curOEGD?.address.zip_code - self.editOEGD_txtCity.text = curOEGD?.address.city - self.editOEGD_txtTelefon.text = curOEGD?.phone - self.editPopup_Checkbox.setChecked(flag: (curOEGD?.cwa_consent_flag ?? false)) - } - } - private func PrepareNewOEGD() - { - self.currentMode = OEGDEditType.New - self.LBL_EDIT_TITLE.text = Core.Lang.Get(key: "LBL_NEW_OEGD") - - self.editOEGD_txtTitle.text = nil - self.editOEGD_txtFirstname.text = nil - self.editOEGD_txtLastname.text = nil - self.editOEGD_txtAddLastname.text = nil - self.editOEGD_txtPrefix.text = nil - self.editOEGD_txtGender.text = nil - self.editOEGD_txtBirthday.text = nil - self.editOEGD_dtBirthday.setDate(Date(), animated: false) - self.editOEGD_txtStreet.text = nil - self.editOEGD_txtZip.text = nil - self.editOEGD_txtCity.text = nil - self.editOEGD_txtTelefon.text = nil - //self.editPopup_Checkbox.setChecked(flag: false) - } - - private func OpenConfirmDialog() - { - let confirmText = Core.Lang.Get(key: "MSG_SURE_WANT_DELETE").replacingOccurrences(of: "[ITEM]", with: (self.CurrentOEGDFile?.OEGD.first_name ?? "") + " " + (self.CurrentOEGDFile?.OEGD.last_name ?? "")) - self.optionsOEGD_DeleteTitle.text = confirmText - - self.optionsPopup_ConfirmDelete.isHidden = false - self.optionsPopup_ButtonsContent.isHidden = true - } - - private func CancelConfirmDialog() - { - self.optionsPopup_ConfirmDelete.isHidden = true - self.optionsPopup_ButtonsContent.isHidden = false - } - - private func DeleteCurrentOEGD() - { - if(self.CurrentOEGDFile != nil) - { - - let fileName = self.CurrentOEGDFile?.filename - let filePath = Core.System.GetPathForStorageFile(filename: fileName!) - - if(filePath != nil) - { - Core.System.DeleteFile(atPath: filePath!) - } - } - - } - - @objc func didTapCheckbox() - { - self.editPopup_Checkbox.toogle() - } - - - func SetLabels() - { - self.LBL_TITLE.text = Core.Lang.Get(key: "LBL_OEGD") - self.LBL_NO_OEGD.text = Core.Lang.Get(key: "LBL_NO_OEGD") - //self.LBL_BACK.text = Core.Lang.Get(key: "BTN_BACK") - - self.editOEGD_txtTitle.placeholder = Core.Lang.Get(key: "LBL_TITLE") - self.editOEGD_txtFirstname.placeholder = Core.Lang.Get(key: "LBL_FIRSTNAME") - self.editOEGD_txtLastname.placeholder = Core.Lang.Get(key: "LBL_LASTNAME") - self.editOEGD_txtAddLastname.placeholder = Core.Lang.Get(key: "LBL_ADDITION_NAME") - self.editOEGD_txtPrefix.placeholder = Core.Lang.Get(key: "LBL_NAME_PREFIX") - self.editOEGD_txtGender.placeholder = Core.Lang.Get(key: "LBL_GENDER") - self.editOEGD_txtBirthday.placeholder = Core.Lang.Get(key: "LBL_BIRTHDAY") - self.editOEGD_txtStreet.placeholder = Core.Lang.Get(key: "LBL_STREET") - self.editOEGD_txtZip.placeholder = Core.Lang.Get(key: "LBL_ZIP") - self.editOEGD_txtCity.placeholder = Core.Lang.Get(key: "LBL_CITY") - self.editOEGD_txtTelefon.placeholder = Core.Lang.Get(key: "LBL_TELEFON") - self.editOEGD_CWAPolicyBtn.setTitle(Core.Lang.Get(key: "BTN_ACCEPT_CWA_POLICY"), for: .normal) - self.editOEGD_Status.text = "" - self.editOEGD_CreateBtn.setTitle(Core.Lang.Get(key: "BTN_REGISTER"), for: .normal) - - self.LBL_POLICY_TITLE.text = Core.Lang.Get(key: "LBL_CWA_POLICY") - self.policyPopup_PolicyText.text = Core.Lang.Get(key: "CWA_POLICY_TEXT") - self.policyPopup_btnAcceptPolicy.setTitle(Core.Lang.Get(key: "BTN_ACCEPT_CWA_POLICY"), for: .normal) - - self.optionsOEGD_AddBtn.setTitle(Core.Lang.Get(key: "BTN_REGISTER"), for: .normal) - self.optionsOEGD_EditBtn.setTitle(Core.Lang.Get(key: "BTN_EDIT"), for: .normal) - self.optionsOEGD_DeleteBtn.setTitle(Core.Lang.Get(key: "BTN_DELETE"), for: .normal) - self.optionsOEGD_CancelBtn.setTitle(Core.Lang.Get(key: "BTN_CANCEL"), for: .normal) - self.optionsOEGD_DeleteYesBtn.setTitle(Core.Lang.Get(key: "BTN_YES"), for: .normal) - self.optionsOEGD_DeleteNoBtn.setTitle(Core.Lang.Get(key: "BTN_NO"), for: .normal) - - - } - - func createDatePicker() - { - self.editOEGD_dtBirthday.locale = Locale(identifier: Core.Lang.GetLocale()) - self.editOEGD_dtBirthday.calendar.locale = Locale(identifier: Core.Lang.GetLocale()) - self.editOEGD_dtBirthday.datePickerMode = .date - self.editOEGD_dtBirthday.preferredDatePickerStyle = .wheels - self.editOEGD_dtBirthday.maximumDate = Date() - - let toolbar = UIToolbar() - let flexSpace = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, - target: nil, action: nil) - - let btnDone = UIBarButtonItem(title: Core.Lang.Get(key: "BTN_DONE"), style: .done, target: nil, action: #selector(editOEGD_dtBirthdayDone)) - - toolbar.sizeToFit() - toolbar.setItems([ flexSpace, btnDone ], animated: true) - - self.editOEGD_txtBirthday.inputAccessoryView = toolbar - self.editOEGD_txtBirthday.inputView = self.editOEGD_dtBirthday - } - - @objc func editOEGD_dtBirthdayDone() - { - let dateFormatter = DateFormatter() - dateFormatter.dateFormat = "dd.MM.yyyy" - let dt = dateFormatter.string(from: self.editOEGD_dtBirthday.date) - - self.editOEGD_txtBirthday.text = dt - self.editOEGD_txtBirthday.becomeFirstResponder() - - self.view.endEditing(true) - } - - @IBAction func goBack(_ sender: Any) - { - self.view.endEditing(true) - self.dismiss(animated: true, completion: nil) - } - - @IBAction func mainOEGD_MenuBtn_Click(_ sender: Any) - { - self.ShowOEGDOptions() - } - - private func ShowOEGDOptions() - { - self.scrollView.isHidden = true - self.pageControl.isHidden = true - - self.optionsPopup_Overlay.frame.origin = CGPoint(x: -self.optionsPopup_Overlay.frame.width, y: self.optionsPopup_Overlay.frame.origin.y) - self.optionsPopup_Overlay.isHidden = false - - UIView.animate(withDuration: 0.24, animations: { - self.optionsPopup_Overlay.frame.origin = CGPoint(x: 0, y: self.optionsPopup_Overlay.frame.origin.y) - }) - - } - - @IBAction func optionsOEGD_CancelBtn_Click(_ sender: Any) - { - self.InitializeScrollView() - self.HideOEGDOptions() - } - - private func HideOEGDOptions() - { - UIView.animate(withDuration: 0.24, animations: { - self.optionsPopup_Overlay.frame.origin = CGPoint(x: -self.optionsPopup_Overlay.frame.width, y: self.optionsPopup_Overlay.frame.origin.y) - }) {_ in - self.optionsPopup_Overlay.isHidden = true - } - } - - @IBAction func optionsOEGD_EditBtn_Click(_ sender: Any) - { - self.PrepareEditOEGD() - self.ShowOEGDEdit() - } - - - @IBAction func optionsOEGD_AddBtn_Click(_ sender: Any) - { - self.PrepareNewOEGD() - self.ShowOEGDEdit() - } - - @IBAction func optionsOEGD_ConfirmYesBtn_Click(_ sender: Any) - { - self.DeleteCurrentOEGD() - self.CancelConfirmDialog() - self.InitializeScrollView() - self.HideOEGDOptions() - } - - @IBAction func optionsOEGD_ConfirmNoBtn_Click(_ sender: Any) - { - self.CancelConfirmDialog() - } - - @IBAction func optionsOEGD_DeleteBtn_Click(_ sender: Any) - { - self.OpenConfirmDialog() - } - - - private func ShowOEGDEdit() - { - self.editPopup_Overlay.frame.origin = CGPoint(x: -self.optionsPopup_Overlay.frame.width, y: self.editPopup_Overlay.frame.origin.y) - self.editPopup_Overlay.isHidden = false - - UIView.animate(withDuration: 0.24, animations: { - self.editPopup_Overlay.frame.origin = CGPoint(x: 0, y: self.optionsPopup_Overlay.frame.origin.y) - self.optionsPopup_Overlay.frame.origin = CGPoint(x: self.optionsPopup_Overlay.frame.width, y: self.optionsPopup_Overlay.frame.origin.y) - }) {_ in - self.optionsPopup_Overlay.isHidden = true - } - } - - private func NewOEGDCreate(filename: String?) -> Bool - { - let firstName = editOEGD_txtFirstname.text ?? "" - let lastName = editOEGD_txtLastname.text ?? "" - let gender = editOEGD_txtGender.text ?? "" - let birthday = editOEGD_txtBirthday.text ?? "" - let street = editOEGD_txtStreet.text ?? "" - let zip = editOEGD_txtZip.text ?? "" - let city = editOEGD_txtCity.text ?? "" - - editOEGD_Status.text = "" - - if(firstName.count==0) - { - editOEGD_Status.text = Core.Lang.Get(key: "ERROR_ENTER_FIRSTNAME") - } - else if(lastName.count == 0) - { - editOEGD_Status.text = Core.Lang.Get(key: "ERROR_ENTER_LASTNAME") - } - else if(birthday.count == 0) - { - editOEGD_Status.text = Core.Lang.Get(key: "ERROR_ENTER_BIRTHDAY") - } - else if(gender.count == 0) - { - editOEGD_Status.text = Core.Lang.Get(key: "ERROR_ENTER_GENDER") - } - else if(street.count == 0) - { - editOEGD_Status.text = Core.Lang.Get(key: "ERROR_ENTER_STREET") - } - else if(zip.count == 0) - { - editOEGD_Status.text = Core.Lang.Get(key: "ERROR_ENTER_ZIP") - } - else if(city.count == 0) - { - editOEGD_Status.text = Core.Lang.Get(key: "ERROR_ENTER_CITY") - } - else if(!editPopup_Checkbox.IsChecked()) - { - editOEGD_Status.text = Core.Lang.Get(key: "ERROR_ERROR_ACCEPT_CWA_POLICY") - } - else - { - let oegd = Core.Models.OEGD() - oegd.first_name = firstName - oegd.last_name = lastName - oegd.gender = gender - - oegd.title = (editOEGD_txtTitle.text ?? "") - oegd.name_addition = (editOEGD_txtAddLastname.text ?? "") - oegd.prefix = (editOEGD_txtPrefix.text ?? "") - - let dateFormatter = DateFormatter() - dateFormatter.dateFormat = "yyyy-MM-dd" - oegd.birthdate = dateFormatter.string(from: self.editOEGD_dtBirthday.date) - - if(gender.elementsEqual(Core.Lang.Get(key: "LBL_GENDER_M"))) - { - oegd.gender = "M"; - } - else if(gender.elementsEqual(Core.Lang.Get(key: "LBL_GENDER_W"))) - { - oegd.gender = "W"; - } - else if(gender.elementsEqual(Core.Lang.Get(key: "LBL_GENDER_D"))) - { - oegd.gender = "D"; - } - else - { - oegd.gender = "X"; - } - - oegd.address.zip_code = zip - oegd.address.city = city - oegd.address.street_number = street - oegd.address.country_code = "D" - - oegd.cwa_consent_flag = true - - oegd.phone = (editOEGD_txtTelefon.text ?? "") - - let jsonEncoder = JSONEncoder() - var jsonData: Data? - do{ - jsonData = try jsonEncoder.encode(oegd) - } - catch let err - { - Core.Log.Error(err: err, namespace: "OEGDController", method: "NewOEGDCreate") - } - - - let json = String(data: jsonData!, encoding: .utf8) - if(json != nil) - { - let password = Core.Security.AES.GetKey(password: AppDelegate.Session.DevicePassword) - let encryptedContent = Core.Security.AES.Encrypt(value: (json ?? ""), password: String(decoding: password, as: UTF8.self)) ?? "" - - if (encryptedContent.count>0) - { - var fileName2Store: String - if (filename == nil) - { - let formatter = DateFormatter() - formatter.dateFormat = "yyyyMMdd_HH_mm_ss" - fileName2Store = formatter.string(from: Date()) + NSUUID().uuidString.replacingOccurrences(of: "-", with: "") + ".oegd" - } - else - { - fileName2Store = filename! - } - - if (Core.System.WriteToStorage(filename: fileName2Store, data: encryptedContent.data(using: .utf8)!)) - { - return true - } - else - { - editOEGD_Status.text = Core.Lang.Get(key: "ERROR_COULD_NOT_SAVE_OEGD") - } - } - else - { - editOEGD_Status.text = Core.Lang.Get(key: "ERROR_COULD_NOT_SAVE_OEGD") - } - - } - - } - - return false - - } - - private func LoadOEGDs() - { - self.OEGDFiles = [] - let oegdfiles = Core.System.GetOEGDFiles() - if(oegdfiles.count>0) - { - for oneFile in oegdfiles - { - let encrypted_content = Core.System.ReadFromStorage(filename: oneFile) - if (encrypted_content != nil) - { - let pwd = Core.Security.AES.GetKey(password: AppDelegate.Session.DevicePassword) - let json = Core.Security.AES.Decrypt(value: String(decoding: encrypted_content!, as: UTF8.self), password: String(decoding: pwd, as: UTF8.self )) - if(json != nil) - { - let jsonDecoder = JSONDecoder() - do - { - let obj = try jsonDecoder.decode(Core.Models.OEGD.self, from: (json?.data(using: .utf8))!) - - let oegdFile = Core.Models.OEGDFile(OEGD: obj, filename: oneFile) - self.OEGDFiles.append(oegdFile) - - } - catch let err - { - Core.Log.Error(err: err, namespace: "OEGDController", method: "LoadOEGDs") - } - } - } - - } - } - - } - - @IBAction func editOEGD_SaveBtn_Click(_ sender: Any) - { - var filename: String? = nil - if (self.currentMode == OEGDEditType.Edit) - { - filename = self.CurrentOEGDFile?.filename - } - - if (NewOEGDCreate(filename: filename)) - { - self.HideOEGDEdit() - self.HideOEGDOptions() - self.InitializeScrollView() - } - } - - @IBAction func editOEGD_BackBtn_Click(_ sender: Any) - { - self.HideOEGDEdit() - } - - - private func HideOEGDEdit() - { - self.optionsPopup_Overlay.isHidden = false - - UIView.animate(withDuration: 0.24, animations: { - self.editPopup_Overlay.frame.origin = CGPoint(x: -self.editPopup_Overlay.frame.width, y: self.optionsPopup_Overlay.frame.origin.y) - self.optionsPopup_Overlay.frame.origin = CGPoint(x: 0, y: self.optionsPopup_Overlay.frame.origin.y) - }) {_ in - self.editPopup_Overlay.isHidden = true - } - - } - - @IBAction func editOEGD_PolicyBtn_Click(_ sender: Any) - { - //self.ShowCWAPolicy() - //self.ShowCWAPolicyInWeb() - } - - private func ShowCWAPolicyInWeb() - { - guard let url = URL(string: CWAPolicyLink) else { - return - } - let vc = WebViewController(url: url, title: Core.Lang.Get(key: "BTN_ACCEPT_CWA_POLICY"), localUrl: url) - vc.parentView = self - let navVC = UINavigationController(rootViewController: vc) - present(navVC, animated: true) - } - - private func ShowCWAPolicy() - { - self.policyPopup_Overlay.frame.origin = CGPoint(x: -self.policyPopup_Overlay.frame.width, y: self.editPopup_Overlay.frame.origin.y) - self.policyPopup_Overlay.isHidden = false - - UIView.animate(withDuration: 0.24, animations: { - self.policyPopup_Overlay.frame.origin = CGPoint(x: 0, y: self.policyPopup_Overlay.frame.origin.y) - self.editPopup_Overlay.frame.origin = CGPoint(x: self.editPopup_Overlay.frame.width, y: self.editPopup_Overlay.frame.origin.y) - }) {_ in - self.editPopup_Overlay.isHidden = true - } - } - - @IBAction func policyPopup_AcceptBtn_Click(_ sender: Any) - { - self.HideCWAPolicy() - } - - private func HideCWAPolicy() - { - self.editPopup_Checkbox.setChecked(flag: true) - - self.editPopup_Overlay.isHidden = false - - UIView.animate(withDuration: 0.24, animations: { - self.policyPopup_Overlay.frame.origin = CGPoint(x: -self.editPopup_Overlay.frame.width, y: self.policyPopup_Overlay.frame.origin.y) - self.editPopup_Overlay.frame.origin = CGPoint(x: 0, y: self.editPopup_Overlay.frame.origin.y) - }) {_ in - self.policyPopup_Overlay.isHidden = true - } - } - -} diff --git a/Befund/Controllers/PDFViewController.swift b/Befund/Controllers/PDFViewController.swift index 858cd10..a8d6318 100644 --- a/Befund/Controllers/PDFViewController.swift +++ b/Befund/Controllers/PDFViewController.swift @@ -15,7 +15,6 @@ class PDFViewController: UIViewController, PDFViewDelegate private var PDFViewer: PDFView! private var PDFData: Data? = nil private var currentPdfDoc: PDFDocument? = nil - //@IBOutlet weak var LBL_BACK: UILabel! @IBOutlet weak var mainBtnBack: UIButton! @IBOutlet weak var mainBtnMenu: UIButton! diff --git a/Befund/Controllers/SettingsController.swift b/Befund/Controllers/SettingsController.swift index f5265bb..f6ec065 100644 --- a/Befund/Controllers/SettingsController.swift +++ b/Befund/Controllers/SettingsController.swift @@ -1,5 +1,5 @@ // -// EditOEGDController.swift +// SettingsController.swift // Befund // // Created by Artur Savitskiy on 21.07.22. @@ -16,15 +16,13 @@ class SettingsController: UIViewController, UITextFieldDelegate, UpdatingParentC { case Setting case ChangePWD - case OEGD case Support case FAQ case AGB } - public static var CurrentViewController: SettingsController? = nil - public static var Settings: Core.Models.Settings? = nil + private var Settings: Core.Models.Settings? = nil @IBOutlet weak var settingsContent: UIView! @@ -35,7 +33,6 @@ class SettingsController: UIViewController, UITextFieldDelegate, UpdatingParentC //@IBOutlet weak var menuContent_labelBack: UILabel! @IBOutlet weak var menuContent_btnSettings: UIButton! @IBOutlet weak var menuContent_btnChangePassword: UIButton! - //@IBOutlet weak var menuContent_btnOEGD: UIButton! @IBOutlet weak var menuContent_btnSupport: UIButton! @IBOutlet weak var menuContent_btnFAQ: UIButton! @IBOutlet weak var menuContent_btnAGB: UIButton! @@ -45,7 +42,6 @@ class SettingsController: UIViewController, UITextFieldDelegate, UpdatingParentC @IBOutlet weak var PopupSettings: UIView! @IBOutlet weak var menuSettingsView: UIView! @IBOutlet weak var menuChangePWDView: UIView! - //@IBOutlet weak var menuOEGDView: UIView! @IBOutlet weak var menuSupportView: UIView! @IBOutlet weak var menuFAQView: UIView! @IBOutlet weak var menuAGBView: UIView! @@ -111,8 +107,7 @@ class SettingsController: UIViewController, UITextFieldDelegate, UpdatingParentC */ private func Initialize() { - SettingsController.CurrentViewController = self - SettingsController.Settings = Core.Models.Settings.loadFromFile(atPath: Core.System.SettingsPath()) + Settings = Core.Models.Settings.loadFromFile(atPath: Core.System.SettingsPath()) self.PopupSettings_Overlay.frame = self.view.frame self.view.addSubview(self.PopupSettings_Overlay) @@ -125,7 +120,7 @@ class SettingsController: UIViewController, UITextFieldDelegate, UpdatingParentC self.popupSettings_btnDE.tag = 0 self.popupSettings_btnEN.tag = 1 - self.MarkSelectedLanguage(lang: SettingsController.Settings?.lang) + self.MarkSelectedLanguage(lang: Settings?.lang) self.popupChangePWD_txtOldPassword.delegate = self self.popupChangePWD_txtOldPassword.returnKeyType = .next @@ -198,14 +193,12 @@ class SettingsController: UIViewController, UITextFieldDelegate, UpdatingParentC self.LBL_REGISTER.isHidden = !pwdIsNotDefined self.menuSettingsView.isHidden = pwdIsNotDefined self.menuChangePWDView.isHidden = pwdIsNotDefined - //self.menuOEGDView.isHidden = pwdIsNotDefined let fullHeight = self.settingsContent.frame.size.height var showHeight = self.LBL_TITLE.frame.size.height showHeight += (pwdIsNotDefined ? self.LBL_REGISTER.frame.size.height : 0) showHeight += (!pwdIsNotDefined ? self.menuSettingsView.frame.size.height : 0) showHeight += (!pwdIsNotDefined ? self.menuChangePWDView.frame.size.height : 0) - //showHeight += (!pwdIsNotDefined ? self.menuOEGDView.frame.size.height : 0) showHeight += self.menuSupportView.frame.size.height showHeight += self.menuFAQView.frame.size.height showHeight += self.menuAGBView.frame.size.height @@ -234,10 +227,6 @@ class SettingsController: UIViewController, UITextFieldDelegate, UpdatingParentC self.menuChangePWDView.frame = vFrame begY += self.menuChangePWDView.frame.size.height - //vFrame = self.menuOEGDView.frame - //vFrame.origin.y = begY - //self.menuOEGDView.frame = vFrame - //begY += self.menuOEGDView.frame.size.height } vFrame = self.menuSupportView.frame @@ -283,9 +272,6 @@ class SettingsController: UIViewController, UITextFieldDelegate, UpdatingParentC self.menuContent_btnChangePassword.setTitle(Core.Lang.Get(key: "BTN_CHANGE_PASSWORD"), for: .normal) self.menuContent_btnChangePassword.tag = PopupType.ChangePWD.rawValue - //self.menuContent_btnOEGD.setTitle(Core.Lang.Get(key: "BTN_OEGD"), for: .normal) - //self.menuContent_btnOEGD.tag = PopupType.OEGD.rawValue - self.menuContent_btnSupport.setTitle(Core.Lang.Get(key: "BTN_SUPPORT"), for: .normal) self.menuContent_btnSupport.tag = PopupType.Support.rawValue @@ -322,15 +308,15 @@ class SettingsController: UIViewController, UITextFieldDelegate, UpdatingParentC self.popupSettings_labelSettings.text = Core.Lang.Get(key: "LBL_YOUR_LABOR") self.popupSettings_labelYourLabor.text = "" - if(SettingsController.Settings?.labor != nil) + if(Settings?.labor != nil) { - self.popupSettings_labelName.text = SettingsController.Settings?.labor?.name - self.popupSettings_labelStreet.text = SettingsController.Settings?.labor?.street - self.popupSettings_labelCity.text = SettingsController.Settings?.labor?.city - self.popupSettings_labelTel.text = SettingsController.Settings?.labor?.tel - self.popupSettings_labelWeb.text = SettingsController.Settings?.labor?.web + self.popupSettings_labelName.text = Settings?.labor?.name + self.popupSettings_labelStreet.text = Settings?.labor?.street + self.popupSettings_labelCity.text = Settings?.labor?.city + self.popupSettings_labelTel.text = Settings?.labor?.tel + self.popupSettings_labelWeb.text = Settings?.labor?.web - self.popupSettings_laborLogo.image = SettingsController.Settings?.labor?.logo + self.popupSettings_laborLogo.image = Settings?.labor?.logo if(AppDelegate.Session.Maintenance) { @@ -391,7 +377,7 @@ class SettingsController: UIViewController, UITextFieldDelegate, UpdatingParentC private func CheckHostLabor() { let requestKeyPair = Core.Security.Curve25519.GenerateKeyPair() - let currentHost = (SettingsController.Settings!.labor?.host) + let currentHost = (Settings?.labor?.host) Core.Https.Request.KeyExchangeAsync(host: currentHost!, keyPair: requestKeyPair, onSuccess: { @@ -435,21 +421,7 @@ class SettingsController: UIViewController, UITextFieldDelegate, UpdatingParentC self.view.window!.layer.add(transition, forKey: kCATransition) self.present(settingsSupportController, animated: false) } - - @IBAction func ButtonOEGDOpenClick(_ sender: Any) - { - let storyboard = UIStoryboard(name: "Main", bundle: nil) - let settingsOEGDController = storyboard.instantiateViewController(identifier: "OEGDController") - settingsOEGDController.modalPresentationStyle = .fullScreen - let transition = CATransition() - transition.duration = 0.25 - transition.type = .push - transition.subtype = .fromRight - self.view.window!.layer.add(transition, forKey: kCATransition) - self.present(settingsOEGDController, animated: false) - } - @IBAction func ButtonAGBOpenClick(_ sender: Any) { let localUrl = Core.Lang.Get(key: "AGB_POLICY_LINK") @@ -484,8 +456,6 @@ class SettingsController: UIViewController, UITextFieldDelegate, UpdatingParentC popupOverlay = self.PopupChangePWD_Overlay popup = self.PopupChangePWD break - case .OEGD: - break case .Support: break default: @@ -527,8 +497,6 @@ class SettingsController: UIViewController, UITextFieldDelegate, UpdatingParentC popupOverlay = self.PopupChangePWD_Overlay popup = self.PopupChangePWD break - case .OEGD: - break case .Support: break default: @@ -554,15 +522,15 @@ class SettingsController: UIViewController, UITextFieldDelegate, UpdatingParentC { case 1: Core.Lang.SetLanguage(lang: Core.Lang.Languages.EN) - SettingsController.Settings?.lang = Core.Lang.Languages.EN + Settings?.lang = Core.Lang.Languages.EN break default: Core.Lang.SetLanguage(lang: Core.Lang.Languages.DE) - SettingsController.Settings?.lang = Core.Lang.Languages.DE + Settings?.lang = Core.Lang.Languages.DE break } - self.MarkSelectedLanguage(lang: SettingsController.Settings?.lang) - SettingsController.Settings?.save(atPath: Core.System.SettingsPath()) + self.MarkSelectedLanguage(lang: Settings?.lang) + Settings?.save(atPath: Core.System.SettingsPath()) self.InitLabels() } diff --git a/Befund/Controllers/SupportController.swift b/Befund/Controllers/SupportController.swift index 4292db6..d3f3852 100644 --- a/Befund/Controllers/SupportController.swift +++ b/Befund/Controllers/SupportController.swift @@ -11,8 +11,7 @@ import UIKit class SupportController: UIViewController, UITextFieldDelegate, UIAlertViewDelegate, UITextViewDelegate { - public static var CurrentViewController: SupportController? = nil - public static var Settings: Core.Models.Settings? = nil + private var Settings: Core.Models.Settings? = nil private var SupportTopicsRegistered: NSMutableArray = [ Core.Lang.Get(key: "LBL_SUPPORT_TOPIC_INFO") @@ -64,7 +63,7 @@ class SupportController: UIViewController, UITextFieldDelegate, UIAlertViewDeleg private func Initialize() { - SupportController.Settings = Core.Models.Settings.loadFromFile(atPath: Core.System.SettingsPath()) + Settings = Core.Models.Settings.loadFromFile(atPath: Core.System.SettingsPath()) self.support_Loading.isHidden = true self.support_Status.text = "" @@ -81,7 +80,7 @@ class SupportController: UIViewController, UITextFieldDelegate, UIAlertViewDeleg self.supportPassword_txtPassword.delegate = self self.supportPassword_txtPassword.enablePasswordToggle() - if(SupportController.Settings?.verificator_hash != nil && AppDelegate.Session.DevicePassword != nil) + if(Settings?.verificator_hash != nil && AppDelegate.Session.DevicePassword != nil) { self.topicDownPicker = DownPicker(textField: self.support_txtTopic, withData: (SupportTopicsRegistered as! [Any])) } @@ -116,15 +115,15 @@ class SupportController: UIViewController, UITextFieldDelegate, UIAlertViewDeleg self.supportPassword_btnBack.setTitle(Core.Lang.Get(key: "BTN_CANCEL"), for: .normal) self.supportPassword_btnOK.setTitle(Core.Lang.Get(key: "BTN_SEND"), for: .normal) - if(SupportController.Settings?.labor != nil) + if(Settings?.labor != nil) { - self.popupSettings_labelName.text = SupportController.Settings?.labor?.name - self.popupSettings_labelStreet.text = SupportController.Settings?.labor?.street - self.popupSettings_labelCity.text = SupportController.Settings?.labor?.city - self.popupSettings_labelTel.text = SupportController.Settings?.labor?.tel - self.popupSettings_labelWeb.text = SupportController.Settings?.labor?.web + self.popupSettings_labelName.text = Settings?.labor?.name + self.popupSettings_labelStreet.text = Settings?.labor?.street + self.popupSettings_labelCity.text = Settings?.labor?.city + self.popupSettings_labelTel.text = Settings?.labor?.tel + self.popupSettings_labelWeb.text = Settings?.labor?.web - self.popupSettings_laborLogo.image = SupportController.Settings?.labor?.logo + self.popupSettings_laborLogo.image = Settings?.labor?.logo } } @@ -153,7 +152,7 @@ class SupportController: UIViewController, UITextFieldDelegate, UIAlertViewDeleg } else { - let pwdDecrypted = Core.Security.AES.Decrypt(value: (SettingsController.Settings?.hashed_private_key ?? ""), password: pwd) + let pwdDecrypted = Core.Security.AES.Decrypt(value: (Settings?.hashed_private_key ?? ""), password: pwd) if(pwdDecrypted != nil) { @@ -254,7 +253,7 @@ class SupportController: UIViewController, UITextFieldDelegate, UIAlertViewDeleg support.topic = txtTopic support.text = txtMessage support.udid = AppDelegate.Session.Device?.udid - support.verificator_hash = SupportController.Settings?.verificator_hash + support.verificator_hash = Settings?.verificator_hash support.delete_device = deleteDevice let currentHost = ViewController.Settings!.labor?.host ?? .DEVELOPMENT diff --git a/Befund/Controllers/ViewController.swift b/Befund/Controllers/ViewController.swift index 385ff1b..a08cff0 100644 --- a/Befund/Controllers/ViewController.swift +++ b/Befund/Controllers/ViewController.swift @@ -911,7 +911,7 @@ class ViewController: UIViewController, UIAlertViewDelegate, UITextFieldDelegate { self.MainLoadingShow() - //MARK: Load from serverhttps://stackoverflow.com/questions/24190277/writing-handler-for-uialertaction + //MARK: Load from server https://stackoverflow.com/questions/24190277/writing-handler-for-uialertaction let getOpened = Core.Models.Request.GetOpened() getOpened.udid = AppDelegate.Session.Device!.udid getOpened.verificator_hash = ViewController.Settings!.verificator_hash @@ -921,12 +921,13 @@ class ViewController: UIViewController, UIAlertViewDelegate, UITextFieldDelegate Core.Https.Request.KeyExchangeAsync(host: currentHost, keyPair: requestKeyPair, onSuccess: { - publicKey in + publicKey in let sharedKey = requestKeyPair.GetSharedKey(peerPublicKeyBase64: publicKey.key) let encryptedRequest = Core.Models.Request.EncryptedRequest(descriptor: "GetOpened", contentObject: getOpened, requestType: .REQUEST_GET_OPENED, key: sharedKey!) - Core.Https.Request.EncryptedRequestAsync(host: currentHost, controller: "results", action: "opened", request: encryptedRequest, serverPublicKey: publicKey, keyPair: requestKeyPair, onSuccess: { + Core.Https.Request.EncryptedRequestAsync(host: currentHost, controller: "results", action: "opened", request: encryptedRequest, serverPublicKey: publicKey, keyPair: requestKeyPair, + onSuccess: { encryptedResponse in @@ -1326,35 +1327,33 @@ class ViewController: UIViewController, UIAlertViewDelegate, UITextFieldDelegate } else { - self.PopupNewPGS_HideLoading(message: Core.Lang.Get(key: "ERROR_COULD_NOT_REGISTER_PGS")) - Core.Log.Critical(msg: "Could not register", namespace: "ViewController", method: "requestPGS") + self.OnErrorLoading(error: Core.Lang.Get(key: "ERROR_COULD_NOT_REGISTER_PGS"), + logmsg: "Could not register", method: "requestPGS") } } } }, - onError: { - error in - - DispatchQueue.main.async - { - self.PopupNewPGS_HideLoading(message: error) - Core.Log.Critical(msg: "Server not reachable", namespace: "ViewController", method: "requestPGS") - } - }) + onError: self.OnErrorHandler) }, - onError: { - error in - DispatchQueue.main.async - { - self.PopupNewPGS_HideLoading(message: error) - Core.Log.Critical(msg: "Server not reachable", namespace: "ViewController", method: "requestPGS") - } - }); + onError: self.OnErrorHandler); } } } } + private func OnErrorHandler(error: String)->Void + { + self.OnErrorLoading(error: error, logmsg: "Server not reachable", method: "requestPGS") + } + private func OnErrorLoading(error: String, logmsg: String, method: String) + { + DispatchQueue.main.async + { + self.PopupNewPGS_HideLoading(message: error) + Core.Log.Critical(msg: logmsg, namespace: "ViewController", method: method) + } + } + private func PopupNewPGS_ShowLoading() { self.PopupNewPGS_Loading.isHidden = false diff --git a/Befund/Core/Lang/DE.swift b/Befund/Core/Lang/DE.swift index ff82b03..b330453 100644 --- a/Befund/Core/Lang/DE.swift +++ b/Befund/Core/Lang/DE.swift @@ -44,11 +44,7 @@ extension Core.Lang result.setValue( "Aktuelle PIN", forKey: "LBL_PIN") result.setValue( "Neue PIN", forKey: "LBL_NEW_PIN") result.setValue( "Neues Passwort", forKey: "LBL_NEW_PASSWORD") - result.setValue( "Meine Patientendaten", forKey: "LBL_OEGD") - result.setValue( "Sie haben Ihre Patientendaten noch nicht erfasst. Wählen Sie das Menü unten aus, um Ihre persönlichen Daten zu erfassen.", forKey: "LBL_NO_OEGD") result.setValue( "Bitte klicken Sie auf das QR-Code-Symbol, um den QR-Code zu scannen.\n\nDamit wird Ihre App automatisch mit dem passenden Labor verknüpft.", forKey: "LBL_SCAN_QR_CODE") - result.setValue( "Neue Patientendaten", forKey: "LBL_NEW_OEGD") - result.setValue( "Patientendaten bearbeiten", forKey: "LBL_EDIT_OEGD") result.setValue( "Titel", forKey: "LBL_TITLE") result.setValue( "Vorname", forKey: "LBL_FIRSTNAME") result.setValue( "Nachname", forKey: "LBL_LASTNAME") @@ -64,7 +60,6 @@ extension Core.Lang result.setValue( "Unbekannt", forKey: "LBL_GENDER_X") result.setValue( "Telefon", forKey: "LBL_TELEFON") result.setValue( "CWA Einverständniserklärung", forKey: "LBL_CWA_POLICY") - result.setValue( "Patientendaten bearbeiten", forKey: "LBL_EDIT_OEGD") result.setValue( "Sprache", forKey: "LBL_LANGUAGE") result.setValue( "Aktuelles Passwort", forKey: "LBL_CURRENT_PASSWORD") //result.setValue( "Einstellungen", forKey: "LBL_SETTINGS") @@ -86,7 +81,6 @@ extension Core.Lang result.setValue("Einstellungen", forKey: "BTN_SETTINGS") result.setValue("Passwort ändern", forKey: "BTN_CHANGE_PASSWORD") - //result.setValue("Patientendaten erfassen", forKey: "BTN_OEGD") result.setValue("Support", forKey: "BTN_SUPPORT") result.setValue("Schließen", forKey: "BTN_CLOSE") result.setValue("OK", forKey: "BTN_OK") @@ -160,8 +154,6 @@ extension Core.Lang result.setValue( "Die von Ihnen eingegebene PIN ist nicht gültig", forKey: "ERROR_INVALID_PASSWORD_RESET_PIN") result.setValue( "PIN konnte vom Server nicht empfangen werden", forKey: "ERROR_COULD_NOT_GET_PIN") //result.setValue( "Das Passwort konnte nicht geändert werden", forKey: "ERROR_COULD_NOT_CHANGE_PASSWORD") - result.setValue( "Für einen OEGD-Schein benötigen wir Ihre Einverständniserklärung", forKey: "ERROR_ACCEPT_CWA_POLICY") - result.setValue( "OEGD konnte nicht gespeichert werden", forKey: "ERROR_COULD_NOT_SAVE_OEGD") result.setValue( "Bitte geben Sie Ihren Vornamen ein", forKey: "ERROR_ENTER_FIRSTNAME") result.setValue( "Bitte geben Sie Ihren Nachnamen ein", forKey: "ERROR_ENTER_LASTNAME") result.setValue( "Bitte geben Sie Ihr Geschlecht ein", forKey: "ERROR_ENTER_GENDER") diff --git a/Befund/Core/Lang/EN.swift b/Befund/Core/Lang/EN.swift index bd75373..b0cc8b3 100644 --- a/Befund/Core/Lang/EN.swift +++ b/Befund/Core/Lang/EN.swift @@ -45,10 +45,7 @@ extension Core.Lang //result.setValue( "Error", forKey: "LBL_ERROR") result.setValue( "PIN", forKey: "LBL_PIN") result.setValue( "New Password", forKey: "LBL_NEW_PASSWORD") - result.setValue( "OEGD", forKey: "LBL_OEGD") - result.setValue( "You currently have no OEGD", forKey: "LBL_NO_OEGD") result.setValue( "Scan QR-Code", forKey: "LBL_SCAN_QR_CODE") - result.setValue( "New OEGD", forKey: "LBL_NEW_OEGD") result.setValue( "Title", forKey: "LBL_TITLE") result.setValue( "Surname", forKey: "LBL_FIRSTNAME") result.setValue( "Name", forKey: "LBL_LASTNAME") @@ -64,7 +61,6 @@ extension Core.Lang result.setValue( "Unknown", forKey: "LBL_GENDER_X") result.setValue( "Phone", forKey: "LBL_TELEFON") result.setValue( "CWA Policy", forKey: "LBL_CWA_POLICY") - result.setValue( "Edit OEGD", forKey: "LBL_EDIT_OEGD") result.setValue( "Language", forKey: "LBL_LANGUAGE") result.setValue( "Current Password", forKey: "LBL_CURRENT_PASSWORD") //result.setValue( "Settings", forKey: "LBL_SETTINGS") @@ -86,7 +82,6 @@ extension Core.Lang result.setValue("Settings", forKey: "BTN_SETTINGS") result.setValue("Change Password", forKey: "BTN_CHANGE_PASSWORD") - //result.setValue("OEGD", forKey: "BTN_OEGD") result.setValue("Support", forKey: "BTN_SUPPORT") result.setValue("Close", forKey: "BTN_CLOSE") result.setValue("OK", forKey: "BTN_OK") diff --git a/Befund/Core/Models/.DS_Store b/Befund/Core/Models/.DS_Store index ff239da36f387b0b53bea5efb50721071e4d34f2..dcfd4c9d79a2f61a02c4b7408daa380e49b6b3ce 100644 GIT binary patch delta 31 ncmZoMXfc@J&&ahgU^g=(*JK`+g_~trUolN=DA>%-@s}R}p&$xz delta 84 zcmZoMXfc@J&&abeU^g=(&tx8!g`8Xr{tT`R?hG!IdD*0t7`qu581(*w0g%POzz36N baAU}1$YDqYDPv;%xp^MTPo~Z69Dn%%r?(cg diff --git a/Befund/Core/Models/OEGD.swift b/Befund/Core/Models/OEGD.swift deleted file mode 100644 index a161a3b..0000000 --- a/Befund/Core/Models/OEGD.swift +++ /dev/null @@ -1,92 +0,0 @@ -// -// OEGD.swift -// Befund -// -// Created by Artur Savitskiy on 08.08.22. -// Copyright © 2022 MVZ Dr. Stein und Kollegen. All rights reserved. -// - -import Foundation -extension Core.Models -{ - public class OEGD : Encodable, Decodable - { - public var last_name: String - public var first_name: String - public var birthdate: String - public var gender: String - public var title: String - public var name_addition: String - public var prefix: String - public var address: Address - public var cwa_consent_flag: Bool - public var phone: String - - init() - { - self.last_name = "" - self.first_name = "" - self.birthdate = "" - self.gender = "" - self.title = "" - self.name_addition = "" - self.prefix = "" - self.address = Address.createInstance() - self.cwa_consent_flag = false - self.phone = "" - - } - - public class Address : Encodable, Decodable - { - public var zip_code: String = "" - public var city: String = "" - public var street_number: String = "" - public var country_code: String = "" - - public static func createInstance() -> Address - { - return Address() - } - } - - /** - * Returns Birthday from settings - * @return returns Date - */ - public func GetBirthday() -> Date? - { - var result: Date? = nil - - if(self.birthdate.count>0) - { - let dateFormatter = DateFormatter() - dateFormatter.dateFormat = "yyyy-MM-dd" - result = dateFormatter.date(from: self.birthdate) - } - - return result; - } - - /** - * Returns Birthday as string from settings - * @return returns string - */ - public func GetFormatedBirthday() -> String? - { - var result: String? = nil - - let date = self.GetBirthday() - - if(date != nil) - { - let dateFormatter = DateFormatter() - dateFormatter.dateFormat = "dd.MM.yyyy" - result = dateFormatter.string(from: date!) - - } - - return result; - } -} -} diff --git a/Befund/Core/Models/OEGDFile.swift b/Befund/Core/Models/OEGDFile.swift deleted file mode 100644 index f9ceb83..0000000 --- a/Befund/Core/Models/OEGDFile.swift +++ /dev/null @@ -1,16 +0,0 @@ -// -// OEGDFile.swift -// Befund -// -// Created by Artur Savitskiy on 08.08.22. -// Copyright © 2022 MVZ Dr. Stein und Kollegen. All rights reserved. -// - -extension Core.Models -{ - public struct OEGDFile - { - public var OEGD: OEGD - public var filename: String - } -} diff --git a/Befund/Core/System.swift b/Befund/Core/System.swift index 9bb1138..7843a8b 100644 --- a/Befund/Core/System.swift +++ b/Befund/Core/System.swift @@ -464,31 +464,7 @@ extension Core return result } - - public static func GetOEGDFiles() -> [String] - { - var result: [String] = [] - let storagePath = Core.System.StorageDirectoryPath() ?? "" - - if (storagePath.count>0) - { - let fileManager = FileManager.default - do{ - let files = try fileManager.contentsOfDirectory(atPath: storagePath) - for oneFile in files{ - if(oneFile.range(of: ".oegd") != nil) - { - result.append(oneFile) - } - } - } - catch let err{ - Core.Log.Error(err: err, namespace: "Core.System", method: "GetOEGDFiles") - } - } - return result - } - + public static func GetEncryptedFiles() -> [String] { var result: [String] = [] @@ -519,17 +495,6 @@ extension Core } } - - //delete all OEGD files - files = GetOEGDFiles() - if(files.count > 0) - { - for oneFile in files - { - DeleteFile(atPath: oneFile) - } - } - //delete log and resuld databases let curPath = DatabaseDirectoryPath() ?? "" if (curPath.count > 0) diff --git a/Befund/Screens/Base.lproj/Main.storyboard b/Befund/Screens/Base.lproj/Main.storyboard index cc3fe30..d0f3b72 100644 --- a/Befund/Screens/Base.lproj/Main.storyboard +++ b/Befund/Screens/Base.lproj/Main.storyboard @@ -1,8 +1,9 @@ - + - + + @@ -55,7 +56,7 @@