mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-04 03:13:49 +00:00
- added checking of QR code
- grouped files into MVC
This commit is contained in:
1 parent
b0e7c672ef
commit
6c0510e177
3 files changed
+56
-26
No files matched your search
@@ -98,6 +98,36 @@
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
7F06590019F7FE750077FF95 /* Model */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
7FA6551919F6661900A1B92D /* DataManager.swift */,
|
||||
7FA6551719F65FBD00A1B92D /* GPSFix.swift */,
|
||||
7F44095919F65B5B0021BF22 /* CoreData.xcdatamodeld */,
|
||||
);
|
||||
name = Model;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
7F06590119F7FE920077FF95 /* View */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
7F83F15719F154F000C53328 /* HomeViewController.swift */,
|
||||
7F0658FC19F7D6700077FF95 /* QRCodeViewController.swift */,
|
||||
7F83F15919F154F000C53328 /* Main.storyboard */,
|
||||
7F83F15E19F154F000C53328 /* LaunchScreen.xib */,
|
||||
);
|
||||
name = View;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
7F06590219F7FEA40077FF95 /* Controller */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
7F2C605919F160E400C32D93 /* LocationManager.swift */,
|
||||
7F0658FE19F7EE910077FF95 /* QRCodeManager.swift */,
|
||||
);
|
||||
name = Controller;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
7F83F14719F154F000C53328 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@@ -122,15 +152,9 @@
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
7F83F15519F154F000C53328 /* AppDelegate.swift */,
|
||||
7F83F15719F154F000C53328 /* HomeViewController.swift */,
|
||||
7F0658FC19F7D6700077FF95 /* QRCodeViewController.swift */,
|
||||
7F83F15919F154F000C53328 /* Main.storyboard */,
|
||||
7F83F15E19F154F000C53328 /* LaunchScreen.xib */,
|
||||
7F2C605919F160E400C32D93 /* LocationManager.swift */,
|
||||
7FA6551919F6661900A1B92D /* DataManager.swift */,
|
||||
7F0658FE19F7EE910077FF95 /* QRCodeManager.swift */,
|
||||
7FA6551719F65FBD00A1B92D /* GPSFix.swift */,
|
||||
7F44095919F65B5B0021BF22 /* CoreData.xcdatamodeld */,
|
||||
7F06590119F7FE920077FF95 /* View */,
|
||||
7F06590219F7FEA40077FF95 /* Controller */,
|
||||
7F06590019F7FE750077FF95 /* Model */,
|
||||
7F83F15C19F154F000C53328 /* Images.xcassets */,
|
||||
7F83F15319F154F000C53328 /* Supporting Files */,
|
||||
);
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
import Foundation
|
||||
|
||||
class QRCodeManager: NSObject {
|
||||
class QRCodeManager {
|
||||
|
||||
struct Keys {
|
||||
static let leaderBoard = "leaderboard"
|
||||
@@ -36,26 +36,24 @@ class QRCodeManager: NSObject {
|
||||
return Singleton.sharedQRCodeManager
|
||||
}
|
||||
|
||||
|
||||
override init() {
|
||||
super.init()
|
||||
NSNotificationCenter.defaultCenter().addObserver(self, selector: "qrcodeScanned:", name: QRCodeViewController.NotificationType.qrcodeScannedNotificationKey, object: nil)
|
||||
}
|
||||
|
||||
// MARK: - notification callbacks
|
||||
|
||||
func qrcodeScanned(notification: NSNotification) {
|
||||
parseString(notification.userInfo!["value"] as String)
|
||||
}
|
||||
|
||||
// MARK: - methods
|
||||
|
||||
func parseString(urlString: String) {
|
||||
func parseString(urlString: String) -> Bool {
|
||||
let url = NSURL(string: urlString)
|
||||
|
||||
server = url!.scheme! + "://" + url!.host! + ":" + url!.port!.stringValue
|
||||
if (url == nil || url!.scheme == nil || url!.host == nil) {
|
||||
return false
|
||||
}
|
||||
|
||||
server = url!.scheme! + "://" + url!.host!
|
||||
if ((url!.port) != nil) {
|
||||
server! += ":" + url!.port!.stringValue
|
||||
}
|
||||
|
||||
let queryString = url!.query
|
||||
if (queryString == nil) {
|
||||
return false
|
||||
}
|
||||
let urlComponents = queryString!.componentsSeparatedByString("&")
|
||||
var queryStringDictionary = [String:String]()
|
||||
for keyValuePair in urlComponents
|
||||
@@ -73,5 +71,9 @@ class QRCodeManager: NSObject {
|
||||
mark = queryStringDictionary[QRCodeManager.Keys.mark]
|
||||
from = queryStringDictionary[QRCodeManager.Keys.from]?.toInt()
|
||||
to = queryStringDictionary[QRCodeManager.Keys.to]?.toInt()
|
||||
|
||||
// TODO: make sure minimum values set
|
||||
|
||||
return true
|
||||
}
|
||||
}
|
||||
@@ -60,8 +60,12 @@ class QRCodeViewController: UIViewController, AVCaptureMetadataOutputObjectsDele
|
||||
let metadataObject: AVMetadataMachineReadableCodeObject = metadataObjects[0] as AVMetadataMachineReadableCodeObject
|
||||
println(metadataObject.stringValue)
|
||||
|
||||
let notification = NSNotification(name: NotificationType.qrcodeScannedNotificationKey, object: self, userInfo:["value": metadataObject.stringValue])
|
||||
NSNotificationQueue.defaultQueue().enqueueNotification(notification, postingStyle: NSPostingStyle.PostASAP)
|
||||
if (!QRCodeManager.sharedManager.parseString(metadataObject.stringValue)) {
|
||||
var alert = UIAlertController(title: "SAP Tracker", message: "Incorrect QR Code", preferredStyle: UIAlertControllerStyle.Alert)
|
||||
alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil))
|
||||
self.presentViewController(alert, animated: true, completion: nil)
|
||||
return
|
||||
}
|
||||
|
||||
session.stopRunning()
|
||||
previewLayer.removeFromSuperlayer()
|
||||
|
||||
Reference in new issue
Block a user