Skip to content

Commit cf4cc76

Browse files
fix(iOS): added new struct IONGLOCRequestOptionsModel
1 parent 877779f commit cf4cc76

File tree

4 files changed

+19
-10
lines changed

4 files changed

+19
-10
lines changed

IONGeolocationLib.xcodeproj/project.pbxproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
objects = {
88

99
/* Begin PBXBuildFile section */
10+
1DE511302EABBBFC0096C679 /* IONGLOCRequestOptionsModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DE5112F2EABBBF70096C679 /* IONGLOCRequestOptionsModel.swift */; };
1011
752B49212D11B262002EA65D /* IONGLOCManagerWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 752B49202D11B262002EA65D /* IONGLOCManagerWrapper.swift */; };
1112
752B49232D11D421002EA65D /* IONGLOCAuthorisationRequestType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 752B49222D11D421002EA65D /* IONGLOCAuthorisationRequestType.swift */; };
1213
752B49262D11D440002EA65D /* IONGLOCAuthorisation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 752B49252D11D440002EA65D /* IONGLOCAuthorisation.swift */; };
@@ -29,6 +30,7 @@
2930
/* End PBXContainerItemProxy section */
3031

3132
/* Begin PBXFileReference section */
33+
1DE5112F2EABBBF70096C679 /* IONGLOCRequestOptionsModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IONGLOCRequestOptionsModel.swift; sourceTree = "<group>"; };
3234
752B49202D11B262002EA65D /* IONGLOCManagerWrapper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IONGLOCManagerWrapper.swift; sourceTree = "<group>"; };
3335
752B49222D11D421002EA65D /* IONGLOCAuthorisationRequestType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IONGLOCAuthorisationRequestType.swift; sourceTree = "<group>"; };
3436
752B49252D11D440002EA65D /* IONGLOCAuthorisation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IONGLOCAuthorisation.swift; sourceTree = "<group>"; };
@@ -94,6 +96,7 @@
9496
752B49252D11D440002EA65D /* IONGLOCAuthorisation.swift */,
9597
752B49222D11D421002EA65D /* IONGLOCAuthorisationRequestType.swift */,
9698
752B49272D11D46D002EA65D /* IONGLOCPositionModel.swift */,
99+
1DE5112F2EABBBF70096C679 /* IONGLOCRequestOptionsModel.swift */,
97100
);
98101
path = IONGeolocationLib;
99102
sourceTree = "<group>";
@@ -243,6 +246,7 @@
243246
isa = PBXSourcesBuildPhase;
244247
buildActionMask = 2147483647;
245248
files = (
249+
1DE511302EABBBFC0096C679 /* IONGLOCRequestOptionsModel.swift in Sources */,
246250
752B49262D11D440002EA65D /* IONGLOCAuthorisation.swift in Sources */,
247251
752B49282D11D46D002EA65D /* IONGLOCPositionModel.swift in Sources */,
248252
752B49232D11D421002EA65D /* IONGLOCAuthorisationRequestType.swift in Sources */,
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import Foundation
2+
3+
public struct IONGLOCRequestOptionsModel {
4+
let timeout: Int
5+
6+
public init(timeout: Int?) {
7+
self.timeout = timeout ?? 5000
8+
}
9+
}

IONGeolocationLib/Publishers/IONGLOCManagerProtocols.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,11 @@ public protocol IONGLOCLocationHandler {
2525
}
2626

2727
public protocol IONGLOCSingleLocationHandler: IONGLOCLocationHandler {
28-
func requestSingleLocation(timeout: Int?)
28+
func requestSingleLocation(options: IONGLOCRequestOptionsModel)
2929
}
3030

3131
public protocol IONGLOCMonitorLocationHandler: IONGLOCLocationHandler {
32-
func startMonitoringLocation(timeout: Int?)
32+
func startMonitoringLocation(options: IONGLOCRequestOptionsModel)
3333
func startMonitoringLocation()
3434
func stopMonitoringLocation()
3535
}

IONGeolocationLib/Publishers/IONGLOCManagerWrapper.swift

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,9 @@ public class IONGLOCManagerWrapper: NSObject, IONGLOCService {
5353
authorisationType.requestAuthorization(using: locationManager)
5454
}
5555

56-
public func startMonitoringLocation(timeout: Int? = nil) {
57-
let timeoutValue = timeout ?? 5000
56+
public func startMonitoringLocation(options: IONGLOCRequestOptionsModel) {
5857
isMonitoringLocation = true
59-
self.startTimer(timeout: timeoutValue)
58+
self.startTimer(timeout: options.timeout)
6059
locationManager.startUpdatingLocation()
6160
}
6261

@@ -70,18 +69,15 @@ public class IONGLOCManagerWrapper: NSObject, IONGLOCService {
7069
locationManager.stopUpdatingLocation()
7170
}
7271

73-
public func requestSingleLocation(timeout: Int? = nil) {
74-
// Fallback to default timeout (5000) when the parameter is nil,
75-
// since optional defaults in Swift don't apply when nil is explicitly passed.
76-
let timeoutValue = timeout ?? 5000
72+
public func requestSingleLocation(options: IONGLOCRequestOptionsModel) {
7773
// If monitoring is active meaning the location service is already running
7874
// and calling .requestLocation() will not trigger a new location update,
7975
// we can just return the current location.
8076
if isMonitoringLocation, let location = currentLocation {
8177
currentLocationForceSubject.send(location)
8278
return
8379
}
84-
self.startTimer(timeout: timeoutValue)
80+
self.startTimer(timeout: options.timeout)
8581
self.locationManager.requestLocation()
8682
}
8783

0 commit comments

Comments
 (0)