@blueconic/blueconic-react-native 3.2.4 → 4.0.0
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/CHANGELOG.md +19 -0
- package/android/build.gradle +25 -6
- package/android/src/main/java/com/blueconic/reactnative/BlueConicClientModule.java +1737 -1035
- package/android/src/main/java/com/blueconic/reactnative/BlueConicClientPackage.java +1 -0
- package/android/src/main/java/com/blueconic/reactnative/BlueConicInteraction.java +5 -4
- package/android/src/test/java/com/blueconic/reactnative/BlueConicTests.kt +649 -0
- package/android/src/test/java/com/blueconic/reactnative/utils/MockCallback.kt +8 -0
- package/android/src/test/java/com/blueconic/reactnative/utils/MockPromise.kt +39 -0
- package/android/src/test/java/com/blueconic/reactnative/utils/MockReadableArray.kt +58 -0
- package/android/src/test/java/com/blueconic/reactnative/utils/MockReadableMap.kt +65 -0
- package/android/src/test/java/com/blueconic/reactnative/utils/MockWritableArray.kt +92 -0
- package/android/src/test/java/com/blueconic/reactnative/utils/MockWritableMap.kt +158 -0
- package/index.js +60 -2
- package/ios/BlueConicClient-Bridging-Header.h +1 -1
- package/ios/BlueConicClient.xcodeproj/project.pbxproj +6 -269
- package/ios/BlueConicClientModule.m +59 -33
- package/ios/BlueConicClientModule.swift +328 -84
- package/package.json +3 -3
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
package com.blueconic.reactnative.utils
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.Promise
|
|
4
|
+
import com.facebook.react.bridge.WritableMap
|
|
5
|
+
|
|
6
|
+
open class MockPromise : Promise {
|
|
7
|
+
override fun resolve(values: Any?) {
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
override fun reject(message: String) {
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
override fun reject(code: String, userInfo: WritableMap) {
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
override fun reject(code: String, message: String?) {
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
override fun reject(code: String, message: String?, userInfo: WritableMap) {
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
override fun reject(code: String, message: String?, throwable: Throwable?) {
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
override fun reject(code: String, throwable: Throwable?) {
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
override fun reject(code: String, throwable: Throwable?, userInfo: WritableMap) {
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
override fun reject(p0: String?, p1: String?, p2: Throwable?, p3: WritableMap?) {
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
override fun reject(throwable: Throwable) {
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
override fun reject(throwable: Throwable, userInfo: WritableMap) {
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
package com.blueconic.reactnative.utils
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.Dynamic
|
|
4
|
+
import com.facebook.react.bridge.ReadableArray
|
|
5
|
+
import com.facebook.react.bridge.ReadableMap
|
|
6
|
+
import com.facebook.react.bridge.ReadableType
|
|
7
|
+
import io.mockk.InternalPlatformDsl.toArray
|
|
8
|
+
import java.util.ArrayList
|
|
9
|
+
|
|
10
|
+
class MockReadableArray : ReadableArray {
|
|
11
|
+
override fun size(): Int {
|
|
12
|
+
return 0
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
override fun isNull(index: Int): Boolean {
|
|
16
|
+
return false
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
override fun getBoolean(index: Int): Boolean {
|
|
20
|
+
return false
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
override fun getDouble(index: Int): Double {
|
|
24
|
+
return 0.0
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
override fun getInt(index: Int): Int {
|
|
28
|
+
return 0
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
override fun getString(index: Int): String {
|
|
32
|
+
return null.toString()
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
override fun getArray(index: Int): ReadableArray {
|
|
36
|
+
return MockReadableArray()
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
override fun getMap(index: Int): ReadableMap {
|
|
40
|
+
return MockReadableMap()
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
override fun getType(index: Int): ReadableType {
|
|
44
|
+
return ReadableType.Null
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
override fun getDynamic(index: Int): Dynamic {
|
|
48
|
+
return null!!
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
override fun getLong(index: Int): Long {
|
|
52
|
+
return 0
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
override fun toArrayList(): ArrayList<Any?> {
|
|
56
|
+
return arrayListOf()
|
|
57
|
+
}
|
|
58
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
package com.blueconic.reactnative.utils
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.Dynamic
|
|
4
|
+
import com.facebook.react.bridge.ReadableArray
|
|
5
|
+
import com.facebook.react.bridge.ReadableMap
|
|
6
|
+
import com.facebook.react.bridge.ReadableMapKeySetIterator
|
|
7
|
+
import com.facebook.react.bridge.ReadableType
|
|
8
|
+
import java.util.HashMap
|
|
9
|
+
|
|
10
|
+
class MockReadableMap : ReadableMap {
|
|
11
|
+
override val entryIterator: Iterator<Map.Entry<String, Any>>
|
|
12
|
+
get() = entryIterator
|
|
13
|
+
|
|
14
|
+
override fun getArray(name: String): ReadableArray? {
|
|
15
|
+
return null
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
override fun getBoolean(name: String): Boolean {
|
|
19
|
+
return false
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
override fun getDouble(name: String): Double {
|
|
23
|
+
return 0.0
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
override fun getDynamic(name: String): Dynamic {
|
|
27
|
+
return null!!
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
override fun getInt(name: String): Int {
|
|
31
|
+
return 0
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
override fun getLong(name: String): Long {
|
|
35
|
+
return 0
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
override fun getMap(name: String): ReadableMap? {
|
|
39
|
+
return null
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
override fun getString(name: String): String? {
|
|
43
|
+
return null
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
override fun getType(name: String): ReadableType {
|
|
47
|
+
return ReadableType.Null
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
override fun hasKey(name: String): Boolean {
|
|
51
|
+
return false
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
override fun isNull(name: String): Boolean {
|
|
55
|
+
return false
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
override fun keySetIterator(): ReadableMapKeySetIterator {
|
|
59
|
+
return null!!
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
override fun toHashMap(): HashMap<String, Any?> {
|
|
63
|
+
return null!!
|
|
64
|
+
}
|
|
65
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
package com.blueconic.reactnative.utils
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.Dynamic
|
|
4
|
+
import com.facebook.react.bridge.ReadableArray
|
|
5
|
+
import com.facebook.react.bridge.ReadableMap
|
|
6
|
+
import com.facebook.react.bridge.ReadableType
|
|
7
|
+
import com.facebook.react.bridge.WritableArray
|
|
8
|
+
import java.util.ArrayList
|
|
9
|
+
|
|
10
|
+
class MockWritableArray : WritableArray {
|
|
11
|
+
private var array: ArrayList<Any?> = arrayListOf()
|
|
12
|
+
|
|
13
|
+
override fun getArray(index: Int): ReadableArray {
|
|
14
|
+
return MockReadableArray()
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
override fun getBoolean(index: Int): Boolean {
|
|
18
|
+
return false
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
override fun getDouble(index: Int): Double {
|
|
22
|
+
return 0.0
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
override fun getDynamic(index: Int): Dynamic {
|
|
26
|
+
return null!!
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
override fun getInt(index: Int): Int {
|
|
30
|
+
return 0
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
override fun getLong(index: Int): Long {
|
|
34
|
+
return 0
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
override fun getMap(index: Int): ReadableMap {
|
|
38
|
+
return MockReadableMap()
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
override fun getString(index: Int): String {
|
|
42
|
+
return null.toString()
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
override fun getType(index: Int): ReadableType {
|
|
46
|
+
return ReadableType.Null
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
override fun isNull(index: Int): Boolean {
|
|
50
|
+
return false
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
override fun pushArray(array: ReadableArray?) {
|
|
54
|
+
this.array.addAll(array!!.toArrayList())
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
override fun pushBoolean(value: Boolean) {
|
|
58
|
+
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
override fun pushDouble(value: Double) {
|
|
62
|
+
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
override fun pushInt(value: Int) {
|
|
66
|
+
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
override fun pushLong(value: Long) {
|
|
70
|
+
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
override fun pushMap(map: ReadableMap?) {
|
|
74
|
+
array.add(map)
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
override fun pushNull() {
|
|
78
|
+
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
override fun pushString(value: String?) {
|
|
82
|
+
array.add(value)
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
override fun size(): Int {
|
|
86
|
+
return array.size
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
override fun toArrayList(): ArrayList<Any?> {
|
|
90
|
+
return array
|
|
91
|
+
}
|
|
92
|
+
}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
package com.blueconic.reactnative.utils
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.Dynamic
|
|
4
|
+
import com.facebook.react.bridge.ReadableArray
|
|
5
|
+
import com.facebook.react.bridge.ReadableMap
|
|
6
|
+
import com.facebook.react.bridge.ReadableMapKeySetIterator
|
|
7
|
+
import com.facebook.react.bridge.ReadableType
|
|
8
|
+
import com.facebook.react.bridge.WritableMap
|
|
9
|
+
import org.json.JSONObject
|
|
10
|
+
|
|
11
|
+
class MockWritableMap : WritableMap {
|
|
12
|
+
private var map: MutableMap<String, Any?> = mutableMapOf()
|
|
13
|
+
|
|
14
|
+
constructor()
|
|
15
|
+
|
|
16
|
+
constructor(jsonObject: JSONObject) {
|
|
17
|
+
val map: MutableMap<String, Any?> = mutableMapOf()
|
|
18
|
+
val keys = jsonObject.keys()
|
|
19
|
+
while (keys.hasNext()) {
|
|
20
|
+
val key = keys.next()
|
|
21
|
+
map[key] = jsonObject[key]
|
|
22
|
+
}
|
|
23
|
+
this.map = map
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
constructor(map: MutableMap<String, Any?>) {
|
|
27
|
+
this.map.putAll(map)
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
override fun hasKey(name: String): Boolean {
|
|
31
|
+
return map.containsKey(name)
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
override fun isNull(name: String): Boolean {
|
|
35
|
+
return map[name] == null
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
override fun getBoolean(name: String): Boolean {
|
|
39
|
+
return map[name] as Boolean
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
override fun getDouble(name: String): Double {
|
|
43
|
+
return map[name] as Double
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
override fun getInt(name: String): Int {
|
|
47
|
+
return map[name] as Int
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
override fun getString(name: String): String? {
|
|
51
|
+
return map[name] as String?
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
override fun getArray(name: String): ReadableArray? {
|
|
55
|
+
return null
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
override fun getMap(name: String): ReadableMap {
|
|
59
|
+
return MockWritableMap(map[name] as MutableMap<String, Any?>)
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
override fun getType(name: String): ReadableType {
|
|
63
|
+
val obj = map[name]
|
|
64
|
+
if (obj is String) {
|
|
65
|
+
return ReadableType.String
|
|
66
|
+
}
|
|
67
|
+
if (obj is Number) {
|
|
68
|
+
return ReadableType.Number
|
|
69
|
+
}
|
|
70
|
+
if (obj is Collection<*>) {
|
|
71
|
+
return ReadableType.Array
|
|
72
|
+
}
|
|
73
|
+
if (obj is Map<*, *>) {
|
|
74
|
+
return ReadableType.Map
|
|
75
|
+
}
|
|
76
|
+
if (obj is Boolean) {
|
|
77
|
+
return ReadableType.Boolean
|
|
78
|
+
}
|
|
79
|
+
if (obj == null) {
|
|
80
|
+
return ReadableType.Null
|
|
81
|
+
}
|
|
82
|
+
return MockReadableArray().getType(0)
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
override fun keySetIterator(): ReadableMapKeySetIterator {
|
|
86
|
+
return MockReadableMapKeySetIterator(map.keys.toList())
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
override fun putNull(key: String) {
|
|
90
|
+
map[key] = null
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
override fun putBoolean(key: String, value: Boolean) {
|
|
94
|
+
map[key] = value
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
override fun putDouble(key: String, value: Double) {
|
|
98
|
+
map[key] = value
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
override fun putInt(key: String, value: Int) {
|
|
102
|
+
map[key] = value
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
override fun putString(key: String, value: String?) {
|
|
106
|
+
map[key] = value
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
override fun putArray(key: String, value: ReadableArray?) {
|
|
110
|
+
map[key] = value
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
override fun putMap(key: String, value: ReadableMap?) {
|
|
114
|
+
map[key] = value
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
override fun merge(source: ReadableMap) {
|
|
118
|
+
throw RuntimeException("Not Implemented")
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
override fun getDynamic(name: String): Dynamic {
|
|
122
|
+
return null!!
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
override val entryIterator: Iterator<Map.Entry<String, Any>>
|
|
126
|
+
get() = null!!
|
|
127
|
+
|
|
128
|
+
override fun getLong(name: String): Long {
|
|
129
|
+
return 0
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
override fun toHashMap(): java.util.HashMap<String, Any?> {
|
|
133
|
+
return map as HashMap<String, Any?>
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
override fun copy(): WritableMap {
|
|
137
|
+
return MockWritableMap()
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
override fun putLong(key: String, value: Long) {
|
|
141
|
+
map[key] = value
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
internal inner class MockReadableMapKeySetIterator(keys: Collection<String>) : ReadableMapKeySetIterator {
|
|
145
|
+
var keys: List<String> = ArrayList(keys)
|
|
146
|
+
var index: Int = 0
|
|
147
|
+
|
|
148
|
+
override fun hasNextKey(): Boolean {
|
|
149
|
+
return index < keys.size
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
override fun nextKey(): String {
|
|
153
|
+
val `val` = keys[index]
|
|
154
|
+
index++
|
|
155
|
+
return `val`
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
package/index.js
CHANGED
|
@@ -1,6 +1,64 @@
|
|
|
1
|
-
|
|
2
1
|
import { NativeModules } from 'react-native';
|
|
2
|
+
|
|
3
|
+
class BlueConicConfiguration {
|
|
4
|
+
constructor(builder) {
|
|
5
|
+
this["bc_hostname"] = builder.hostName;
|
|
6
|
+
this["bc_debug"] = builder.debug;
|
|
7
|
+
this["override_app_id"] = builder.overrideAppId;
|
|
8
|
+
this["simulator_username"] = builder.simulatorUsername;
|
|
9
|
+
this["simulator_session_id"] = builder.simulatorSessionId;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
static get Builder() {
|
|
13
|
+
return class {
|
|
14
|
+
setHostName(hostName) {
|
|
15
|
+
this.hostName = hostName;
|
|
16
|
+
return this;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
setDebug(debug) {
|
|
20
|
+
this.debug = debug;
|
|
21
|
+
return this;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
setOverrideAppId(overrideAppId) {
|
|
25
|
+
this.overrideAppId = overrideAppId;
|
|
26
|
+
return this;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
setSimulatorUsername(simulatorUsername) {
|
|
30
|
+
this.simulatorUsername = simulatorUsername;
|
|
31
|
+
return this;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
setSimulatorSessionId(simulatorSessionId) {
|
|
35
|
+
this.simulatorSessionId = simulatorSessionId;
|
|
36
|
+
return this;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
build() {
|
|
40
|
+
return new BlueConicConfiguration(this);
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export { BlueConicConfiguration };
|
|
47
|
+
|
|
48
|
+
class EventName {
|
|
49
|
+
static PropertiesDialogue = "propertiesDialogueEvent"
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
export { EventName };
|
|
53
|
+
|
|
54
|
+
class PropertiesDialogueEvent {
|
|
55
|
+
variantId;
|
|
56
|
+
position;
|
|
57
|
+
data;
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
export { PropertiesDialogueEvent };
|
|
3
61
|
|
|
4
62
|
const { BlueConicClient } = NativeModules;
|
|
5
63
|
|
|
6
|
-
export default BlueConicClient;
|
|
64
|
+
export default BlueConicClient;
|