123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211 |
- //
- // LockOptionViewViewControllerSwift.swift
- // MCPlus
- //
- // Created by seo ha on 14/02/2019.
- // Copyright © 2019 KangSH. All rights reserved.
- //
- import Foundation
- import UIKit
- class LockOptionViewViewController: UIViewController {
-
- @IBOutlet weak var tableview:UITableView!{
- didSet{
- tableview.delegate = self
- tableview.dataSource = self
-
- let nib = UINib(nibName: cellIdentifier, bundle: nil)
-
- tableview.register(nib, forCellReuseIdentifier: cellIdentifier)
- }
- }
- @IBOutlet weak var navigationbar:UINavigationBar!{
- didSet{
- navigationbar.titleTextAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]
- navigationbar.barTintColor = UIColor(red: 71/255.0, green: 112/255.0, blue: 178/255.0, alpha: 1.0)
- navigationbar.isTranslucent = false
- let backButton = UIBarButtonItem(title: "", style: .plain, target: navigationController, action: nil)
-
- let rightButton = UIBarButtonItem(barButtonSystemItem: .stop, target: nil, action: #selector(closeOption))
- rightButton.tintColor = UIColor.white
-
- let previousItem = UINavigationItem(title: "암호 잠금")
- previousItem.leftBarButtonItem = backButton
- previousItem.rightBarButtonItem = rightButton
-
- navigationbar.pushItem(previousItem, animated: true)
- }
- }
- @IBOutlet weak var naviTitle:UINavigationItem!
-
- let userDefaults = UserDefaults.standard
- var str_desc:String = "암호를 분실했을 경우 앱을 삭제하고 재설치 해야하며, 재설치 후 암호를 새로 설정하시기 바랍니다."
-
- var itemsInfo:[String:[String]] = {
- var itemsInfo = [String:[String]]()
-
- itemsInfo["1"] = ["암호잠금(필수)"]
- itemsInfo["2"] = ["생체인증(지문)"]
- itemsInfo["3"] = ["암호 변경"]
-
- return itemsInfo
- }()
-
- let cellIdentifier = "LockOptionCell"
-
- deinit {
- Notification.removeNotification(observer: self)
- }
-
-
- }
- extension LockOptionViewViewController{
-
- func appWillEnterBackground(notification:Notification){
- let lockScreenDao = LockScreenDAO.sharedInstance
- self.dismiss(animated: false, completion: nil)
- }
-
- override func viewDidLoad() {
- Notification.registerNotification(name: UIApplication.didEnterBackgroundNotification, queue: .main, block: appWillEnterBackground)
-
- }
-
- override func didReceiveMemoryWarning() {
- super.didReceiveMemoryWarning()
- // Dispose of any resources that can be recreated.
- }
-
- @objc func closeOption(){
- print("close.......")
- self.dismiss(animated: false, completion: nil)
- }
-
- @objc func switchChanged(sender:UISwitch?){
- print("The tag is \(sender?.tag)")
- print("The switch is \(sender?.isOn == true ? "ON" : "OFF")")
-
- // 어차피 현재 스위치 태그는 다 0임.
- userDefaults.set(sender?.isOn == true ? "ON" : "OFF", forKey: "fingerprint")
-
- }
- }
- //MARK: - UITableview delegate & datasource
- extension LockOptionViewViewController:UITableViewDelegate, UITableViewDataSource{
-
- func numberOfSections(in tableView: UITableView) -> Int {
- // Return the number of sections.
- return itemsInfo.map({$0.key}).count
- }
-
- func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int{
- let key = itemsInfo.map({$0.key})[section]
-
- return itemsInfo[key]?.count ?? 0
-
- }
-
- func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell{
-
- let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath) as! LockOptionCell
-
- cell.selectionStyle = .none
-
- let key = itemsInfo.map({$0.key})[indexPath.section]
- cell.label.text = itemsInfo[key]?[indexPath.row] ?? ""
- cell.switchButton.tag = indexPath.row
-
- cell.switchButton.addTarget(self, action: #selector(switchChanged(sender:)), for: .valueChanged)
- cell.switchButton.isEnabled = false
-
- switch indexPath.section {
- case 1:
- cell.switchButton.isEnabled = true
- if let temp = userDefaults.object(forKey: "fingerprint") as? String{
- cell.switchButton.isOn = temp == "ON"
- }else{
- cell.switchButton.isOn = true
- }
- case 2:
- cell.switchButton.isHidden = true
- default:
- break
- }
-
-
- return cell
-
-
- }
-
- func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
- return "" //[[itemsInfo allKeys] objectAtIndex:section];
- }
-
- func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
- return 44
- }
-
- func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
- // calculate height of UILabel
- let lblSectionName = UILabel()
-
- lblSectionName.text = self.str_desc
- lblSectionName.textColor = UIColor.lightGray
- lblSectionName.numberOfLines = 0
- lblSectionName.lineBreakMode = .byWordWrapping
- lblSectionName.backgroundColor = UIColor.lightGray
- lblSectionName.frame = CGRect(x: 20, y: 15, width: Constants.kScreenWidth-30, height: lblSectionName.frame.width)
- lblSectionName.sizeToFit()
-
- //푸터 설정
- if section == 2 {
- return lblSectionName.frame.size.height + 30
- }
-
- return 0
- }
-
- func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
- let footerView = UIView()
- let lblSectionName = UILabel()
-
- lblSectionName.text = self.str_desc
- lblSectionName.textColor = UIColor.red
- lblSectionName.numberOfLines = 0
- lblSectionName.lineBreakMode = .byWordWrapping;
- lblSectionName.frame = CGRect(x: 20, y: 15, width: Constants.kScreenWidth-30, height: lblSectionName.frame.width)
- lblSectionName.sizeToFit()
-
- footerView.addSubview(lblSectionName)
- footerView.frame = CGRect(x: 0, y: 0, width: tableView.bounds.width, height: lblSectionName.frame.height)
- footerView.backgroundColor = UIColor(red: 247/255.0, green: 247/255.0, blue: 247/255.0, alpha: 1.0)
-
- if section == 2 {
- return footerView
- }
- return nil
- }
-
- func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
-
- print("selected cell is (\(indexPath.section), \(indexPath.row))")
-
- if indexPath.section == 2 {
- // 암호변경화면 호출.
-
- let lockScreenDao = LockScreenDAO.sharedInstance
- lockScreenDao.pwInputType = LockScreenDAO.PASSWORD_INPUT_TYPE.FIRST_INPUT
- lockScreenDao.saveOptionValuesWithoutPassword()
-
- let VC = ScreenLockViewController()
- self.present(VC, animated: true, completion: nil)
- }
- }
-
-
- }
|