react-native-firework-sdk 1.2.4-beta.2 → 1.3.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/build.gradle +2 -1
- package/android/src/main/java/com/fireworksdk/bridge/models/FWVideoPlaybackDetails.kt +3 -3
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/manager/FWVideoFeedManager.kt +3 -3
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FWVideoShoppingModule.kt +9 -7
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FireworkSDKModule.kt +3 -3
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/utils/FWDataUtils.kt +9 -4
- package/android/src/main/java/com/fireworksdk/bridge/reactnative/utils/FWEventUtils.kt +28 -11
- package/android/src/main/java/com/fireworksdk/bridge/utils/FWGsonUtil.kt +38 -0
- package/lib/commonjs/utils/FWLoggerUtil.js +1 -1
- package/lib/commonjs/utils/FWLoggerUtil.js.map +1 -1
- package/lib/module/utils/FWLoggerUtil.js +1 -1
- package/lib/module/utils/FWLoggerUtil.js.map +1 -1
- package/package.json +1 -1
- package/src/utils/FWLoggerUtil.ts +1 -1
- package/android/src/main/java/com/fireworksdk/bridge/utils/FWJsonUtils.kt +0 -80
package/android/build.gradle
CHANGED
|
@@ -180,7 +180,6 @@ dependencies {
|
|
|
180
180
|
// noinspection GradleDynamicVersion
|
|
181
181
|
api 'com.facebook.react:react-native:+'
|
|
182
182
|
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
|
|
183
|
-
implementation "com.fasterxml.jackson.module:jackson-module-kotlin:2.9.6"
|
|
184
183
|
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
|
|
185
184
|
// required to avoid crash on Android 12 API 31
|
|
186
185
|
implementation 'androidx.work:work-runtime-ktx:2.7.0'
|
|
@@ -189,6 +188,8 @@ dependencies {
|
|
|
189
188
|
implementation 'com.squareup.okhttp3:logging-interceptor:4.9.0'
|
|
190
189
|
// react-native 0.61.3
|
|
191
190
|
implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0"
|
|
191
|
+
|
|
192
|
+
implementation "com.google.code.gson:gson:2.9.0"
|
|
192
193
|
}
|
|
193
194
|
|
|
194
195
|
configurations.all {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
package com.fireworksdk.bridge.models
|
|
2
2
|
|
|
3
3
|
import android.os.Parcelable
|
|
4
|
-
import com.
|
|
4
|
+
import com.google.gson.annotations.SerializedName
|
|
5
5
|
import kotlinx.android.parcel.Parcelize
|
|
6
6
|
|
|
7
7
|
@Parcelize
|
|
@@ -10,10 +10,10 @@ data class FWVideoPlaybackDetails(
|
|
|
10
10
|
val badge: String?,
|
|
11
11
|
val caption: String?,
|
|
12
12
|
val duration: Long?,
|
|
13
|
-
@
|
|
13
|
+
@SerializedName("has_cta")
|
|
14
14
|
val hasCta: Boolean?,
|
|
15
15
|
val height: Int?,
|
|
16
16
|
val width: Int?,
|
|
17
|
-
@
|
|
17
|
+
@SerializedName("video_id")
|
|
18
18
|
val videoId: String?
|
|
19
19
|
) : Parcelable
|
package/android/src/main/java/com/fireworksdk/bridge/reactnative/manager/FWVideoFeedManager.kt
CHANGED
|
@@ -10,12 +10,12 @@ import com.facebook.react.uimanager.annotations.ReactProp
|
|
|
10
10
|
import com.fireworksdk.bridge.constants.FWCommandConstant
|
|
11
11
|
import com.fireworksdk.bridge.models.FWVideoFeedConfigModel
|
|
12
12
|
import com.fireworksdk.bridge.models.FWVideoPlayerConfigModel
|
|
13
|
-
import com.fireworksdk.bridge.utils.FWJsonUtils
|
|
14
13
|
import com.facebook.react.common.MapBuilder
|
|
15
14
|
import com.fireworksdk.bridge.components.videofeed.FWVideoFeed
|
|
16
15
|
import com.fireworksdk.bridge.models.FWFeedViewEventName
|
|
17
16
|
import com.fireworksdk.bridge.models.FWVideoFeedItemDetailsModel
|
|
18
17
|
import com.fireworksdk.bridge.reactnative.utils.FWEventUtils
|
|
18
|
+
import com.fireworksdk.bridge.utils.FWGsonUtil
|
|
19
19
|
import com.fireworksdk.bridge.utils.FWLogUtils
|
|
20
20
|
import com.loopnow.fireworklibrary.models.OnPlaylistGroupItemClickedListener
|
|
21
21
|
import com.loopnow.fireworklibrary.models.VideoContentStatus
|
|
@@ -158,14 +158,14 @@ class FWVideoFeedManager : SimpleViewManager<FWVideoFeed>() {
|
|
|
158
158
|
@ReactProp(name = "videoFeedConfiguration")
|
|
159
159
|
fun setVideoFeedConfig(view: FWVideoFeed, config: ReadableMap?) {
|
|
160
160
|
val configMap = config?.toHashMap()
|
|
161
|
-
val videoFeedConfigModel =
|
|
161
|
+
val videoFeedConfigModel = FWGsonUtil.fromObject(configMap, FWVideoFeedConfigModel::class.java)
|
|
162
162
|
view.setVideoFeedConfigProps(videoFeedConfigModel)
|
|
163
163
|
}
|
|
164
164
|
|
|
165
165
|
@ReactProp(name = "videoPlayerConfiguration")
|
|
166
166
|
fun setVideoPlayerConfig(view: FWVideoFeed, config: ReadableMap?) {
|
|
167
167
|
val configMap = config?.toHashMap()
|
|
168
|
-
val videoPlayerConfigModel =
|
|
168
|
+
val videoPlayerConfigModel = FWGsonUtil.fromObject(configMap, FWVideoPlayerConfigModel::class.java)
|
|
169
169
|
view.setVideoPlayerConfigProps(videoPlayerConfigModel)
|
|
170
170
|
}
|
|
171
171
|
|
package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FWVideoShoppingModule.kt
CHANGED
|
@@ -2,17 +2,16 @@ package com.fireworksdk.bridge.reactnative.module
|
|
|
2
2
|
|
|
3
3
|
import android.app.Activity
|
|
4
4
|
import com.facebook.react.bridge.*
|
|
5
|
-
import com.fasterxml.jackson.core.type.TypeReference
|
|
6
|
-
import com.loopnow.fireworklibrary.baya.Baya
|
|
7
|
-
import com.loopnow.fireworklibrary.baya.UpdateCartStatus
|
|
8
|
-
import com.fireworksdk.bridge.reactnative.models.FWVideoShoppingInterface
|
|
9
5
|
import com.fireworksdk.bridge.models.FWVideoShoppingProduct
|
|
6
|
+
import com.fireworksdk.bridge.reactnative.models.FWVideoShoppingInterface
|
|
10
7
|
import com.fireworksdk.bridge.reactnative.utils.FWEventUtils
|
|
11
|
-
import com.fireworksdk.bridge.utils.
|
|
8
|
+
import com.fireworksdk.bridge.utils.FWGsonUtil
|
|
12
9
|
import com.fireworksdk.bridge.utils.FWLogUtils
|
|
10
|
+
import com.google.gson.reflect.TypeToken
|
|
11
|
+
import com.loopnow.fireworklibrary.baya.Baya
|
|
12
|
+
import com.loopnow.fireworklibrary.baya.UpdateCartStatus
|
|
13
13
|
import com.loopnow.fireworklibrary.data.Product
|
|
14
14
|
import com.loopnow.fireworklibrary.utils.Util
|
|
15
|
-
import kotlin.collections.HashMap
|
|
16
15
|
|
|
17
16
|
|
|
18
17
|
class FWVideoShoppingModule(
|
|
@@ -37,7 +36,10 @@ class FWVideoShoppingModule(
|
|
|
37
36
|
}
|
|
38
37
|
|
|
39
38
|
val configArrayList = productArray?.toArrayList()
|
|
40
|
-
val
|
|
39
|
+
val configArrayListJsonString = FWGsonUtil.toJson(configArrayList)
|
|
40
|
+
|
|
41
|
+
val listOfMyClassObject = object : TypeToken<List<FWVideoShoppingProduct>?>() {}.type
|
|
42
|
+
val videoShoppingProducts: List<FWVideoShoppingProduct>? = FWGsonUtil.fromJson(configArrayListJsonString, listOfMyClassObject)
|
|
41
43
|
if (videoShoppingProducts.isNullOrEmpty()) {
|
|
42
44
|
return
|
|
43
45
|
}
|
package/android/src/main/java/com/fireworksdk/bridge/reactnative/module/FireworkSDKModule.kt
CHANGED
|
@@ -66,7 +66,7 @@ class FireworkSDKModule(
|
|
|
66
66
|
|
|
67
67
|
// set configuration
|
|
68
68
|
val configMap = config?.toHashMap()
|
|
69
|
-
val videoPlayerContentConfigModel =
|
|
69
|
+
val videoPlayerContentConfigModel = FWGsonUtil.fromObject(configMap, FWVideoPlayerConfigModel::class.java)
|
|
70
70
|
FWVideoPlayerUtils.setVideoPlayerConfig(videoPlayerContentConfigModel)
|
|
71
71
|
|
|
72
72
|
// open player
|
|
@@ -94,7 +94,7 @@ class FireworkSDKModule(
|
|
|
94
94
|
@ReactMethod
|
|
95
95
|
override fun setAdBadgeConfiguration(config: ReadableMap?, promise: Promise) {
|
|
96
96
|
val configMap = config?.toHashMap()
|
|
97
|
-
val adBadgeConfigModel =
|
|
97
|
+
val adBadgeConfigModel = FWGsonUtil.fromObject(configMap, FWAdBadgeConfigModel::class.java)
|
|
98
98
|
FWVideoPlayerUtils.setAdBadgeConfig(adBadgeConfigModel)
|
|
99
99
|
promise.resolve(Arguments.createMap())
|
|
100
100
|
}
|
|
@@ -198,7 +198,7 @@ class FireworkSDKModule(
|
|
|
198
198
|
}
|
|
199
199
|
FwSDK.addVideoEventListener(object: FwSDK.VideoEventListener {
|
|
200
200
|
override fun event(event: String, jsonObject: JSONObject) {
|
|
201
|
-
val videoPlaybackDetails =
|
|
201
|
+
val videoPlaybackDetails = FWGsonUtil.fromJson(jsonObject.toString(), FWVideoPlaybackDetails::class.java)
|
|
202
202
|
|
|
203
203
|
when (event) {
|
|
204
204
|
VideoEvent.videoImpression -> {
|
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
package com.fireworksdk.bridge.reactnative.utils
|
|
2
|
+
|
|
2
3
|
import com.facebook.react.bridge.*
|
|
3
|
-
import com.fireworksdk.bridge.utils.
|
|
4
|
+
import com.fireworksdk.bridge.utils.FWGsonUtil
|
|
4
5
|
import org.json.JSONArray
|
|
5
6
|
import org.json.JSONException
|
|
6
7
|
import org.json.JSONObject
|
|
7
8
|
|
|
8
|
-
|
|
9
|
-
|
|
9
|
+
|
|
10
|
+
inline fun <reified T : Any?> T.asMap(): WritableMap? {
|
|
11
|
+
val jsonString = FWGsonUtil.toJson(this)
|
|
12
|
+
if (jsonString.isNullOrBlank()) {
|
|
13
|
+
return null
|
|
14
|
+
}
|
|
10
15
|
val jsonObject = JSONObject(jsonString)
|
|
11
|
-
return FWDataUtils.convertJsonObjectToWritableMap(jsonObject)
|
|
16
|
+
return FWDataUtils.convertJsonObjectToWritableMap(jsonObject)
|
|
12
17
|
}
|
|
13
18
|
|
|
14
19
|
object FWDataUtils {
|
|
@@ -9,7 +9,6 @@ import com.fireworksdk.bridge.reactnative.FWInitializationProvider
|
|
|
9
9
|
import com.fireworksdk.bridge.reactnative.module.FireworkSDKModule
|
|
10
10
|
import com.fireworksdk.bridge.reactnative.pages.FWContainerActivity
|
|
11
11
|
import com.fireworksdk.bridge.utils.FWDateUtils
|
|
12
|
-
import com.fireworksdk.bridge.utils.FWJsonUtils
|
|
13
12
|
import com.fireworksdk.bridge.utils.FWLogUtils
|
|
14
13
|
import com.loopnow.fireworklibrary.data.Product
|
|
15
14
|
import java.util.*
|
|
@@ -62,16 +61,34 @@ object FWEventUtils {
|
|
|
62
61
|
|
|
63
62
|
fun sendVideoFeedClickEvent(reactContext: ReactContext, info: FWVideoFeedItemDetailsModel) {
|
|
64
63
|
val eventMap = Arguments.createMap()
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
64
|
+
|
|
65
|
+
val contentMap = Arguments.createMap()
|
|
66
|
+
contentMap.putInt("index", info.index?:0)
|
|
67
|
+
contentMap.putString("id", info.id)
|
|
68
|
+
contentMap.putInt("duration", info.duration?:0)
|
|
69
|
+
contentMap.putString("source", info.source)
|
|
70
|
+
contentMap.putString("title", info.title)
|
|
71
|
+
contentMap.putString("playlistGroup", info.playlistGroup)
|
|
72
|
+
contentMap.putString("playlist", info.playlist)
|
|
73
|
+
contentMap.putString("channel", info.channel)
|
|
74
|
+
|
|
75
|
+
if (!info.dynamicContentParameters.isNullOrEmpty()) {
|
|
76
|
+
val dynamicContentParametersMap = Arguments.createMap()
|
|
77
|
+
for (key in info.dynamicContentParameters.keys) {
|
|
78
|
+
val value = info.dynamicContentParameters[key]
|
|
79
|
+
val array = Arguments.createArray()
|
|
80
|
+
if (!value.isNullOrEmpty()) {
|
|
81
|
+
for(item in value) {
|
|
82
|
+
array.pushString(item)
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
dynamicContentParametersMap.putArray(key, array)
|
|
86
|
+
}
|
|
87
|
+
contentMap.putMap("dynamicContentParameters", dynamicContentParametersMap)
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
eventMap.putMap("info", contentMap)
|
|
91
|
+
|
|
75
92
|
sendEvent(reactContext, FWEventName.VideoFeedClick.rawValue, eventMap)
|
|
76
93
|
}
|
|
77
94
|
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
package com.fireworksdk.bridge.utils
|
|
2
|
+
|
|
3
|
+
import com.google.gson.Gson
|
|
4
|
+
import java.lang.reflect.Type
|
|
5
|
+
|
|
6
|
+
object FWGsonUtil {
|
|
7
|
+
|
|
8
|
+
private val gson by lazy {
|
|
9
|
+
Gson()
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
fun toJson(ts: Any?): String? {
|
|
13
|
+
return gson.toJson(ts)
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
fun <T> fromJson(json: String?, type: Class<T>): T? {
|
|
17
|
+
if (json.isNullOrBlank()) {
|
|
18
|
+
return null
|
|
19
|
+
}
|
|
20
|
+
return gson.fromJson(json, type)
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
fun <T> fromJson(json: String?, type: Type): T? {
|
|
24
|
+
if (json.isNullOrBlank()) {
|
|
25
|
+
return null
|
|
26
|
+
}
|
|
27
|
+
return gson.fromJson(json, type)
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
fun <T> fromObject(o: Any?, type: Class<T>): T? {
|
|
31
|
+
if (o == null) {
|
|
32
|
+
return null
|
|
33
|
+
}
|
|
34
|
+
val jsonString = toJson(o)
|
|
35
|
+
return gson.fromJson(jsonString, type)
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["FWLoggerUtil.ts"],"names":["FWLoggerUtil","log","message","enabled","process","env","NODE_ENV","currentDate","Date","console","toISOString","logNativeMessage","nativeMessage","date","timezoneOffset","getTimezoneOffset","timezoneSymbol","timezoneHours","Math","floor","abs","toString","padStart","timezoneMinutes","timezoneString","year","getFullYear","month","getMonth","day","getDate","hours","getHours","minutes","getMinutes","seconds","getSeconds","milliseconds","getMilliseconds"],"mappings":";;;;;;;;;AAAe,MAAMA,YAAN,CAAmB;AAEtB,SAAHC,GAAG,CAACC,OAAD,EAAkB;AAC1B,QAAIF,YAAY,CAACG,OAAb,IAAwBC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAArD,EAAoE;AAClE,YAAMC,WAAW,GAAG,IAAIC,IAAJ,EAApB;AAEAC,MAAAA,OAAO,CAACR,GAAR,CACE,6BADF,EAEG,GAAEC,OAAQ,IAAGF,YAAY,CAACU,WAAb,CAAyBH,WAAzB,CAAsC,EAFtD;AAID;AACF;;AAEsB,SAAhBI,gBAAgB,CAACC,aAAD,EAAwB;AAC7C,QAAIZ,YAAY,CAACG,OAAb,IAAwBC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAArD,EAAoE;AAClEG,MAAAA,OAAO,CAACR,GAAR,CAAY,sCAAZ,EAAoDW,aAApD;AACD;AACF;;AAEyB,SAAXF,WAAW,CAACG,IAAD,EAAqB;AAC7C,QAAIC,cAAc,GAAG,CAACD,IAAI,CAACE,iBAAL,EAAtB;AACA,QAAIC,cAAc,GAAGF,cAAc,IAAI,CAAlB,GAAsB,GAAtB,GAA4B,GAAjD;AACA,QAAIG,aAAa,GAAGC,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACE,GAAL,CAASN,cAAT,IAA2B,EAAtC,EACjBO,QADiB,GAEjBC,QAFiB,CAER,CAFQ,EAEL,GAFK,CAApB;AAGA,QAAIC,eAAe,GAAG,CAACL,IAAI,CAACE,GAAL,CAASN,cAAT,IAA2B,EAA5B,EACnBO,QADmB,GAEnBC,QAFmB,CAEV,CAFU,EAEP,GAFO,CAAtB;AAGA,QAAIE,cAAc,GAAI,GAAER,cAAe,GAAEC,aAAc,IAAGM,eAAgB,EAA1E;AACA,QAAIE,IAAI,GAAGZ,IAAI,CAACa,WAAL,GAAmBL,QAAnB,EAAX;AACA,QAAIM,KAAK,GAAG,CAACd,IAAI,CAACe,QAAL,KAAkB,CAAnB,EAAsBP,QAAtB,GAAiCC,QAAjC,CAA0C,CAA1C,EAA6C,GAA7C,CAAZ;AACA,QAAIO,GAAG,GAAGhB,IAAI,CAACiB,OAAL,GAAeT,QAAf,GAA0BC,QAA1B,CAAmC,CAAnC,EAAsC,GAAtC,CAAV;AACA,QAAIS,KAAK,GAAGlB,IAAI,CAACmB,QAAL,GAAgBX,QAAhB,GAA2BC,QAA3B,CAAoC,CAApC,EAAuC,GAAvC,CAAZ;AACA,QAAIW,OAAO,GAAGpB,IAAI,CAACqB,UAAL,GAAkBb,QAAlB,GAA6BC,QAA7B,CAAsC,CAAtC,EAAyC,GAAzC,CAAd;AACA,QAAIa,OAAO,GAAGtB,IAAI,CAACuB,UAAL,GAAkBf,QAAlB,GAA6BC,QAA7B,CAAsC,CAAtC,EAAyC,GAAzC,CAAd;AACA,QAAIe,YAAY,GAAGxB,IAAI,CAACyB,eAAL,GAAuBjB,QAAvB,GAAkCC,QAAlC,CAA2C,CAA3C,EAA8C,GAA9C,CAAnB;AAEA,WAAQ,GAAEG,IAAK,IAAGE,KAAM,IAAGE,GAAI,IAAGE,KAAM,IAAGE,OAAQ,IAAGE,OAAQ,IAAGE,YAAa,GAAEb,cAAe,EAA/F;AACD;;AAtC+B;;;;gBAAbxB,Y,aACO,
|
|
1
|
+
{"version":3,"sources":["FWLoggerUtil.ts"],"names":["FWLoggerUtil","log","message","enabled","process","env","NODE_ENV","currentDate","Date","console","toISOString","logNativeMessage","nativeMessage","date","timezoneOffset","getTimezoneOffset","timezoneSymbol","timezoneHours","Math","floor","abs","toString","padStart","timezoneMinutes","timezoneString","year","getFullYear","month","getMonth","day","getDate","hours","getHours","minutes","getMinutes","seconds","getSeconds","milliseconds","getMilliseconds"],"mappings":";;;;;;;;;AAAe,MAAMA,YAAN,CAAmB;AAEtB,SAAHC,GAAG,CAACC,OAAD,EAAkB;AAC1B,QAAIF,YAAY,CAACG,OAAb,IAAwBC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAArD,EAAoE;AAClE,YAAMC,WAAW,GAAG,IAAIC,IAAJ,EAApB;AAEAC,MAAAA,OAAO,CAACR,GAAR,CACE,6BADF,EAEG,GAAEC,OAAQ,IAAGF,YAAY,CAACU,WAAb,CAAyBH,WAAzB,CAAsC,EAFtD;AAID;AACF;;AAEsB,SAAhBI,gBAAgB,CAACC,aAAD,EAAwB;AAC7C,QAAIZ,YAAY,CAACG,OAAb,IAAwBC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAArD,EAAoE;AAClEG,MAAAA,OAAO,CAACR,GAAR,CAAY,sCAAZ,EAAoDW,aAApD;AACD;AACF;;AAEyB,SAAXF,WAAW,CAACG,IAAD,EAAqB;AAC7C,QAAIC,cAAc,GAAG,CAACD,IAAI,CAACE,iBAAL,EAAtB;AACA,QAAIC,cAAc,GAAGF,cAAc,IAAI,CAAlB,GAAsB,GAAtB,GAA4B,GAAjD;AACA,QAAIG,aAAa,GAAGC,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACE,GAAL,CAASN,cAAT,IAA2B,EAAtC,EACjBO,QADiB,GAEjBC,QAFiB,CAER,CAFQ,EAEL,GAFK,CAApB;AAGA,QAAIC,eAAe,GAAG,CAACL,IAAI,CAACE,GAAL,CAASN,cAAT,IAA2B,EAA5B,EACnBO,QADmB,GAEnBC,QAFmB,CAEV,CAFU,EAEP,GAFO,CAAtB;AAGA,QAAIE,cAAc,GAAI,GAAER,cAAe,GAAEC,aAAc,IAAGM,eAAgB,EAA1E;AACA,QAAIE,IAAI,GAAGZ,IAAI,CAACa,WAAL,GAAmBL,QAAnB,EAAX;AACA,QAAIM,KAAK,GAAG,CAACd,IAAI,CAACe,QAAL,KAAkB,CAAnB,EAAsBP,QAAtB,GAAiCC,QAAjC,CAA0C,CAA1C,EAA6C,GAA7C,CAAZ;AACA,QAAIO,GAAG,GAAGhB,IAAI,CAACiB,OAAL,GAAeT,QAAf,GAA0BC,QAA1B,CAAmC,CAAnC,EAAsC,GAAtC,CAAV;AACA,QAAIS,KAAK,GAAGlB,IAAI,CAACmB,QAAL,GAAgBX,QAAhB,GAA2BC,QAA3B,CAAoC,CAApC,EAAuC,GAAvC,CAAZ;AACA,QAAIW,OAAO,GAAGpB,IAAI,CAACqB,UAAL,GAAkBb,QAAlB,GAA6BC,QAA7B,CAAsC,CAAtC,EAAyC,GAAzC,CAAd;AACA,QAAIa,OAAO,GAAGtB,IAAI,CAACuB,UAAL,GAAkBf,QAAlB,GAA6BC,QAA7B,CAAsC,CAAtC,EAAyC,GAAzC,CAAd;AACA,QAAIe,YAAY,GAAGxB,IAAI,CAACyB,eAAL,GAAuBjB,QAAvB,GAAkCC,QAAlC,CAA2C,CAA3C,EAA8C,GAA9C,CAAnB;AAEA,WAAQ,GAAEG,IAAK,IAAGE,KAAM,IAAGE,GAAI,IAAGE,KAAM,IAAGE,OAAQ,IAAGE,OAAQ,IAAGE,YAAa,GAAEb,cAAe,EAA/F;AACD;;AAtC+B;;;;gBAAbxB,Y,aACO,K","sourcesContent":["export default class FWLoggerUtil {\n static enabled: boolean = false;\n static log(message: string) {\n if (FWLoggerUtil.enabled && process.env.NODE_ENV === 'development') {\n const currentDate = new Date();\n\n console.log(\n '[react-native-firework-sdk]',\n `${message} ${FWLoggerUtil.toISOString(currentDate)}`\n );\n }\n }\n\n static logNativeMessage(nativeMessage: string) {\n if (FWLoggerUtil.enabled && process.env.NODE_ENV === 'development') {\n console.log('[react-native-firework-sdk] [native]', nativeMessage);\n }\n }\n\n private static toISOString(date: Date): string {\n let timezoneOffset = -date.getTimezoneOffset();\n let timezoneSymbol = timezoneOffset >= 0 ? '+' : '-';\n let timezoneHours = Math.floor(Math.abs(timezoneOffset) / 60)\n .toString()\n .padStart(2, '0');\n let timezoneMinutes = (Math.abs(timezoneOffset) % 60)\n .toString()\n .padStart(2, '0');\n let timezoneString = `${timezoneSymbol}${timezoneHours}:${timezoneMinutes}`;\n let year = date.getFullYear().toString();\n let month = (date.getMonth() + 1).toString().padStart(2, '0');\n let day = date.getDate().toString().padStart(2, '0');\n let hours = date.getHours().toString().padStart(2, '0');\n let minutes = date.getMinutes().toString().padStart(2, '0');\n let seconds = date.getSeconds().toString().padStart(2, '0');\n let milliseconds = date.getMilliseconds().toString().padStart(3, '0');\n\n return `${year}-${month}-${day}T${hours}:${minutes}:${seconds}.${milliseconds}${timezoneString}`;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["FWLoggerUtil.ts"],"names":["FWLoggerUtil","log","message","enabled","process","env","NODE_ENV","currentDate","Date","console","toISOString","logNativeMessage","nativeMessage","date","timezoneOffset","getTimezoneOffset","timezoneSymbol","timezoneHours","Math","floor","abs","toString","padStart","timezoneMinutes","timezoneString","year","getFullYear","month","getMonth","day","getDate","hours","getHours","minutes","getMinutes","seconds","getSeconds","milliseconds","getMilliseconds"],"mappings":";;AAAA,eAAe,MAAMA,YAAN,CAAmB;AAEtB,SAAHC,GAAG,CAACC,OAAD,EAAkB;AAC1B,QAAIF,YAAY,CAACG,OAAb,IAAwBC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAArD,EAAoE;AAClE,YAAMC,WAAW,GAAG,IAAIC,IAAJ,EAApB;AAEAC,MAAAA,OAAO,CAACR,GAAR,CACE,6BADF,EAEG,GAAEC,OAAQ,IAAGF,YAAY,CAACU,WAAb,CAAyBH,WAAzB,CAAsC,EAFtD;AAID;AACF;;AAEsB,SAAhBI,gBAAgB,CAACC,aAAD,EAAwB;AAC7C,QAAIZ,YAAY,CAACG,OAAb,IAAwBC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAArD,EAAoE;AAClEG,MAAAA,OAAO,CAACR,GAAR,CAAY,sCAAZ,EAAoDW,aAApD;AACD;AACF;;AAEyB,SAAXF,WAAW,CAACG,IAAD,EAAqB;AAC7C,QAAIC,cAAc,GAAG,CAACD,IAAI,CAACE,iBAAL,EAAtB;AACA,QAAIC,cAAc,GAAGF,cAAc,IAAI,CAAlB,GAAsB,GAAtB,GAA4B,GAAjD;AACA,QAAIG,aAAa,GAAGC,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACE,GAAL,CAASN,cAAT,IAA2B,EAAtC,EACjBO,QADiB,GAEjBC,QAFiB,CAER,CAFQ,EAEL,GAFK,CAApB;AAGA,QAAIC,eAAe,GAAG,CAACL,IAAI,CAACE,GAAL,CAASN,cAAT,IAA2B,EAA5B,EACnBO,QADmB,GAEnBC,QAFmB,CAEV,CAFU,EAEP,GAFO,CAAtB;AAGA,QAAIE,cAAc,GAAI,GAAER,cAAe,GAAEC,aAAc,IAAGM,eAAgB,EAA1E;AACA,QAAIE,IAAI,GAAGZ,IAAI,CAACa,WAAL,GAAmBL,QAAnB,EAAX;AACA,QAAIM,KAAK,GAAG,CAACd,IAAI,CAACe,QAAL,KAAkB,CAAnB,EAAsBP,QAAtB,GAAiCC,QAAjC,CAA0C,CAA1C,EAA6C,GAA7C,CAAZ;AACA,QAAIO,GAAG,GAAGhB,IAAI,CAACiB,OAAL,GAAeT,QAAf,GAA0BC,QAA1B,CAAmC,CAAnC,EAAsC,GAAtC,CAAV;AACA,QAAIS,KAAK,GAAGlB,IAAI,CAACmB,QAAL,GAAgBX,QAAhB,GAA2BC,QAA3B,CAAoC,CAApC,EAAuC,GAAvC,CAAZ;AACA,QAAIW,OAAO,GAAGpB,IAAI,CAACqB,UAAL,GAAkBb,QAAlB,GAA6BC,QAA7B,CAAsC,CAAtC,EAAyC,GAAzC,CAAd;AACA,QAAIa,OAAO,GAAGtB,IAAI,CAACuB,UAAL,GAAkBf,QAAlB,GAA6BC,QAA7B,CAAsC,CAAtC,EAAyC,GAAzC,CAAd;AACA,QAAIe,YAAY,GAAGxB,IAAI,CAACyB,eAAL,GAAuBjB,QAAvB,GAAkCC,QAAlC,CAA2C,CAA3C,EAA8C,GAA9C,CAAnB;AAEA,WAAQ,GAAEG,IAAK,IAAGE,KAAM,IAAGE,GAAI,IAAGE,KAAM,IAAGE,OAAQ,IAAGE,OAAQ,IAAGE,YAAa,GAAEb,cAAe,EAA/F;AACD;;AAtC+B;;gBAAbxB,Y,aACO,
|
|
1
|
+
{"version":3,"sources":["FWLoggerUtil.ts"],"names":["FWLoggerUtil","log","message","enabled","process","env","NODE_ENV","currentDate","Date","console","toISOString","logNativeMessage","nativeMessage","date","timezoneOffset","getTimezoneOffset","timezoneSymbol","timezoneHours","Math","floor","abs","toString","padStart","timezoneMinutes","timezoneString","year","getFullYear","month","getMonth","day","getDate","hours","getHours","minutes","getMinutes","seconds","getSeconds","milliseconds","getMilliseconds"],"mappings":";;AAAA,eAAe,MAAMA,YAAN,CAAmB;AAEtB,SAAHC,GAAG,CAACC,OAAD,EAAkB;AAC1B,QAAIF,YAAY,CAACG,OAAb,IAAwBC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAArD,EAAoE;AAClE,YAAMC,WAAW,GAAG,IAAIC,IAAJ,EAApB;AAEAC,MAAAA,OAAO,CAACR,GAAR,CACE,6BADF,EAEG,GAAEC,OAAQ,IAAGF,YAAY,CAACU,WAAb,CAAyBH,WAAzB,CAAsC,EAFtD;AAID;AACF;;AAEsB,SAAhBI,gBAAgB,CAACC,aAAD,EAAwB;AAC7C,QAAIZ,YAAY,CAACG,OAAb,IAAwBC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAArD,EAAoE;AAClEG,MAAAA,OAAO,CAACR,GAAR,CAAY,sCAAZ,EAAoDW,aAApD;AACD;AACF;;AAEyB,SAAXF,WAAW,CAACG,IAAD,EAAqB;AAC7C,QAAIC,cAAc,GAAG,CAACD,IAAI,CAACE,iBAAL,EAAtB;AACA,QAAIC,cAAc,GAAGF,cAAc,IAAI,CAAlB,GAAsB,GAAtB,GAA4B,GAAjD;AACA,QAAIG,aAAa,GAAGC,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACE,GAAL,CAASN,cAAT,IAA2B,EAAtC,EACjBO,QADiB,GAEjBC,QAFiB,CAER,CAFQ,EAEL,GAFK,CAApB;AAGA,QAAIC,eAAe,GAAG,CAACL,IAAI,CAACE,GAAL,CAASN,cAAT,IAA2B,EAA5B,EACnBO,QADmB,GAEnBC,QAFmB,CAEV,CAFU,EAEP,GAFO,CAAtB;AAGA,QAAIE,cAAc,GAAI,GAAER,cAAe,GAAEC,aAAc,IAAGM,eAAgB,EAA1E;AACA,QAAIE,IAAI,GAAGZ,IAAI,CAACa,WAAL,GAAmBL,QAAnB,EAAX;AACA,QAAIM,KAAK,GAAG,CAACd,IAAI,CAACe,QAAL,KAAkB,CAAnB,EAAsBP,QAAtB,GAAiCC,QAAjC,CAA0C,CAA1C,EAA6C,GAA7C,CAAZ;AACA,QAAIO,GAAG,GAAGhB,IAAI,CAACiB,OAAL,GAAeT,QAAf,GAA0BC,QAA1B,CAAmC,CAAnC,EAAsC,GAAtC,CAAV;AACA,QAAIS,KAAK,GAAGlB,IAAI,CAACmB,QAAL,GAAgBX,QAAhB,GAA2BC,QAA3B,CAAoC,CAApC,EAAuC,GAAvC,CAAZ;AACA,QAAIW,OAAO,GAAGpB,IAAI,CAACqB,UAAL,GAAkBb,QAAlB,GAA6BC,QAA7B,CAAsC,CAAtC,EAAyC,GAAzC,CAAd;AACA,QAAIa,OAAO,GAAGtB,IAAI,CAACuB,UAAL,GAAkBf,QAAlB,GAA6BC,QAA7B,CAAsC,CAAtC,EAAyC,GAAzC,CAAd;AACA,QAAIe,YAAY,GAAGxB,IAAI,CAACyB,eAAL,GAAuBjB,QAAvB,GAAkCC,QAAlC,CAA2C,CAA3C,EAA8C,GAA9C,CAAnB;AAEA,WAAQ,GAAEG,IAAK,IAAGE,KAAM,IAAGE,GAAI,IAAGE,KAAM,IAAGE,OAAQ,IAAGE,OAAQ,IAAGE,YAAa,GAAEb,cAAe,EAA/F;AACD;;AAtC+B;;gBAAbxB,Y,aACO,K","sourcesContent":["export default class FWLoggerUtil {\n static enabled: boolean = false;\n static log(message: string) {\n if (FWLoggerUtil.enabled && process.env.NODE_ENV === 'development') {\n const currentDate = new Date();\n\n console.log(\n '[react-native-firework-sdk]',\n `${message} ${FWLoggerUtil.toISOString(currentDate)}`\n );\n }\n }\n\n static logNativeMessage(nativeMessage: string) {\n if (FWLoggerUtil.enabled && process.env.NODE_ENV === 'development') {\n console.log('[react-native-firework-sdk] [native]', nativeMessage);\n }\n }\n\n private static toISOString(date: Date): string {\n let timezoneOffset = -date.getTimezoneOffset();\n let timezoneSymbol = timezoneOffset >= 0 ? '+' : '-';\n let timezoneHours = Math.floor(Math.abs(timezoneOffset) / 60)\n .toString()\n .padStart(2, '0');\n let timezoneMinutes = (Math.abs(timezoneOffset) % 60)\n .toString()\n .padStart(2, '0');\n let timezoneString = `${timezoneSymbol}${timezoneHours}:${timezoneMinutes}`;\n let year = date.getFullYear().toString();\n let month = (date.getMonth() + 1).toString().padStart(2, '0');\n let day = date.getDate().toString().padStart(2, '0');\n let hours = date.getHours().toString().padStart(2, '0');\n let minutes = date.getMinutes().toString().padStart(2, '0');\n let seconds = date.getSeconds().toString().padStart(2, '0');\n let milliseconds = date.getMilliseconds().toString().padStart(3, '0');\n\n return `${year}-${month}-${day}T${hours}:${minutes}:${seconds}.${milliseconds}${timezoneString}`;\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
package com.fireworksdk.bridge.utils
|
|
2
|
-
|
|
3
|
-
import android.os.Looper
|
|
4
|
-
import com.fasterxml.jackson.annotation.JsonInclude
|
|
5
|
-
import com.fasterxml.jackson.core.type.TypeReference
|
|
6
|
-
import com.fasterxml.jackson.databind.DeserializationFeature
|
|
7
|
-
import com.fasterxml.jackson.databind.ObjectMapper
|
|
8
|
-
import com.fasterxml.jackson.databind.SerializationFeature
|
|
9
|
-
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
|
|
10
|
-
import java.util.*
|
|
11
|
-
|
|
12
|
-
object FWJsonUtils {
|
|
13
|
-
val mapper: ObjectMapper by lazy {
|
|
14
|
-
jacksonObjectMapper()
|
|
15
|
-
// .setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE)
|
|
16
|
-
.configure(DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_AS_NULL, true)
|
|
17
|
-
.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
|
|
18
|
-
.setSerializationInclusion(JsonInclude.Include.NON_NULL)
|
|
19
|
-
.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false)
|
|
20
|
-
.configure(SerializationFeature.WRITE_DATES_WITH_ZONE_ID, true)
|
|
21
|
-
.setTimeZone(TimeZone.getDefault())
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
private fun logJsonError(e: Exception) {
|
|
25
|
-
val loggedError = RuntimeException("Json Read Error!", e)
|
|
26
|
-
if (Looper.myLooper() != Looper.getMainLooper()) {
|
|
27
|
-
throw loggedError
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
@JvmStatic
|
|
32
|
-
fun <T> fromMap(map: Map<*, *>?, cls: Class<T>): T? {
|
|
33
|
-
if (map.isNullOrEmpty()) {
|
|
34
|
-
return null
|
|
35
|
-
}
|
|
36
|
-
try {
|
|
37
|
-
return mapper.convertValue(map, cls)
|
|
38
|
-
} catch (e: Exception) {
|
|
39
|
-
e.printStackTrace()
|
|
40
|
-
logJsonError(e)
|
|
41
|
-
}
|
|
42
|
-
return null
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
@JvmStatic
|
|
46
|
-
fun <T> fromJson(json: String?, cls: Class<T>): T? {
|
|
47
|
-
if (json.isNullOrBlank()) {
|
|
48
|
-
return null
|
|
49
|
-
}
|
|
50
|
-
try {
|
|
51
|
-
return mapper.readValue(json, cls)
|
|
52
|
-
} catch (e: Exception) {
|
|
53
|
-
e.printStackTrace()
|
|
54
|
-
logJsonError(e)
|
|
55
|
-
}
|
|
56
|
-
return null
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
@JvmStatic
|
|
60
|
-
fun <T> fromJson(json: String?, type: TypeReference<T>): T? {
|
|
61
|
-
if (json.isNullOrBlank()) {
|
|
62
|
-
return null
|
|
63
|
-
}
|
|
64
|
-
try {
|
|
65
|
-
return mapper.readValue(json, type)
|
|
66
|
-
} catch (e: Exception) {
|
|
67
|
-
e.printStackTrace()
|
|
68
|
-
logJsonError(e)
|
|
69
|
-
}
|
|
70
|
-
return null
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
@JvmStatic
|
|
74
|
-
fun toJson(obj: Any?): String? {
|
|
75
|
-
if (obj == null) {
|
|
76
|
-
return null
|
|
77
|
-
}
|
|
78
|
-
return mapper.writeValueAsString(obj)
|
|
79
|
-
}
|
|
80
|
-
}
|