Skip to content

Commit

Permalink
Merge branch 'master' into sv/active-webview
Browse files Browse the repository at this point in the history
  • Loading branch information
blackgold9 committed Sep 1, 2018
2 parents 9a28632 + 9a78d2f commit 9b92a31
Show file tree
Hide file tree
Showing 12 changed files with 57 additions and 56 deletions.
2 changes: 1 addition & 1 deletion APNSAttachmentService/Info.plist
Expand Up @@ -19,7 +19,7 @@
<key>CFBundleShortVersionString</key>
<string>1.2.0</string>
<key>CFBundleVersion</key>
<string>26</string>
<string>27</string>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
Expand Down
12 changes: 6 additions & 6 deletions HomeAssistant.xcodeproj/project.pbxproj
Expand Up @@ -2479,7 +2479,7 @@
CODE_SIGN_IDENTITY = "iPhone Developer: Robert Trencheny (43BAGK8JW5)";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer: Robert Trencheny (43BAGK8JW5)";
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 26;
CURRENT_PROJECT_VERSION = 27;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = UTQFCBPQRF;
ENABLE_STRICT_OBJC_MSGSEND = YES;
Expand Down Expand Up @@ -2543,7 +2543,7 @@
CODE_SIGN_IDENTITY = "iPhone Distribution: Robert Trencheny (UTQFCBPQRF)";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: Robert Trencheny (UTQFCBPQRF)";
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 26;
CURRENT_PROJECT_VERSION = 27;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = UTQFCBPQRF;
ENABLE_NS_ASSERTIONS = NO;
Expand Down Expand Up @@ -2827,12 +2827,12 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer: Robert Trencheny (43BAGK8JW5)";
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 26;
CURRENT_PROJECT_VERSION = 27;
DEBUG_INFORMATION_FORMAT = dwarf;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = UTQFCBPQRF;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 26;
DYLIB_CURRENT_VERSION = 27;
DYLIB_INSTALL_NAME_BASE = "@rpath";
GCC_C_LANGUAGE_STANDARD = gnu11;
INFOPLIST_FILE = Shared/Info.plist;
Expand Down Expand Up @@ -2864,11 +2864,11 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: Robert Trencheny (UTQFCBPQRF)";
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 26;
CURRENT_PROJECT_VERSION = 27;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = UTQFCBPQRF;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 26;
DYLIB_CURRENT_VERSION = 27;
DYLIB_INSTALL_NAME_BASE = "@rpath";
GCC_C_LANGUAGE_STANDARD = gnu11;
INFOPLIST_FILE = Shared/Info.plist;
Expand Down
12 changes: 2 additions & 10 deletions HomeAssistant/AppDelegate.swift
Expand Up @@ -139,11 +139,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
print("Received remote request to provide a location update")
api.getAndSendLocation(trigger: .PushNotification).done { success in
print("Did successfully send location when requested via APNS?", success)
if success == true {
completionHandler(.newData)
} else {
completionHandler(.failed)
}
completionHandler(.newData)
}.catch {error in
print("Error when attempting to submit location update")
Crashlytics.sharedInstance().recordError(error)
Expand Down Expand Up @@ -174,11 +170,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
if Current.settingsStore.locationEnabled {
api.getAndSendLocation(trigger: .BackgroundFetch).done { success in
print("Sending location via background fetch")
if success == true {
completionHandler(UIBackgroundFetchResult.newData)
} else {
completionHandler(UIBackgroundFetchResult.failed)
}
completionHandler(UIBackgroundFetchResult.newData)
}.catch {error in
print("Error when attempting to submit location update during background fetch")
Crashlytics.sharedInstance().recordError(error)
Expand Down
31 changes: 20 additions & 11 deletions HomeAssistant/Location/RegionManager.swift
Expand Up @@ -62,7 +62,8 @@ class RegionManager: NSObject {
var trig = trigger
guard let zone = zones.filter({ region.identifier == $0.ID }).first else {
print("Zone ID \(region.identifier) doesn't exist in Realm, syncing monitored regions now")
return syncMonitoredRegions()
syncMonitoredRegions()
return
}

// Do nothing in case we don't want to trigger an enter event
Expand Down Expand Up @@ -91,15 +92,20 @@ class RegionManager: NSObject {
self?.endBackgroundTask()
}

let realm = Current.realm()
// swiftlint:disable:next force_try
try! realm.write {
zone.inRegion = (trig == .GPSRegionEnter || trig == .BeaconRegionEnter)
let inRegion = (trig == .GPSRegionEnter || trig == .BeaconRegionEnter)
let shouldUpdate = zone.inRegion != inRegion
if shouldUpdate {
print("Submitting location for zone \(zone.ID) with trigger \(trig.rawValue)")
api.submitLocation(updateType: trig, location: nil, visit: nil, zone: zone).done {
let realm = Current.realm()
// swiftlint:disable:next force_try
try! realm.write {
zone.inRegion = inRegion
}
}.catch { error in
print("Error sending location after region trigger event: \(error)")
}
}

print("Submit location for zone \(zone.ID) with trigger \(trig.rawValue)")

api.submitLocation(updateType: trig, location: nil, visit: nil, zone: zone)
}

func startMonitoring(zone: RLMZone) {
Expand Down Expand Up @@ -138,6 +144,7 @@ class RegionManager: NSObject {
}

// MARK: CLLocationManagerDelegate

extension RegionManager: CLLocationManagerDelegate {
func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) {
if status == .authorizedAlways {
Expand All @@ -162,7 +169,7 @@ extension RegionManager: CLLocationManagerDelegate {

print("RegionManager: Got location, stopping updates!", locations.last.debugDescription, locations.count)
api.submitLocation(updateType: .SignificantLocationUpdate, location: locations.last, visit: nil,
zone: nil)
zone: nil).catch { print("Error submitting location: \($0)" )}

self.lastLocation = locations.last

Expand All @@ -185,7 +192,9 @@ extension RegionManager: CLLocationManagerDelegate {
}

print("Visit logged")
api.submitLocation(updateType: .Visit, location: nil, visit: visit, zone: nil)
api.submitLocation(updateType: .Visit, location: nil, visit: visit, zone: nil).catch { error in
print("Error submitting location: \(error)")
}
}

func locationManager(_ manager: CLLocationManager, didFailWithError error: Error) {
Expand Down
2 changes: 1 addition & 1 deletion HomeAssistant/Resources/Info.plist
Expand Up @@ -32,7 +32,7 @@
</dict>
</array>
<key>CFBundleVersion</key>
<string>26</string>
<string>27</string>
<key>Fabric</key>
<dict>
<key>APIKey</key>
Expand Down
2 changes: 1 addition & 1 deletion HomeAssistantTests/Info.plist
Expand Up @@ -19,6 +19,6 @@
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>26</string>
<string>27</string>
</dict>
</plist>
2 changes: 1 addition & 1 deletion HomeAssistantUITests/Info.plist
Expand Up @@ -19,6 +19,6 @@
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>26</string>
<string>27</string>
</dict>
</plist>
2 changes: 1 addition & 1 deletion MapNotificationContentExtension/Info.plist
Expand Up @@ -19,7 +19,7 @@
<key>CFBundleShortVersionString</key>
<string>1.2.0</string>
<key>CFBundleVersion</key>
<string>26</string>
<string>27</string>
<key>NSExtension</key>
<dict>
<key>NSExtensionAttributes</key>
Expand Down
2 changes: 1 addition & 1 deletion NotificationContentExtension/Info.plist
Expand Up @@ -19,7 +19,7 @@
<key>CFBundleShortVersionString</key>
<string>1.2.0</string>
<key>CFBundleVersion</key>
<string>26</string>
<string>27</string>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
Expand Down
42 changes: 21 additions & 21 deletions Shared/API/HAAPI.swift
Expand Up @@ -167,6 +167,7 @@ public class HomeAssistantAPI {

public enum HomeAssistantAPIError: Error {
case notAuthenticated
case unknown
}

private static var sharedAPI: HomeAssistantAPI?
Expand Down Expand Up @@ -205,7 +206,7 @@ public class HomeAssistantAPI {
public func submitLocation(updateType: LocationUpdateTrigger,
location: CLLocation?,
visit: CLVisit?,
zone: RLMZone?) {
zone: RLMZone?) -> Promise<Void> {
UIDevice.current.isBatteryMonitoringEnabled = true

let payload = DeviceTrackerSee(trigger: updateType, location: location, visit: visit, zone: zone)
Expand Down Expand Up @@ -238,31 +239,25 @@ public class HomeAssistantAPI {
zone: zone, payload: jsonPayload))
}

if let location = payload.Location,
self.regionManager.checkIfInsideAnyRegions(location: location).count > 0 {
print("Not submitting location change since we are already inside of a zone")
for activeZone in self.regionManager.zones {
print("Zone check", activeZone.ID, activeZone.inRegion)
}
return
}

firstly {
let promise = firstly {
self.identifyDevice()
}.then {_ in
self.callService(domain: "device_tracker", service: "see", serviceData: payloadDict,
shouldLog: false)
}.done { _ in
print("Device seen!")
}.catch { err in
self.sendLocalNotification(withZone: zone, updateType: updateType, payloadDict: payloadDict)
}

promise.catch { err in
print("Error when updating location!", err)
Crashlytics.sharedInstance().recordError(err as NSError)
}

self.sendLocalNotification(withZone: zone, updateType: updateType, payloadDict: payloadDict)
return promise
}

public func getAndSendLocation(trigger: LocationUpdateTrigger?) -> Promise<Bool> {
public func getAndSendLocation(trigger: LocationUpdateTrigger?) -> Promise<Void> {
var updateTrigger: LocationUpdateTrigger = .Manual
if let trigger = trigger {
updateTrigger = trigger
Expand All @@ -272,15 +267,20 @@ public class HomeAssistantAPI {
return Promise { seal in
regionManager.oneShotLocationActive = true
oneShotLocationManager = OneShotLocationManager { location, error in
self.regionManager.oneShotLocationActive = false
if let location = location {
self.submitLocation(updateType: updateTrigger, location: location, visit: nil, zone: nil)
seal.fulfill(true)
guard let location = location else {
seal.reject(error ?? HomeAssistantAPIError.unknown)
return
}
if let error = error {
seal.reject(error)
}

self.regionManager.oneShotLocationActive = false
firstly {
self.submitLocation(updateType: updateTrigger, location: location,
visit: nil, zone: nil)
}.done { _ in
seal.fulfill(())
}.catch { error in
seal.reject(error)
}
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion Shared/Info.plist
Expand Up @@ -17,7 +17,7 @@
<key>CFBundleShortVersionString</key>
<string>1.2.0</string>
<key>CFBundleVersion</key>
<string>26</string>
<string>27</string>
<key>NSPrincipalClass</key>
<string></string>
</dict>
Expand Down
2 changes: 1 addition & 1 deletion SharedTests/Info.plist
Expand Up @@ -17,6 +17,6 @@
<key>CFBundleShortVersionString</key>
<string>1.2.0</string>
<key>CFBundleVersion</key>
<string>26</string>
<string>27</string>
</dict>
</plist>

0 comments on commit 9b92a31

Please sign in to comment.