@@ -2,19 +2,16 @@ package com.reactnativehypertracksdk.common
22
33import com.hypertrack.sdk.*
44import com.reactnativehypertracksdk.common.Serialization.deserializeAvailability
5+ import com.reactnativehypertracksdk.common.Serialization.deserializeDeviceName
56import com.reactnativehypertracksdk.common.Serialization.deserializeGeotagData
6- import com.reactnativehypertracksdk.common.Serialization.serializeFailure
7+ import com.reactnativehypertracksdk.common.Serialization.serializeDeviceId
78import com.reactnativehypertracksdk.common.Serialization.serializeErrors
9+ import com.reactnativehypertracksdk.common.Serialization.serializeFailure
810import com.reactnativehypertracksdk.common.Serialization.serializeIsAvailable
911import com.reactnativehypertracksdk.common.Serialization.serializeIsTracking
1012import com.reactnativehypertracksdk.common.Serialization.serializeSuccess
11- import com.reactnativehypertracksdk.common.Serialization.serializeDeviceId
12- import com.reactnativehypertracksdk.common.Serialization.deserializeDeviceName
13- import com.reactnativehypertracksdk.common.Serialization.parse
1413import java.lang.IllegalStateException
1514import java.lang.RuntimeException
16- import android.util.Log
17-
1815
1916/* *
2017 * This class stores SDK instance, calls HyperTrack SDK methods and serializes responses.
@@ -28,29 +25,32 @@ internal object HyperTrackSdkWrapper {
2825 val sdkInstance: HyperTrack
2926 get() = _sdkInstance
3027
31- fun initialize (
28+ // method is named to align with 'initializeSDK' in iOS
29+ fun initializeSdk (
3230 args : Map <String , Any ?>
3331 ): Result <HyperTrack > {
3432 return try {
35- SdkInitParams .fromMap(args).flatMapSuccess { initParams ->
36- _sdkInstance = HyperTrack .getInstance(initParams.publishableKey)
37- if (initParams.loggingEnabled) {
38- HyperTrack .enableDebugLogging()
39- }
40- if (initParams.allowMockLocations) {
41- sdkInstance.allowMockLocations()
33+ SdkInitParams
34+ .fromMap(args)
35+ .flatMapSuccess { initParams ->
36+ _sdkInstance = HyperTrack .getInstance(initParams.publishableKey)
37+ if (initParams.loggingEnabled) {
38+ HyperTrack .enableDebugLogging()
39+ }
40+ if (initParams.allowMockLocations) {
41+ sdkInstance.allowMockLocations()
42+ }
43+ this .sdkInstance.backgroundTrackingRequirement(
44+ initParams.requireBackgroundTrackingPermission
45+ )
46+ Success (sdkInstance)
4247 }
43- this .sdkInstance.backgroundTrackingRequirement(
44- initParams.requireBackgroundTrackingPermission
45- )
46- Success (sdkInstance)
47- }
4848 } catch (exception: Exception ) {
4949 Failure (Exception (" Hypertrack SDK initialization failed." , exception))
5050 }
5151 }
5252
53- fun getDeviceID (): Result <Map <String , Any ?>> {
53+ fun getDeviceId (): Result <Map <String , Any ?>> {
5454 return Success (serializeDeviceId(sdkInstance.deviceID))
5555 }
5656
@@ -70,26 +70,30 @@ internal object HyperTrackSdkWrapper {
7070 }
7171
7272 fun addGeotag (args : Map <String , Any ?>): Result <Map <String , Any ?>> {
73- return deserializeGeotagData(args).flatMapSuccess { geotag ->
74- sdkInstance.addGeotag(geotag.data).let { result ->
75- when (result) {
76- is GeotagResult .SuccessWithDeviation -> {
77- serializeSuccess(result.deviceLocation)
73+ return deserializeGeotagData(args)
74+ .flatMapSuccess { geotag ->
75+ sdkInstance
76+ .addGeotag(geotag.data)
77+ .let { result ->
78+ when (result) {
79+ is GeotagResult .SuccessWithDeviation -> {
80+ serializeSuccess(result.deviceLocation)
81+ }
82+ is GeotagResult .Success -> {
83+ serializeSuccess(result.deviceLocation)
84+ }
85+ is GeotagResult .Error -> {
86+ serializeFailure(getLocationError(result.reason))
87+ }
88+ else -> {
89+ throw IllegalArgumentException ()
90+ }
91+ }
7892 }
79- is GeotagResult . Success -> {
80- serializeSuccess(result.deviceLocation )
93+ . let {
94+ Success (it )
8195 }
82- is GeotagResult .Error -> {
83- serializeFailure(getLocationError(result.reason))
84- }
85- else -> {
86- throw IllegalArgumentException ()
87- }
88- }
89- }.let {
90- Success (it)
9196 }
92- }
9397 }
9498
9599 fun isTracking (): Result <Map <String , Any ?>> {
@@ -103,19 +107,21 @@ internal object HyperTrackSdkWrapper {
103107 }
104108
105109 fun setAvailability (args : Map <String , Any ?>): Result <Unit > {
106- return deserializeAvailability(args).mapSuccess { isAvailable ->
107- if (isAvailable) {
108- sdkInstance.availability = Availability .AVAILABLE
109- } else {
110- sdkInstance.availability = Availability .UNAVAILABLE
110+ return deserializeAvailability(args)
111+ .mapSuccess { isAvailable ->
112+ if (isAvailable) {
113+ sdkInstance.availability = Availability .AVAILABLE
114+ } else {
115+ sdkInstance.availability = Availability .UNAVAILABLE
116+ }
111117 }
112- }
113118 }
114119
115120 fun setName (args : Map <String , Any ?>): Result <Unit > {
116- return deserializeDeviceName(args).mapSuccess { name ->
117- sdkInstance.setDeviceName(name)
118- }
121+ return deserializeDeviceName(args)
122+ .mapSuccess { name ->
123+ sdkInstance.setDeviceName(name)
124+ }
119125 }
120126
121127 fun setMetadata (metadata : Map <String , Any ?>): Result <Unit > {
@@ -126,13 +132,15 @@ internal object HyperTrackSdkWrapper {
126132 }
127133
128134 fun getLocation (): Result <Map <String , Any ?>> {
129- return sdkInstance.latestLocation.let { result ->
130- if (result.isSuccess) {
131- serializeSuccess(result.value)
132- } else {
133- serializeFailure(getLocationError(result.error))
135+ return sdkInstance.latestLocation
136+ .let { result ->
137+ if (result.isSuccess) {
138+ serializeSuccess(result.value)
139+ } else {
140+ serializeFailure(getLocationError(result.error))
141+ }
134142 }
135- } .let { Success (it) }
143+ .let { Success (it) }
136144 }
137145
138146 fun getInitialErrors (): List <Map <String , String >> {
@@ -163,9 +171,10 @@ internal object HyperTrackSdkWrapper {
163171 else -> {
164172 throw RuntimeException (" Unknown tracking error" )
165173 }
166- }.let { hyperTrackError ->
167- (hyperTrackError?.let { setOf (it) } ? : setOf ()) + getHyperTrackErrorsFromBlockers()
168174 }
175+ .let { hyperTrackError ->
176+ (hyperTrackError?.let { setOf (it) } ? : setOf ()) + getHyperTrackErrorsFromBlockers()
177+ }
169178 }
170179
171180 private fun getLocationError (error : OutageReason ): LocationError {
@@ -239,5 +248,4 @@ internal object HyperTrackSdkWrapper {
239248 }
240249 .toSet()
241250 }
242-
243251}
0 commit comments