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
+58
-28
No files matched your search
@@ -98,6 +98,36 @@
|
|||||||
name = Frameworks;
|
name = Frameworks;
|
||||||
sourceTree = "<group>";
|
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 = {
|
7F83F14719F154F000C53328 = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
@@ -122,15 +152,9 @@
|
|||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
7F83F15519F154F000C53328 /* AppDelegate.swift */,
|
7F83F15519F154F000C53328 /* AppDelegate.swift */,
|
||||||
7F83F15719F154F000C53328 /* HomeViewController.swift */,
|
7F06590119F7FE920077FF95 /* View */,
|
||||||
7F0658FC19F7D6700077FF95 /* QRCodeViewController.swift */,
|
7F06590219F7FEA40077FF95 /* Controller */,
|
||||||
7F83F15919F154F000C53328 /* Main.storyboard */,
|
7F06590019F7FE750077FF95 /* Model */,
|
||||||
7F83F15E19F154F000C53328 /* LaunchScreen.xib */,
|
|
||||||
7F2C605919F160E400C32D93 /* LocationManager.swift */,
|
|
||||||
7FA6551919F6661900A1B92D /* DataManager.swift */,
|
|
||||||
7F0658FE19F7EE910077FF95 /* QRCodeManager.swift */,
|
|
||||||
7FA6551719F65FBD00A1B92D /* GPSFix.swift */,
|
|
||||||
7F44095919F65B5B0021BF22 /* CoreData.xcdatamodeld */,
|
|
||||||
7F83F15C19F154F000C53328 /* Images.xcassets */,
|
7F83F15C19F154F000C53328 /* Images.xcassets */,
|
||||||
7F83F15319F154F000C53328 /* Supporting Files */,
|
7F83F15319F154F000C53328 /* Supporting Files */,
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
class QRCodeManager: NSObject {
|
class QRCodeManager {
|
||||||
|
|
||||||
struct Keys {
|
struct Keys {
|
||||||
static let leaderBoard = "leaderboard"
|
static let leaderBoard = "leaderboard"
|
||||||
@@ -36,26 +36,24 @@ class QRCodeManager: NSObject {
|
|||||||
return Singleton.sharedQRCodeManager
|
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
|
// MARK: - methods
|
||||||
|
|
||||||
func parseString(urlString: String) {
|
func parseString(urlString: String) -> Bool {
|
||||||
let url = NSURL(string: urlString)
|
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
|
let queryString = url!.query
|
||||||
|
if (queryString == nil) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
let urlComponents = queryString!.componentsSeparatedByString("&")
|
let urlComponents = queryString!.componentsSeparatedByString("&")
|
||||||
var queryStringDictionary = [String:String]()
|
var queryStringDictionary = [String:String]()
|
||||||
for keyValuePair in urlComponents
|
for keyValuePair in urlComponents
|
||||||
@@ -73,5 +71,9 @@ class QRCodeManager: NSObject {
|
|||||||
mark = queryStringDictionary[QRCodeManager.Keys.mark]
|
mark = queryStringDictionary[QRCodeManager.Keys.mark]
|
||||||
from = queryStringDictionary[QRCodeManager.Keys.from]?.toInt()
|
from = queryStringDictionary[QRCodeManager.Keys.from]?.toInt()
|
||||||
to = queryStringDictionary[QRCodeManager.Keys.to]?.toInt()
|
to = queryStringDictionary[QRCodeManager.Keys.to]?.toInt()
|
||||||
|
|
||||||
|
// TODO: make sure minimum values set
|
||||||
|
|
||||||
|
return true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -60,9 +60,13 @@ class QRCodeViewController: UIViewController, AVCaptureMetadataOutputObjectsDele
|
|||||||
let metadataObject: AVMetadataMachineReadableCodeObject = metadataObjects[0] as AVMetadataMachineReadableCodeObject
|
let metadataObject: AVMetadataMachineReadableCodeObject = metadataObjects[0] as AVMetadataMachineReadableCodeObject
|
||||||
println(metadataObject.stringValue)
|
println(metadataObject.stringValue)
|
||||||
|
|
||||||
let notification = NSNotification(name: NotificationType.qrcodeScannedNotificationKey, object: self, userInfo:["value": metadataObject.stringValue])
|
if (!QRCodeManager.sharedManager.parseString(metadataObject.stringValue)) {
|
||||||
NSNotificationQueue.defaultQueue().enqueueNotification(notification, postingStyle: NSPostingStyle.PostASAP)
|
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()
|
session.stopRunning()
|
||||||
previewLayer.removeFromSuperlayer()
|
previewLayer.removeFromSuperlayer()
|
||||||
self.dismissViewControllerAnimated(true, completion: nil)
|
self.dismissViewControllerAnimated(true, completion: nil)
|
||||||
|
|||||||
Reference in new issue
Block a user