Skip to content

Commit 22452d7

Browse files
author
Martin Dinh
committed
Merge branch '311-ping-service' into 'master'
Resolve "Ping service" Closes #311 See merge request pace/mobile/ios/pace-cloud-sdk!349
2 parents 3d2c3d3 + 2476450 commit 22452d7

File tree

8 files changed

+295
-23
lines changed

8 files changed

+295
-23
lines changed

PACECloudSDK.xcodeproj/project.pbxproj

Lines changed: 35 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -336,6 +336,8 @@
336336
3B76F7572576468F008D8F9A /* API.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B76F7562576468F008D8F9A /* API.swift */; };
337337
3B76F75F257648B0008D8F9A /* HttpUrlError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B76F75E257648B0008D8F9A /* HttpUrlError.swift */; };
338338
3B76F77025765014008D8F9A /* Pay.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B76F76F25765014008D8F9A /* Pay.swift */; };
339+
3B772BCF292E63C500796CD1 /* MetaCollector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B772BCE292E63C500796CD1 /* MetaCollector.swift */; };
340+
3B772BD3292F55D100796CD1 /* MetaCollectorData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B772BD2292F55D100796CD1 /* MetaCollectorData.swift */; };
339341
3B79F8E626C12D3400C0278F /* GasStation+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B79F8E526C12D3400C0278F /* GasStation+Extension.swift */; };
340342
3B79FA0A26C15B3B00C0278F /* SwiftProtobuf in Frameworks */ = {isa = PBXBuildFile; productRef = 3B79FA0926C15B3B00C0278F /* SwiftProtobuf */; };
341343
3B79FA0B26C15B5E00C0278F /* POI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84C5E706258A149200E5B20B /* POI.swift */; };
@@ -663,6 +665,12 @@
663665
3BA0354527F5F4F8001C5DBB /* PayAPICreatePaymentMethodLogpay.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3BA0354427F5F4F8001C5DBB /* PayAPICreatePaymentMethodLogpay.swift */; };
664666
3BA0354627F5F502001C5DBB /* PayAPICreatePaymentMethodLogpay.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3BA0354427F5F4F8001C5DBB /* PayAPICreatePaymentMethodLogpay.swift */; };
665667
3BA0354827F5F87E001C5DBB /* IDKitError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3BB208842538338A008DDE45 /* IDKitError.swift */; };
668+
3BA074CF292F96D5003A389C /* MetaCollector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B772BCE292E63C500796CD1 /* MetaCollector.swift */; };
669+
3BA074D0292F96D5003A389C /* MetaCollector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B772BCE292E63C500796CD1 /* MetaCollector.swift */; };
670+
3BA074D1292F96D8003A389C /* MetaCollectorData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B772BD2292F55D100796CD1 /* MetaCollectorData.swift */; };
671+
3BA074D2292F96D9003A389C /* MetaCollectorData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B772BD2292F55D100796CD1 /* MetaCollectorData.swift */; };
672+
3BA074D3292F981F003A389C /* SDKUserDefaults.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B99F5D828D1CEA500B2BF0A /* SDKUserDefaults.swift */; };
673+
3BA074D4292F9853003A389C /* DeviceInformation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B85531C253D6FD8001F7B66 /* DeviceInformation.swift */; };
666674
3BA4807E2565492600187D0A /* IDKitUserAgent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3BA4807D2565492600187D0A /* IDKitUserAgent.swift */; };
667675
3BA5149425EE396100CC1FC3 /* Double+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3BA5149325EE396100CC1FC3 /* Double+Extension.swift */; };
668676
3BA5149525EE396100CC1FC3 /* Double+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3BA5149325EE396100CC1FC3 /* Double+Extension.swift */; };
@@ -711,7 +719,6 @@
711719
3BB51B7327E9F4FA00FE0014 /* Localizable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B90B68127E097CE00A582EC /* Localizable.swift */; };
712720
3BB51B7627E9F60D00FE0014 /* LocalizationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3BB51B7527E9F60D00FE0014 /* LocalizationTests.swift */; };
713721
3BB7D06628D303CA00CB5BDB /* SDKKeychain+Watch.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3BB7D06528D303CA00CB5BDB /* SDKKeychain+Watch.swift */; };
714-
3BB7D06828D303D300CB5BDB /* SDKUserDefaults+Watch.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3BB7D06728D303D300CB5BDB /* SDKUserDefaults+Watch.swift */; };
715722
3BB918E525B02AF700E83EDD /* OneTimeLocationProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B8C48E82593765900AAC040 /* OneTimeLocationProvider.swift */; };
716723
3BBCB2F32567D2C6000EA905 /* POILayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3BBCB2F22567D2C6000EA905 /* POILayer.swift */; };
717724
3BBCB2F72567D2CC000EA905 /* Location.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3BBCB2F62567D2CC000EA905 /* Location.swift */; };
@@ -1294,6 +1301,8 @@
12941301
3B76F7562576468F008D8F9A /* API.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = API.swift; sourceTree = "<group>"; };
12951302
3B76F75E257648B0008D8F9A /* HttpUrlError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HttpUrlError.swift; sourceTree = "<group>"; };
12961303
3B76F76F25765014008D8F9A /* Pay.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Pay.swift; sourceTree = "<group>"; };
1304+
3B772BCE292E63C500796CD1 /* MetaCollector.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MetaCollector.swift; sourceTree = "<group>"; };
1305+
3B772BD2292F55D100796CD1 /* MetaCollectorData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MetaCollectorData.swift; sourceTree = "<group>"; };
12971306
3B79F8E526C12D3400C0278F /* GasStation+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "GasStation+Extension.swift"; sourceTree = "<group>"; };
12981307
3B79FAB626C15D4100C0278F /* BundleUserAgent+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "BundleUserAgent+Extension.swift"; sourceTree = "<group>"; };
12991308
3B7C0B29266A196D00346FCC /* IconSelectorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IconSelectorTests.swift; sourceTree = "<group>"; };
@@ -1493,7 +1502,6 @@
14931502
3BB388302923D71C00044F09 /* ExponentialBackoffTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExponentialBackoffTests.swift; sourceTree = "<group>"; };
14941503
3BB51B7527E9F60D00FE0014 /* LocalizationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalizationTests.swift; sourceTree = "<group>"; };
14951504
3BB7D06528D303CA00CB5BDB /* SDKKeychain+Watch.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SDKKeychain+Watch.swift"; sourceTree = "<group>"; };
1496-
3BB7D06728D303D300CB5BDB /* SDKUserDefaults+Watch.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SDKUserDefaults+Watch.swift"; sourceTree = "<group>"; };
14971505
3BBCB2F22567D2C6000EA905 /* POILayer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POILayer.swift; sourceTree = "<group>"; };
14981506
3BBCB2F62567D2CC000EA905 /* Location.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Location.swift; sourceTree = "<group>"; };
14991507
3BBCFF3B25EF96BE0035683F /* Array+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Array+Extension.swift"; sourceTree = "<group>"; };
@@ -1879,7 +1887,6 @@
18791887
17BB0D08268CCF53009D4755 /* PACECloudWatchSDK+API.swift */,
18801888
1718B16926B02FA20044146C /* PACECloudWatchSDK+Kits.swift */,
18811889
3BB7D06528D303CA00CB5BDB /* SDKKeychain+Watch.swift */,
1882-
3BB7D06728D303D300CB5BDB /* SDKUserDefaults+Watch.swift */,
18831890
);
18841891
path = PACECloudWatchSDK;
18851892
sourceTree = "<group>";
@@ -2086,6 +2093,15 @@
20862093
path = Pay;
20872094
sourceTree = "<group>";
20882095
};
2096+
3B772BCD292E638C00796CD1 /* MetaCollector */ = {
2097+
isa = PBXGroup;
2098+
children = (
2099+
3B772BCE292E63C500796CD1 /* MetaCollector.swift */,
2100+
3B772BD2292F55D100796CD1 /* MetaCollectorData.swift */,
2101+
);
2102+
path = MetaCollector;
2103+
sourceTree = "<group>";
2104+
};
20892105
3B7C0C04266A594400346FCC /* FederatedIdentity */ = {
20902106
isa = PBXGroup;
20912107
children = (
@@ -2530,7 +2546,12 @@
25302546
isa = PBXGroup;
25312547
children = (
25322548
3B6826A127BA951600933C95 /* Constants */,
2549+
3B855311253D6BF3001F7B66 /* Extensions */,
2550+
6ACBC08126FE0FA500E6AC05 /* Logger */,
2551+
3B772BCD292E638C00796CD1 /* MetaCollector */,
25332552
3B36F2A628D21CED005D4EB0 /* PersistentData */,
2553+
3B970A282542D9BA0072F6BA /* Plists */,
2554+
3B68269827BA604700933C95 /* Views */,
25342555
3B9B6412266F6F8F00B2DC27 /* Application.swift */,
25352556
3B2406AE2821263F00114EB8 /* DateTimeProvider.swift */,
25362557
3B85531C253D6FD8001F7B66 /* DeviceInformation.swift */,
@@ -2544,10 +2565,6 @@
25442565
3B70FCAF2636E1DE00786C9B /* SDKWarningsHandler.swift */,
25452566
3B970A3A2542D9BA0072F6BA /* Settings.swift */,
25462567
6A7FCE9926F0E9A400384907 /* ShareObject.swift */,
2547-
3B855311253D6BF3001F7B66 /* Extensions */,
2548-
6ACBC08126FE0FA500E6AC05 /* Logger */,
2549-
3B970A282542D9BA0072F6BA /* Plists */,
2550-
3B68269827BA604700933C95 /* Views */,
25512568
);
25522569
path = Utils;
25532570
sourceTree = "<group>";
@@ -3813,6 +3830,7 @@
38133830
17BB0CF2268CCF13009D4755 /* PayAPIGetPaymentMethodsIncludingPaymentToken.swift in Sources */,
38143831
3B2FB1CE2844EB2800E8CD0C /* PCUserOAuth2Token.swift in Sources */,
38153832
3B79FA9526C15BEE00C0278F /* POIKitAPI+Routing.swift in Sources */,
3833+
3BA074D0292F96D5003A389C /* MetaCollector.swift in Sources */,
38163834
17BB0D04268CCF13009D4755 /* PayAPIGetTransaction.swift in Sources */,
38173835
17B4E55426D39CA900AEAF13 /* UserAPIAcceptTerms.swift in Sources */,
38183836
9A906B8E284637D700463618 /* PCPayCurrency.swift in Sources */,
@@ -3845,6 +3863,7 @@
38453863
3B79FAA126C15BF300C0278F /* GasStation+OpeningHours.swift in Sources */,
38463864
3B3DF5AB26E24C8E00934991 /* JWTToken.swift in Sources */,
38473865
3B79FA9826C15BEE00C0278F /* POIKitAPI+Observer.swift in Sources */,
3866+
3BA074D4292F9853003A389C /* DeviceInformation.swift in Sources */,
38483867
3B79FAA626C15BF300C0278F /* Address.swift in Sources */,
38493868
17B4E54126D39C9100AEAF13 /* UserAPICheckUserPassword.swift in Sources */,
38503869
3B6379A0281AC14100CD436A /* CDNAPIClient+URLProtocol.swift in Sources */,
@@ -3881,6 +3900,7 @@
38813900
17BB0D10268CCF88009D4755 /* FuelingAPIRequest.swift in Sources */,
38823901
17BB0D19268CCF92009D4755 /* FuelingAPIGetPump.swift in Sources */,
38833902
9A906B9E284637D700463618 /* PCPayPaymentMethodRMCCreateRequest.swift in Sources */,
3903+
3BA074D3292F981F003A389C /* SDKUserDefaults.swift in Sources */,
38843904
3B79FA7226C15BD700C0278F /* GeoAPIResponse.swift in Sources */,
38853905
3BB7D06628D303CA00CB5BDB /* SDKKeychain+Watch.swift in Sources */,
38863906
3BB51B7227E9F4F300FE0014 /* Strings.swift in Sources */,
@@ -4005,7 +4025,6 @@
40054025
3B79FA8826C15BEB00C0278F /* GasStationApiResponse.swift in Sources */,
40064026
17BB0CF9268CCF13009D4755 /* PayAPIAuthorizeApplePayPaymentToken.swift in Sources */,
40074027
17BB0CF8268CCF13009D4755 /* PayAPICreatePaymentMethodPayDirekt.swift in Sources */,
4008-
3BB7D06828D303D300CB5BDB /* SDKUserDefaults+Watch.swift in Sources */,
40094028
9A906BB2284637D700463618 /* PCPayPaymentMethodKinds.swift in Sources */,
40104029
3B79FA6B26C15BD200C0278F /* POILayer.swift in Sources */,
40114030
3B79FA6426C15BCC00C0278F /* POIKitConfig.swift in Sources */,
@@ -4106,6 +4125,7 @@
41064125
3B53F3912845E90100E751FE /* POIAPIGetTiles.swift in Sources */,
41074126
17B4E3FC26CE898300AEAF13 /* CmsAPIClient+URLProtocol.swift in Sources */,
41084127
17BB0CE9268CCEFE009D4755 /* PayAPIClient+URLProtocol.swift in Sources */,
4128+
3BA074D2292F96D9003A389C /* MetaCollectorData.swift in Sources */,
41094129
3B2FB1D62844EB2800E8CD0C /* PCUserErrors.swift in Sources */,
41104130
3BD0C826274BABDF003E002D /* TilesResponse.swift in Sources */,
41114131
17BB0D36268CD150009D4755 /* PCFuelingGetPumpsResponse.swift in Sources */,
@@ -4306,6 +4326,7 @@
43064326
841A3F0025B9C96A0065284A /* PCFuelingProcessPaymentResponse.swift in Sources */,
43074327
3B2FB1D52844EB2800E8CD0C /* PCUserErrors.swift in Sources */,
43084328
3B2FB1D32844EB2800E8CD0C /* PCUserCreateOTPRequest.swift in Sources */,
4329+
3B772BCF292E63C500796CD1 /* MetaCollector.swift in Sources */,
43094330
9A906B91284637D700463618 /* PCPayPaymentMethodPayDirektCreateRequest.swift in Sources */,
43104331
8447A3C125CAAE740095BEF1 /* UserAPICreateOTP.swift in Sources */,
43114332
3B2FB21C28450BF200E8CD0C /* PCPOIPolicyRequest.swift in Sources */,
@@ -4627,6 +4648,7 @@
46274648
84600EAE25C03B0C0087194F /* PayAPIGetReceiptByFormat.swift in Sources */,
46284649
3B970A732542D9BB0072F6BA /* AppDrawerLocationProvider.swift in Sources */,
46294650
3BC9A7FF2539DDAD00B933AE /* PriceHistoryResponse.swift in Sources */,
4651+
3B772BD3292F55D100796CD1 /* MetaCollectorData.swift in Sources */,
46304652
3B2FB21F28450BF200E8CD0C /* PCPOIPOIRequest.swift in Sources */,
46314653
3BC9A8012539DDAD00B933AE /* Tile.swift in Sources */,
46324654
3B970AB52542D9BB0072F6BA /* AppManifest.swift in Sources */,
@@ -4744,6 +4766,7 @@
47444766
3B9B2A6427B65AD40099EA37 /* GeoAPIResponse.swift in Sources */,
47454767
3B98706E268E06AE00A0458F /* VerifyLocationResult.swift in Sources */,
47464768
92EDDC0625A7270300E480F4 /* URLRequestError.swift in Sources */,
4769+
3BA074CF292F96D5003A389C /* MetaCollector.swift in Sources */,
47474770
3B98705A268E06AE00A0458F /* SetTOTPResult.swift in Sources */,
47484771
3B987098268E06AE00A0458F /* GetTOTPRequest.swift in Sources */,
47494772
92EDDC2125A7270300E480F4 /* AppStyle+Fonts.swift in Sources */,
@@ -4901,6 +4924,7 @@
49014924
3B98707C268E06AE00A0458F /* Response.swift in Sources */,
49024925
8418E29925B1B85E00D3722B /* APIResult.swift in Sources */,
49034926
3BABEFF527C8E8AD002256CB /* IDKitError.swift in Sources */,
4927+
3BA074D1292F96D8003A389C /* MetaCollectorData.swift in Sources */,
49044928
3B98708E268E06AE00A0458F /* SetSecureDataRequest.swift in Sources */,
49054929
92EDDC2425A7270300E480F4 /* App.swift in Sources */,
49064930
923ED19525D7A991001444C3 /* PACECloudSlimSDK+API.swift in Sources */,
@@ -5048,7 +5072,7 @@
50485072
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
50495073
SDKROOT = watchos;
50505074
SKIP_INSTALL = YES;
5051-
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
5075+
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG PACECloudWatchSDK";
50525076
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
50535077
SWIFT_VERSION = 5.0;
50545078
TARGETED_DEVICE_FAMILY = 4;
@@ -5124,6 +5148,7 @@
51245148
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
51255149
SDKROOT = watchos;
51265150
SKIP_INSTALL = YES;
5151+
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG PACECloudWatchSDK";
51275152
SWIFT_COMPILATION_MODE = wholemodule;
51285153
SWIFT_OPTIMIZATION_LEVEL = "-O";
51295154
SWIFT_VERSION = 5.0;
@@ -5201,6 +5226,7 @@
52015226
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
52025227
SDKROOT = watchos;
52035228
SKIP_INSTALL = YES;
5229+
SWIFT_ACTIVE_COMPILATION_CONDITIONS = PACECloudWatchSDK;
52045230
SWIFT_COMPILATION_MODE = wholemodule;
52055231
SWIFT_OPTIMIZATION_LEVEL = "-O";
52065232
SWIFT_VERSION = 5.0;

PACECloudSDK/PACECloudSDK+Configuration.swift

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ public extension PACECloudSDK {
4646
/// Set to `true` if you want to make use of the Logger provided by `PACECloudSDK`.
4747
let loggingEnabled: Bool
4848

49+
let isMetaCollectorEnabled: Bool
50+
4951
public init(apiKey: String,
5052
authenticationMode: AuthenticationMode = .native,
5153
environment: Environment = .production,
@@ -57,7 +59,8 @@ public extension PACECloudSDK {
5759
speedThresholdInKmPerHour: Double? = nil,
5860
geoAppsScope: String? = nil,
5961
allowedAppDrawerLocationOffset: Double? = nil,
60-
enableLogging: Bool = false) {
62+
enableLogging: Bool = false,
63+
isMetaCollectorEnabled: Bool = true) {
6164
self.apiKey = apiKey
6265
self.authenticationMode = authenticationMode
6366
self.environment = environment
@@ -79,6 +82,7 @@ public extension PACECloudSDK {
7982
self.geoAppsScope = geoAppsScope ?? Constants.Configuration.defaultGeoAppsScope
8083
self.allowedAppDrawerLocationOffset = allowedAppDrawerLocationOffset ?? Constants.Configuration.defaultAllowedAppDrawerLocationOffset
8184
self.loggingEnabled = enableLogging
85+
self.isMetaCollectorEnabled = isMetaCollectorEnabled
8286
}
8387
}
8488

PACECloudSDK/PACECloudSDK.swift

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,13 @@ public class PACECloudSDK {
4848
/// implement the `PACELocalizable` protocol and set this property accordingly.
4949
public var localizable: PACELocalizable = PACECloudSDK.Localizable()
5050

51+
public var isMetaCollectorEnabled: Bool {
52+
get { metaCollector?.isEnabled ?? false }
53+
set { metaCollector?.isEnabled = newValue }
54+
}
55+
56+
private(set) public var metaCollector: MetaCollector?
57+
5158
private init() {}
5259

5360
public func setup(with config: Configuration) {
@@ -67,6 +74,8 @@ public class PACECloudSDK {
6774

6875
setupKits(with: config)
6976
setupAPI()
77+
78+
metaCollector = .init(isEnabled: config.isMetaCollectorEnabled)
7079
}
7180

7281
/**

PACECloudSDK/Utils/DeviceInformation.swift

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,11 @@
55
// Created by PACE Telematics GmbH.
66
//
77

8-
import Foundation
8+
#if PACECloudWatchSDK
9+
import WatchKit
10+
#else
11+
import UIKit
12+
#endif
913

1014
public extension PACECloudSDK {
1115
struct DeviceInformation {
@@ -35,5 +39,21 @@ public extension PACECloudSDK {
3539
return "Missing device id"
3640
}
3741
}
42+
43+
public static var deviceVersion: String {
44+
#if PACECloudWatchSDK
45+
WKInterfaceDevice.current().systemVersion
46+
#else
47+
UIDevice.current.systemVersion
48+
#endif
49+
}
50+
51+
public static var osName: String {
52+
#if PACECloudWatchSDK
53+
return "watchOS"
54+
#else
55+
return "iOS"
56+
#endif
57+
}
3858
}
3959
}

0 commit comments

Comments
 (0)