thieumao

Preferences

Nov 17th, 2016
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 2.23 KB | None | 0 0
  1. //
  2. //  Preferences.swift
  3. //  cfn
  4. //
  5. //  Created by nguyen.van.hung on 11/10/16.
  6. //  Copyright © 2016 Le Thi Van Anh. All rights reserved.
  7. //
  8.  
  9. import Foundation
  10. import KeychainSwift
  11. import AES256CBC
  12.  
  13. class Preferences {
  14.     private static let kCurrentLocale = "CurrentLocale"
  15.     private static let kDefaultLocale = "ja"
  16.     private static let kEmail = "Email"
  17.     private static let kPassword = "Password"
  18.     private static let kTypeLogin = "TypeLogin"
  19.     private static let kKeyAES = "12345678901234567890123456789012"
  20.    
  21.     private static let _instance = Preferences()
  22.     static func sharedInstance() -> Preferences {
  23.         return _instance
  24.     }
  25.    
  26.     func currentLocale() -> String {
  27.         if let locale = UserDefaults.standard.value(forKey: Preferences.kCurrentLocale) {
  28.             return locale as! String
  29.         }
  30.         return Preferences.kDefaultLocale
  31.     }
  32.    
  33.     func setCurrentLocale(_ locale: String) {
  34.         UserDefaults.standard.set(locale, forKey: Preferences.kCurrentLocale)
  35.         UserDefaults.standard.synchronize()
  36.     }
  37.    
  38.     func getTypeLogin() -> Int {
  39.         if let typeLogin = UserDefaults.standard.value(forKey: Preferences.kTypeLogin) {
  40.             return typeLogin as! Int
  41.         }
  42.         return -1
  43.     }
  44.    
  45.     func setTypeLogin(typeLogin: Int) {
  46.         UserDefaults.standard.set(typeLogin, forKey: Preferences.kTypeLogin)
  47.         UserDefaults.standard.synchronize()
  48.     }
  49.    
  50.     func getInfoLogin() -> (String, String) {
  51.         let keychain = KeychainSwift()
  52.         if let email = keychain.get(Preferences.kEmail), let password = keychain.get(Preferences.kPassword) {
  53.             if let passswordDecrypted = AES256CBC.decryptString(password, password: Preferences.kKeyAES) {
  54.                 return (email, passswordDecrypted)
  55.             }
  56.         }
  57.         return ("", "")
  58.     }
  59.    
  60.     func setInfoLogin(email: String, password: String) {
  61.         let keychain = KeychainSwift()
  62.         if let passswordEncrypted = AES256CBC.encryptString(password, password: Preferences.kKeyAES) {
  63.             keychain.set(passswordEncrypted, forKey: Preferences.kPassword)
  64.             keychain.set(email, forKey: Preferences.kEmail)
  65.         }
  66.     }
  67.    
  68. }
Advertisement
Add Comment
Please, Sign In to add comment