Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // ViewController.swift
- // MatchpointGPS
- //
- // Created by Amrit Singh on 8/10/17.
- // Copyright © 2017 foxsolution. All rights reserved.
- //
- import UIKit
- import IQKeyboardManagerSwift
- import MapKit
- import Alamofire
- import SwiftyJSON
- import GoogleSignIn
- import FBSDKCoreKit
- import FBSDKLoginKit
- import MIBadgeButton_Swift
- struct defaultsKeys {
- static let support_number = "support_number"
- static let token = "token"
- static let user = "user"
- static let is_agreement_shown = "is_agreement_shown"
- static let customer_name = "customer_name"
- static let profile_pic = "profile_pic"
- static let lang_code = "lang_code"
- static let saveparameter = "saveparameter"
- static let fcm_token_new = "fcm_token_new"
- static let fcm_token_old = "fcm_token_old"
- static let is_dnd_active = "is_dnd_active"
- }
- struct AlertType {
- static let SPEED = 1,BOUNDARY = 2,IGNITION = 14,TOWING = 20
- }
- enum ButtonType {
- case left
- case right
- }
- //STATUS : 1 = Connection Lost , 2 = Moving , 3 = Idling, 4 = Parked,
- //VEHICLE_TYPE : 1=car,2 = bike , 3 = bvus, 4 = garbage, 5 = ambulance , 6= fire truck,7=taxi,8=vip"
- final class Singleton
- {
- static let sharedInstance = Singleton()
- private init() {}
- }
- class BaseViewController: UIViewController, SlideMenuDelegate, UIGestureRecognizerDelegate
- {
- let modelName = UIDevice.current.modelName
- var presentWindow : UIWindow!
- var btnBack : UIButton!
- var backButton : UIBarButtonItem!
- var btnShowMenu : UIButton!
- var menuButton : UIBarButtonItem!
- var btnBell : MIBadgeButton!
- var bellButton : UIBarButtonItem!
- var btnHome : UIButton!
- var homeButton : UIBarButtonItem!
- var btnClose : UIButton!
- var closeButton : UIBarButtonItem!
- var btnSharee : UIButton!
- var shareButton : UIBarButtonItem!
- var btnLogo : UIButton!
- var logoButton : UIBarButtonItem!
- var rightsBarButtons : [UIBarButtonItem]!
- var lang = Language()
- var targetLang = UserDefaults.standard.object(forKey: "selectedLanguage") as? String
- var notificationdata:String!
- var varraybase = [String]()
- var snarraybase = [Int]()
- @IBOutlet weak var btn_forgotpassword: UIButton!
- @IBOutlet weak var btn_helpline: UIButton!
- var returnKeyHandler:IQKeyboardReturnKeyHandler!
- let defaults = UserDefaults.standard
- var reginTapGesture: UITapGestureRecognizer!
- deinit{
- NotificationCenter.default.removeObserver(self)
- }
- override func viewDidLoad()
- {
- super.viewDidLoad()
- NotificationCenter.default.addObserver(
- self,
- selector: #selector(AppDelegate.application(_:didReceiveRemoteNotification:)),
- name: NSNotification.Name(rawValue: "LANGUAGE_WILL_CHANGE"),
- object: nil)
- targetLang = (targetLang != nil) ? targetLang : "en"
- // Do any additional setup after loading the view, typically from a nib.
- self.setBackbutton()
- presentWindow = UIApplication.shared.windows.first
- // IQKeyboardManager.sharedManager().disabledToolbarClasses.append(BaseViewController.self)
- IQKeyboardManager.sharedManager().keyboardDistanceFromTextField = 10;
- returnKeyHandler = IQKeyboardReturnKeyHandler(controller: self)
- bellItem()
- menuItem()
- homeItem()
- closeItem()
- backItem()
- shareItem()
- logoItem()
- NotificationCenter.default.addObserver(self, selector: #selector(BaseViewController.languageDidChangeNotification(_:)), name: NSNotification.Name(rawValue: "LANGUAGE_DID_CHANGE"), object: nil)
- NotificationCenter.default.addObserver(self, selector: #selector(BaseViewController.showSpinningWheel(_:)), name: NSNotification.Name(rawValue: "Notification Recieved"), object: nil)
- NotificationCenter.default.addObserver(self, selector: #selector(BaseViewController.updateNotifcationCountView), name: NSNotification.Name(rawValue: NOTIFICATION_UPDATE), object: nil)
- languageDidChange()
- //add tapgesture
- reginTapGesture = UITapGestureRecognizer(target: self, action: #selector(reginTapView(_:)))
- reginTapGesture.numberOfTapsRequired = 1
- reginTapGesture.delegate = self
- view.addGestureRecognizer(reginTapGesture)
- reginTapGesture.cancelsTouchesInView = false
- }
- func showSpinningWheel(_ notification: NSNotification) {
- notificationdata = notification.userInfo!["data"] as? String
- let storyBoard = UIStoryboard(name: "AlertModeStoryboard", bundle: nil)
- let destVC = storyBoard.instantiateViewController(withIdentifier: "NotificationViewController") as! NotificationViewController
- destVC.notiappear = notificationdata
- self.navigationController?.pushViewController(destVC, animated: true)
- }
- func updateNotifcationCountView(_ notification: NSNotification) {
- self.updateNotificationCount()
- }
- override func viewWillAppear(_ animated: Bool) {
- if defaults.value(forKey: defaultsKeys.token) != nil{
- updateNotificationCount()
- }
- }
- func updateNotificationCount(){
- var parameters = ["token":defaults.value(forKey:defaultsKeys.token ) ?? ""] as [String : Any]
- parameters["user"] = defaults.value(forKey:defaultsKeys.user)
- let network = NetworkCall()
- network.apicall(api: "track/today_notifications_count/", parameters: parameters, isHud: false, completion: { response in
- if network.is_success!
- {
- let data = JSON(network.data)
- self.btnBell.badgeString = String(describing: data["count"].intValue)
- }
- })
- }
- @objc func reginTapView(_ sender: UITapGestureRecognizer)
- {
- self.view.endEditing(true)
- }
- func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool
- {
- if ((touch.view as? UITableView) != nil)
- {
- return false
- }
- return true
- }
- @objc func languageDidChangeNotification(_ notification:Notification){
- languageDidChange()
- }
- func languageDidChange()
- {
- if btn_forgotpassword != nil
- {
- self.btn_forgotpassword.setTitle(lang.txt_forgot_password, for: .normal)
- }
- if btn_helpline != nil
- {
- btn_helpline.setTitle(lang.txtNeedHelp, for: .normal)
- btn_helpline.titleLabel?.numberOfLines = 0
- }
- }
- func setWhiteNavigationBar()
- {
- self.navigationController?.navigationBar.setBackgroundImage(UIImage(color: .white), for: .default)
- self.navigationController?.navigationBar.shadowImage = UIImage(color: UIColor.lightGray.withAlphaComponent(1.0))
- self.navigationController?.navigationBar.isTranslucent = false;
- self.navigationController?.navigationBar.barTintColor = UIColor.white
- self.navigationController?.navigationBar.tintColor = UIColor.white
- self.navigationController?.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName:UIColor.black, NSFontAttributeName: UIFont.systemFont(ofSize: 18)]
- }
- func setTransperntNavigationBar()
- {
- self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
- self.navigationController?.navigationBar.shadowImage = UIImage()
- self.navigationController?.navigationBar.isTranslucent = true;
- self.navigationController?.navigationBar.barTintColor = UIColor.white
- self.navigationController?.navigationBar.tintColor = UIColor.white
- self.navigationController?.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName:UIColor.white]
- }
- func bellItem()
- {
- btnBell = MIBadgeButton(type: .custom)
- //btnBell.frame = CGRect(x: 0, y: 0, width: 35, height: 30)
- btnBell.widthAnchor.constraint(equalToConstant: 35.0).isActive = true
- btnBell.heightAnchor.constraint(equalToConstant: 30.0).isActive = true
- btnBell.setImage(UIImage(named: "icon-bell"), for: .normal)
- btnBell.imageView?.contentMode = .scaleAspectFit
- btnBell.tintColor = #colorLiteral(red: 0.4789211154, green: 0.5131568313, blue: 0.5401799083, alpha: 1)
- btnBell.addTarget(self, action: #selector(BaseViewController.onBellButtonPressed(_:)), for: UIControlEvents.touchUpInside);
- bellButton = UIBarButtonItem(customView: btnBell)
- bellButton.tintColor = #colorLiteral(red: 0.4789211154, green: 0.5131568313, blue: 0.5401799083, alpha: 1)
- btnBell.badgeString = ""
- }
- func homeItem()
- {
- btnHome = UIButton(type: .custom)
- btnHome.frame = CGRect(x: 0, y: 0, width: 30, height: 30)
- btnHome.setImage(UIImage(named: "icon-home"), for: .normal)
- btnHome.imageView?.contentMode = .scaleAspectFit
- btnHome.tintColor = #colorLiteral(red: 0.4789211154, green: 0.5131568313, blue: 0.5401799083, alpha: 1)
- btnHome.addTarget(self, action: #selector(BaseViewController.onHomeButtonPressed(_:)), for: UIControlEvents.touchUpInside);
- homeButton = UIBarButtonItem(customView: btnHome)
- homeButton.tintColor = #colorLiteral(red: 0.4789211154, green: 0.5131568313, blue: 0.5401799083, alpha: 1)
- }
- func menuItem()
- {
- btnShowMenu = UIButton(type: .custom)
- btnShowMenu.frame = CGRect(x: 0, y: 0, width: 35, height: 18)
- //btnShowMenu.setImage(UIImage.defaultMenuImage(), for: .normal)
- btnShowMenu.setImage(#imageLiteral(resourceName: "icon-hambuger"), for: .normal)
- btnShowMenu.widthAnchor.constraint(equalToConstant: 35.0).isActive = true
- btnShowMenu.heightAnchor.constraint(equalToConstant: 18.0).isActive = true
- btnShowMenu.imageView?.contentMode = .scaleAspectFit
- btnShowMenu.tintColor = #colorLiteral(red: 0.4789211154, green: 0.5131568313, blue: 0.5401799083, alpha: 1)
- btnShowMenu.addTarget(self, action: #selector(BaseViewController.onSlideMenuButtonPressed(_:)), for: UIControlEvents.touchUpInside);
- menuButton = UIBarButtonItem(customView: btnShowMenu)
- menuButton.tintColor = #colorLiteral(red: 0.4789211154, green: 0.5131568313, blue: 0.5401799083, alpha: 1)
- }
- func closeItem()
- {
- btnClose = UIButton(type: .custom)
- btnClose.frame = CGRect(x: 0, y: 0, width: 25, height: 25)
- btnClose.setImage(UIImage.defaultCloseImage(), for: .normal)
- btnClose.imageView?.contentMode = .scaleAspectFit
- btnClose.tintColor = #colorLiteral(red: 0.4789211154, green: 0.5131568313, blue: 0.5401799083, alpha: 1)
- btnClose.addTarget(self, action: #selector(BaseViewController.onCloseButtonPressed(_:)), for: UIControlEvents.touchUpInside);
- closeButton = UIBarButtonItem(customView: btnClose)
- closeButton.tintColor = #colorLiteral(red: 0.4789211154, green: 0.5131568313, blue: 0.5401799083, alpha: 1)
- }
- func logoItem()
- {
- btnLogo = UIButton(type: .custom)
- btnLogo.isUserInteractionEnabled = false
- btnLogo.frame = CGRect(x: 0, y: 0, width: 180, height: 44)
- btnLogo.setImage(UIImage(named: "logo-orange"), for: .normal)
- btnLogo.widthAnchor.constraint(equalToConstant: 180.0).isActive = true
- btnLogo.heightAnchor.constraint(equalToConstant: 44.0).isActive = true
- btnLogo.imageEdgeInsets = UIEdgeInsetsMake(0, -5, 0, 0)
- btnLogo.imageView?.contentMode = .scaleAspectFit
- btnLogo.tintColor = #colorLiteral(red: 0.4789211154, green: 0.5131568313, blue: 0.5401799083, alpha: 1)
- btnLogo.addTarget(self, action: #selector(BaseViewController.onLogoButtonPressed(_:)), for: UIControlEvents.touchUpInside);
- logoButton = UIBarButtonItem(customView: btnLogo)
- logoButton.tintColor = #colorLiteral(red: 0.4789211154, green: 0.5131568313, blue: 0.5401799083, alpha: 1)
- }
- func shareItem()
- {
- btnSharee = UIButton(type: .custom)
- btnSharee.frame = CGRect(x: 0, y: 0, width: 25, height: 25)
- btnSharee.setImage(UIImage(named: "icon-share"), for: .normal)
- btnSharee.imageView?.contentMode = .scaleAspectFit
- btnSharee.tintColor = #colorLiteral(red: 0.4789211154, green: 0.5131568313, blue: 0.5401799083, alpha: 1)
- btnSharee.addTarget(self, action: #selector(BaseViewController.onShareButtonPressed(_:)), for: UIControlEvents.touchUpInside);
- shareButton = UIBarButtonItem(customView: btnSharee)
- shareButton.tintColor = #colorLiteral(red: 0.4789211154, green: 0.5131568313, blue: 0.5401799083, alpha: 1)
- }
- func backItem()
- {
- btnBack = UIButton(type: .custom)
- btnBack.frame = CGRect(x: 0, y: 0, width: 35, height: 30)
- btnBack.imageEdgeInsets = UIEdgeInsetsMake(0, -10, 0, 10)
- btnBack.setImage(UIImage(named: "icon-back"), for: .normal)
- btnBack.widthAnchor.constraint(equalToConstant: 35.0).isActive = true
- btnBack.heightAnchor.constraint(equalToConstant: 30.0).isActive = true
- btnBack.tintColor = #colorLiteral(red: 0.4789211154, green: 0.5131568313, blue: 0.5401799083, alpha: 1)
- btnBack.addTarget(self, action: #selector(BaseViewController.onBackButtonPressed(_:)), for: UIControlEvents.touchUpInside);
- backButton = UIBarButtonItem(customView: btnBack)
- backButton.tintColor = #colorLiteral(red: 0.4789211154, green: 0.5131568313, blue: 0.5401799083, alpha: 1)
- }
- func addRightBarButtonItems(items:[UIBarButtonItem])
- {
- self.navigationItem.rightBarButtonItems = items //[menuButton, bellButton]
- }
- func addLeftBarButtonItems(items:[UIBarButtonItem])
- {
- self.navigationItem.leftBarButtonItems = items //[menuButton, bellButton]
- }
- // func addRightBarButtonItemsHomeBellMenu()
- // {
- // self.navigationItem.rightBarButtonItems = [menuButton, bellButton, homeButton]
- // }
- func addBackbutton()
- {
- btnBack.setImage(#imageLiteral(resourceName: "icon-back"), for: .normal)
- self.navigationItem.leftBarButtonItem = backButton;
- }
- func addWhiteBackbutton()
- {
- btnBack.setImage(#imageLiteral(resourceName: "icon-back-white"), for: .normal)
- self.navigationItem.leftBarButtonItem = backButton;
- }
- func setBackbutton()
- {
- navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .plain, target: nil, action: nil)
- }
- func addClosebutton(buttonType:ButtonType)
- {
- switch buttonType
- {
- case .left:
- self.navigationItem.leftBarButtonItem = closeButton;
- break
- case .right:
- self.navigationItem.rightBarButtonItem = closeButton;
- break
- }
- }
- @objc func onBackButtonPressed(_ sender : UIButton)
- {
- // _ = navigationController?.popViewController(animated: true)
- }
- @objc func onCloseButtonPressed(_ sender : UIButton)
- {
- }
- @objc func onHomeButtonPressed(_ sender : UIButton)
- {
- }
- @objc func onBellButtonPressed(_ sender : UIButton)
- {
- }
- @objc func onShareButtonPressed(_ sender : UIButton)
- {
- }
- @objc func onLogoButtonPressed(_ sender : UIButton)
- {
- }
- @objc func onSlideMenuButtonPressed(_ sender : UIButton)
- {
- btnShowMenu.alpha = 0.0;
- //btnBell.alpha = 0.0;
- if (sender.tag == 10)
- {
- // To Hide Menu If it already there
- //slideMenuItemSelectedAtIndex(-1);
- sender.tag = 0;
- let viewMenuBack : UIView = view.subviews.last!
- // viewMenuBack.backgroundColor = UIColor.clearColor()
- UIView.animate(withDuration: 1.0, animations: {() -> Void in
- var frameMenu : CGRect = viewMenuBack.frame
- frameMenu.origin.x = 2 * UIScreen.main.bounds.size.width
- viewMenuBack.frame = frameMenu
- viewMenuBack.layoutIfNeeded()
- viewMenuBack.backgroundColor = UIColor.clear
- //self.btnShowMenu.setImage(UIImage.defaultMenuImage(), for: .normal)
- self.btnShowMenu.setImage(#imageLiteral(resourceName: "icon-hambuger"), for: .normal)
- self.btnShowMenu.alpha = 1.0
- }, completion: { (finished) -> Void in
- viewMenuBack.removeFromSuperview()
- })
- return
- }
- sender.isEnabled = false
- sender.tag = 10
- let storyboard = UIStoryboard(name: Storyboard.Main, bundle: nil)
- let menuVC : SlideMenuViewController = storyboard.instantiateViewController(withIdentifier: "SlideMenuViewController") as! SlideMenuViewController
- menuVC.showsShadows = false
- menuVC.view.backgroundColor = UIColor.clear;
- menuVC.btnMenu = sender
- menuVC.delegate = self
- self.view.addSubview(menuVC.view)
- self.addChildViewController(menuVC)
- menuVC.view.layoutIfNeeded()
- menuVC.view.frame=CGRect(x: 2*UIScreen.main.bounds.size.width, y: 0, width: UIScreen.main.bounds.size.width, height: self.view.bounds.size.height);
- UIView.animate(withDuration: 1.0, animations: { () -> Void in
- menuVC.view.frame=CGRect(x: 0, y: 0, width: UIScreen.main.bounds.size.width, height: self.view.bounds.size.height);
- sender.isEnabled = true
- self.btnShowMenu.setImage(UIImage.defaultCloseImage(), for: .normal)
- self.btnShowMenu.alpha = 1.0
- }, completion: { (finished) -> Void in
- menuVC.view.backgroundColor = UIColor.init(white: 0, alpha: 0.5)
- })
- }
- func slideMenuItemSelectedAtIndex(_ index: Int)
- {
- btnShowMenu.alpha = 0.0;
- UIView.animate(withDuration: 1.0, animations: {() -> Void in
- //self.btnShowMenu.setImage(UIImage.defaultMenuImage(), for: .normal)
- self.btnShowMenu.setImage(#imageLiteral(resourceName: "icon-hambuger"), for: .normal)
- self.btnShowMenu.alpha = 1.0
- }, completion: { (finished) -> Void in
- })
- let topViewController : UIViewController = self.navigationController!.topViewController!
- print("View Controller is : \(topViewController) \n", terminator: "")
- switch(index)
- {
- case 0:
- openDrawerViewController(storyboard: Storyboard.ProfileStoryboard, identifier: Identifier.ProfilePageViewController)
- break
- case 1:
- openDrawerViewController(storyboard: Storyboard.Main, identifier: Identifier.VehicleListViewController)
- break
- case 2:
- openDrawerViewController(storyboard: Storyboard.Main, identifier: Identifier.DriverListViewController)
- break
- case 3:
- openDrawerViewController(storyboard: Storyboard.Main, identifier: Identifier.TripsViewController)
- break
- case 4:
- getVehicleListData()
- //openDrawerViewController(storyboard: Storyboard.ReportsStoryboard, identifier: Identifier.ReportsViewController)
- break
- case 5:
- openDrawerViewController(storyboard: Storyboard.AlertModeStoryboard, identifier: Identifier.SelectAlertModeViewController)
- break
- case 6:
- openDrawerViewController(storyboard: Storyboard.UserProfileStoryboard, identifier: Identifier.UserProfileViewController)
- break
- case 7:
- openDrawerViewController(storyboard: Storyboard.Main, identifier: Identifier.SupportViewController)
- break
- case 8:
- //comment here for tutorials
- break
- case 9:
- print("Logout\n", terminator: "")
- logout()
- break
- default:
- print("default\n", terminator: "")
- }
- }
- func openDrawerViewController(storyboard:String, identifier:String){
- DispatchQueue.main.async{
- // Your code to run on the main queue/thread
- let storyboard = UIStoryboard(name: storyboard, bundle: nil)
- let destViewController = storyboard.instantiateViewController(withIdentifier: identifier)
- let topViewController : UIViewController = self.navigationController!.topViewController!
- if (topViewController.restorationIdentifier! == destViewController.restorationIdentifier!){
- }
- else
- {
- for vc in (self.navigationController?.viewControllers)!
- {
- if (vc.classForCoder == destViewController.classForCoder)
- {
- self.navigationController!.popToViewController(vc, animated: true)
- }
- }
- self.navigationController!.pushViewController(destViewController, animated: true)
- };
- }
- }
- func openViewControllerBasedOn(storyboard:String, identifier:String) -> UIViewController
- {
- let storyboard = UIStoryboard(name: storyboard, bundle: nil)
- let destViewController = storyboard.instantiateViewController(withIdentifier: identifier)
- let topViewController : UIViewController = self.navigationController!.topViewController!
- if (topViewController.restorationIdentifier! == destViewController.restorationIdentifier!){
- print("Same VC")
- }
- else
- {
- for vc in (self.navigationController?.viewControllers)!
- {
- if (vc.classForCoder == destViewController.classForCoder)
- {
- print("Pop To VC")
- self.navigationController!.popToViewController(vc, animated: true)
- return vc
- }
- }
- if destViewController is AgreementViewController{
- (destViewController as! AgreementViewController).isViewMode = true
- }
- self.navigationController!.pushViewController(destViewController, animated: true)
- }
- return destViewController
- }
- func getPreviousDate(days:Int,includeToday:Bool) -> (String,String){
- let lastWeekDate = NSCalendar.current.date(byAdding: .day, value: days, to: NSDate() as Date)
- let dateFormatter = DateFormatter()
- dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
- dateFormatter.timeZone = TimeZone(identifier: "UTC")
- let fromDate:String = dateFormatter.string(from: lastWeekDate!)
- let toDate:String = dateFormatter.string(from: Date())
- return(fromDate,toDate)
- }
- func setAppSession(data:[String:Any])
- {
- setUserDefaults(value: data[defaultsKeys.user] ?? 0, key: defaultsKeys.user)
- setUserDefaults(value: data[defaultsKeys.token] ?? "", key: defaultsKeys.token)
- setUserDefaults(value: data[defaultsKeys.customer_name] ?? "", key: defaultsKeys.customer_name)
- setUserDefaults(value: data[defaultsKeys.profile_pic] ?? "", key: defaultsKeys.profile_pic)
- setUserDefaults(value: data[defaultsKeys.lang_code] ?? "en", key: defaultsKeys.lang_code)
- setUserDefaults(value: data[defaultsKeys.is_agreement_shown] ?? 0, key: defaultsKeys.is_agreement_shown)
- }
- func setUserDefaults(value:Any, key: String)
- {
- UserDefaults.standard.setValue(value, forKey: key)
- UserDefaults.standard.synchronize()
- }
- func getUserDefaults(key: String) -> Any
- {
- return UserDefaults.standard.object(forKey: key) ?? ""
- }
- func removeAppSession()
- {
- if GIDSignIn.sharedInstance().hasAuthInKeychain()
- {
- GIDSignIn.sharedInstance().signOut()
- }
- let fbLoginManager : FBSDKLoginManager = FBSDKLoginManager()
- fbLoginManager.logOut()
- let userdefaults = UserDefaults.standard
- let userId = defaults.string(forKey:defaultsKeys.token )
- var arrSavedSerialNumber = [String]()
- if let arr = UserDefaults.standard.stringArray(forKey: userId!)
- {
- arrSavedSerialNumber = arr
- }
- if !arrSavedSerialNumber.isEmpty {
- for arrSavedSerialNumber in arrSavedSerialNumber {
- userdefaults.removeObject(forKey: arrSavedSerialNumber)
- }
- }
- userdefaults.removeObject(forKey: defaultsKeys.user)
- userdefaults.removeObject(forKey: defaultsKeys.profile_pic)
- userdefaults.removeObject(forKey: defaultsKeys.lang_code)
- userdefaults.removeObject(forKey: defaultsKeys.token)
- userdefaults.removeObject(forKey: defaultsKeys.customer_name)
- }
- func removeUserDefaults(key: String)
- {
- UserDefaults.standard.removeObject(forKey: key)
- UserDefaults.standard.synchronize()
- }
- // MARK: - IBAction
- @IBAction func button_forgotpassword_pressed(_ sender: UIButton)
- {
- self.performSegue(withIdentifier: "forgotpass", sender: self)
- }
- @IBAction func button_helpline_pressed(_ sender: UIButton) {
- let numberstr = String(describing: getUserDefaults(key: defaultsKeys.support_number))
- callNumber(phoneNumber: numberstr)
- }
- func callNumber(phoneNumber:String) {
- if let url = URL(string: "tel://\(phoneNumber)"), UIApplication.shared.canOpenURL(url) {
- if #available(iOS 10, *) {
- UIApplication.shared.open(url)
- } else {
- UIApplication.shared.openURL(url)
- }
- }
- // if let phoneCallURL = URL(string: "tel://\(phoneNumber)") {
- //
- // let application:UIApplication = UIApplication.shared
- // if (application.canOpenURL(phoneCallURL)) {
- // application.open(phoneCallURL, options: [:], completionHandler: nil)
- // }
- // }
- }
- func getCenterCoordinate(annotations:[CustomPointAnnotation]) -> CLLocationCoordinate2D
- {
- var minLat: CLLocationDegrees = CLLocationDegrees(MAXFLOAT)
- var minLng: CLLocationDegrees = CLLocationDegrees(MAXFLOAT)
- var maxLat: CLLocationDegrees = -200
- var maxLng:CLLocationDegrees = -200
- for annotation in annotations
- {
- minLat = min(minLat, annotation.coordinate.latitude)
- minLng = min(minLng, annotation.coordinate.longitude);
- maxLat = max(maxLat, annotation.coordinate.latitude);
- maxLng = max(maxLng, annotation.coordinate.longitude);
- }
- let coordinateOrigin:CLLocationCoordinate2D = CLLocationCoordinate2DMake(minLat, minLng);
- let coordinateMax: CLLocationCoordinate2D = CLLocationCoordinate2DMake(maxLat, maxLng);
- let upperLeft: MKMapPoint = MKMapPointForCoordinate(coordinateOrigin);
- let lowerRight: MKMapPoint = MKMapPointForCoordinate(coordinateMax);
- //Create the map rect
- let mapRect:MKMapRect = MKMapRectMake(upperLeft.x,
- upperLeft.y,
- lowerRight.x - upperLeft.x,
- lowerRight.y - upperLeft.y);
- //Create the region
- let region:MKCoordinateRegion = MKCoordinateRegionForMapRect(mapRect);
- //THIS HAS THE CENTER, it should include spread
- let centerCoordinate: CLLocationCoordinate2D = region.center;
- return centerCoordinate
- }
- func createMarker(vehicle: Vehicle) -> CustomPointAnnotation
- {
- let latitude = Double(vehicle.strLat!)
- let longitude = Double(vehicle.strLong!)
- let coordinate = CLLocationCoordinate2D(latitude: latitude!, longitude: longitude!)
- let customMarker = CustomPointAnnotation(coordinate: coordinate, title: "", subtitle: "")
- if (vehicle.strSerial_no != nil)
- {
- customMarker.serialNo = vehicle.strSerial_no
- customMarker.reuseIdentifier = vehicle.strSerial_no
- }
- else
- {
- customMarker.serialNo = "0"
- customMarker.reuseIdentifier = "-"
- }
- if (vehicle.status != nil)
- {
- switch (vehicle.status)!
- {
- case VehicleStatus.connectionlost:
- customMarker.image = UIImage.connectionlost
- case VehicleStatus.moving:
- customMarker.image = UIImage.moving
- case VehicleStatus.idle:
- customMarker.image = UIImage.idle
- case VehicleStatus.parked:
- customMarker.image = UIImage.parked
- }
- }
- else
- {
- customMarker.image = UIImage.connectionlost
- }
- return customMarker
- }
- func convertToDictionary(text: String) -> [String: Any]?
- {
- if let data = text.data(using: .utf8) {
- do {
- return try JSONSerialization.jsonObject(with: data, options: []) as? [String: Any]
- } catch {
- print(error.localizedDescription)
- apppresentWindow?.makeToast(message: self.lang.something_went_wrong)
- }
- }
- return nil
- }
- func getAddress(latitude:Double, longitude:Double, completion:@escaping (String) -> Void)
- {
- // let longitude :CLLocationDegrees = Double(longitude)! //-122.0312186
- // let latitude :CLLocationDegrees = Double(latitude)! // 37.33233141
- let location = CLLocation(latitude: latitude, longitude: longitude) //changed!!!
- print(location)
- CLGeocoder().reverseGeocodeLocation(location, completionHandler: {(placemarks, error) -> Void in
- print(location)
- if error != nil {
- print("Reverse geocoder failed with error" + (error?.localizedDescription)!)
- apppresentWindow?.makeToast(message: self.lang.something_went_wrong)
- return
- }
- if (placemarks?.count)! > 0 {
- let pm = placemarks?[0]
- var addressString : String = ""
- if pm?.subLocality != nil {
- addressString = addressString + (pm?.subLocality!)! + ", "
- }
- if pm?.thoroughfare != nil {
- addressString = addressString + (pm?.thoroughfare!)! + ", "
- }
- if pm?.locality != nil {
- addressString = addressString + (pm?.locality!)! + ", "
- }
- if pm?.country != nil {
- addressString = addressString + (pm?.country!)! + ", "
- }
- if pm?.postalCode != nil {
- addressString = addressString + (pm?.postalCode!)! + " "
- }
- completion(addressString)
- }
- else {
- print("Problem with the data received from geocoder")
- apppresentWindow?.makeToast(message: self.lang.something_went_wrong)
- }
- })
- }
- func invite_authorised_user(list:[String])
- {
- //{"user":3759,"app_version":2.0,"token":"4ot-d64a39ee1a64648eedcc","mobile_number_list":[]}
- //let arr = [7875512881]//,9011877864]
- let parameters:Parameters = ["app_version":Miscellaneous.getAppVersion(),"token":defaults.value(forKey:defaultsKeys.token)!,"user":defaults.value(forKey:defaultsKeys.user)!,"mobile_number_list":list]
- //http://app-beta01.do-sg.mpgps.aspade.in/track/invite_authorised_user/
- let network = NetworkCall()
- network.apicalljsonencoding(api: "track/invite_authorised_user/", parameters: parameters, isHud: true, completion: { response in
- let popup : LogoutView = LogoutView(frame: self.navigationController!.view.bounds)
- popup.bgView.backgroundColor = UIColor.groupTableViewBackground
- popup.msgLable.textColor = .gray
- if network.is_success
- {
- if network.response_code == 200
- {
- popup.show(view: self.navigationController!.view, image: #imageLiteral(resourceName: "icon-tickgreen"), strMessage: network.response_message, timeInterval: 4.0, hideOntap: true, complete: { () in
- self.dismiss(animated: true, completion: nil)
- })
- }
- else
- {
- apppresentWindow?.makeToast(message: self.lang.something_went_wrong)
- }
- }
- else
- {
- if network.response_code == 509
- {
- popup.show(view: self.navigationController!.view, image: #imageLiteral(resourceName: "icon-tickgreen"), strMessage:network.response_message, timeInterval: 4.0, hideOntap: true, complete: { () in
- self.dismiss(animated: true, completion: nil)
- })
- }
- else
- {
- apppresentWindow?.makeToast(message: self.lang.something_went_wrong)
- }
- }
- })
- }
- func getVehicleListData()
- {
- //{"user":3759,"app_version":2.0,"token":"4ot-d64a39ee1a64648eedcc"}
- var parameters = ["app_version":Miscellaneous.getAppVersion()] as [String : Any]
- parameters["token"] = defaults.value(forKey:defaultsKeys.token )
- parameters["user"] = defaults.value(forKey:defaultsKeys.user)
- let network = NetworkCall()
- network.apicall(api: "track/vehicle_list/", parameters: parameters, isHud:true, completion: { response in
- //print(response)
- if network.is_success!
- {
- let data = network.data as! [[String:Any]]
- var arrVehicle = [Vehicle]()
- for dict in data {
- let vehicle = Vehicle()
- if let srNo = dict["serial_no"] as? Int{
- vehicle.strSerial_no = String(srNo)
- }
- vehicle.strVehicle_name = dict["vehicle_name"] as? String
- vehicle.isAdded = false
- arrVehicle.append(vehicle)
- }
- let vc = self.openViewControllerBasedOn(storyboard: Storyboard.ReportsStoryboard, identifier: Identifier.ReportsViewController) as! ReportsViewController
- vc.arrVehicle = arrVehicle
- }
- })
- }
- func logout()
- {
- let parameters = ["app_version": Miscellaneous.getAppVersion(),"token": defaults.value(forKey:defaultsKeys.token)!,"user": defaults.value(forKey:defaultsKeys.user)!,"fcm_token": UserDefaults.standard.value(forKey: defaultsKeys.fcm_token_new )!] as [String : Any]
- Alamofire.request("http://139.59.94.211/auth/logout/", method: .post, parameters: parameters).responseJSON { response in
- self.removeAppSession()
- let popup : LogoutView = LogoutView(frame: self.navigationController!.view.bounds)
- popup.delegate = self
- popup.show(view: self.navigationController!.view, image: #imageLiteral(resourceName: "icon-tickorange"),strMessage: "Successfully Logged out", timeInterval: 3.0, hideOntap: true, complete: { () in
- _ = setRootViewContoller(storyboardName: Storyboard.SignInStoryboard, identifier: Identifier.SignInNavigation)
- })
- }
- }
- override func didReceiveMemoryWarning() {
- super.didReceiveMemoryWarning()
- // Dispose of any resources that can be recreated.
- }
- }
- extension BaseViewController: VehicleListDelegate
- {
- func liveTrack(vehicle: Vehicle)
- {
- if self is HomeViewController
- {
- let homeVC = self as! HomeViewController
- homeVC.mapview.removeAnnotations(homeVC.mapview.annotations!)
- homeVC.slectedVehicle = vehicle
- homeVC.openSegment()
- }
- }
- }
- extension BaseViewController: LogoutViewDelegate
- {
- func didLogoutViewClick(logoutview: LogoutView)
- {
- UserDefaults.standard.removeObject(forKey: defaultsKeys.user)
- UserDefaults.standard.removeObject(forKey: defaultsKeys.profile_pic)
- UserDefaults.standard.removeObject(forKey: defaultsKeys.is_agreement_shown)
- UserDefaults.standard.removeObject(forKey: defaultsKeys.lang_code)
- UserDefaults.standard.removeObject(forKey: defaultsKeys.token)
- UserDefaults.standard.removeObject(forKey: defaultsKeys.customer_name)
- _ = setInitialRootViewContoller(storyboardName: Storyboard.SignInStoryboard)
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement