Skip to content

Commit d121be9

Browse files
author
queue-it
committed
Preparing release 1.2.1
1 parent 0ddc71f commit d121be9

File tree

20 files changed

+1293
-771
lines changed

20 files changed

+1293
-771
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,15 @@ DerivedData
2828
*.ipa
2929
*.xcuserstate
3030
project.xcworkspace
31+
exampleApp/ios/.xcode.env.local
3132

3233
# Android/IJ
3334
.idea
3435
.gradle
3536
local.properties
3637
android.iml
3738
android/bin/
39+
android/.settings/
3840

3941
# Cocoapods
4042
exampleApp/ios/Pods

README.md

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -72,21 +72,19 @@ enqueue = async () => {
7272
enqueueResult = await QueueIt.runWithEnqueueKey(
7373
this.state.clientId,
7474
this.state.eventOrAlias,
75-
this.getEnqueueKey(),
76-
'mobile'
75+
this.getEnqueueKey()
76+
7777
);
7878
} else if (this.state.enqueueToken) {
7979
enqueueResult = await QueueIt.runWithEnqueueToken(
8080
this.state.clientId,
8181
this.state.eventOrAlias,
82-
this.getEnqueueToken(),
83-
'mobile'
82+
this.getEnqueueToken()
8483
);
8584
} else {
8685
enqueueResult = await QueueIt.run(
8786
this.state.clientId,
88-
this.state.eventOrAlias,
89-
'mobile'
87+
this.state.eventOrAlias
9088
);
9189
}
9290
switch (enqueueResult.State) {

android/build.gradle

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,10 @@ def getExtOrIntegerDefault(name) {
3333
return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties['QueueIt_' + name]).toInteger()
3434
}
3535

36+
def isNewArchitectureEnabled() {
37+
return rootProject.hasProperty("newArchEnabled") && rootProject.newArchEnabled == "true"
38+
}
39+
3640
android {
3741
namespace "com.reactnativequeueit"
3842
compileSdkVersion getExtOrIntegerDefault('compileSdkVersion')
@@ -44,6 +48,7 @@ android {
4448
targetSdkVersion getExtOrIntegerDefault('targetSdkVersion')
4549
versionCode 1
4650
versionName "1.0"
51+
buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString()
4752

4853
externalNativeBuild {
4954
cmake {
@@ -78,13 +83,25 @@ android {
7883
java.srcDirs += "$buildDir/generated/source/codegen/java"
7984
jniLibs.srcDirs += "$buildDir/generated/source/codegen/jni"
8085
}
86+
main {
87+
if (isNewArchitectureEnabled()) {
88+
java.srcDirs += ['src/newarch']
89+
} else {
90+
java.srcDirs += ['src/oldarch']
91+
}
92+
}
93+
}
94+
95+
packaging {
96+
jniLibs {
97+
excludes += ["**/libreactnative.so", "**/libjsi.so"]
98+
}
8199
}
82100
}
83101

84102
def kotlin_version = getExtOrDefault('kotlinVersion')
85103
dependencies {
86104
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
87-
88105
implementation(libs.react.android)
89106
implementation(libs.fbjni)
90107

android/src/main/java/com/reactnativequeueit/QueueItModule.kt

Lines changed: 15 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -5,98 +5,35 @@ import com.facebook.react.bridge.*
55
import com.facebook.react.modules.core.DeviceEventManagerModule
66
import com.queue_it.androidsdk.*
77

8-
98
enum class EnqueueResultState {
109
Passed, Disabled, Unavailable, RestartedSession
1110
}
1211

13-
class QueueItModule(reactContext: ReactApplicationContext)
14-
: ReactContextBaseJavaModule(reactContext) {
12+
class QueueItModule(reactContext: ReactApplicationContext) {
13+
14+
companion object {
15+
const val NAME = "QueueIt"
16+
}
1517

16-
private val handler = Handler(reactContext.mainLooper)
17-
private val context = reactContext
18+
public val handler = Handler(reactContext.mainLooper)
19+
public val context = reactContext
1820

19-
override fun getName(): String {
20-
return "QueueIt"
21+
fun getName(): String {
22+
return NAME
2123
}
2224

23-
@ReactMethod
2425
fun enableTesting(value: Boolean) {
2526
QueueService.IsTest = value
2627
}
2728

28-
fun getQueueListener(promise: Promise): QueueListener {
29-
return object : QueueListener() {
30-
override fun onUserExited() {
31-
val params = Arguments.createMap()
32-
sendEvent(context, "userExited", params)
33-
}
34-
35-
override fun onQueuePassed(queuePassedInfo: QueuePassedInfo?) {
36-
handler.post {
37-
val params = Arguments.createMap()
38-
val token = if (queuePassedInfo?.queueItToken != null) queuePassedInfo.queueItToken else ""
39-
params.putString("queueittoken", token)
40-
params.putString("state", EnqueueResultState.Passed.name)
41-
promise.resolve(params)
42-
}
43-
}
44-
45-
override fun onQueueItUnavailable() {
46-
handler.post {
47-
val params = Arguments.createMap()
48-
params.putNull("queueittoken")
49-
params.putString("state", EnqueueResultState.Unavailable.name)
50-
promise.resolve(params)
51-
}
52-
}
53-
54-
override fun onQueueViewWillOpen() {
55-
val params = Arguments.createMap()
56-
sendEvent(context, "openingQueueView", params)
57-
}
58-
59-
override fun onQueueDisabled(queueDisabledInfo: QueueDisabledInfo?) {
60-
handler.post {
61-
val params = Arguments.createMap()
62-
val token = if (queueDisabledInfo?.queueItToken != null) queueDisabledInfo.queueItToken else ""
63-
params.putString("queueittoken", token)
64-
params.putString("state", EnqueueResultState.Disabled.name)
65-
promise.resolve(params)
66-
}
67-
}
68-
69-
override fun onError(error: Error?, errorMessage: String?) {
70-
handler.post {
71-
promise.reject("error", errorMessage)
72-
}
73-
}
74-
75-
override fun onSessionRestart(queueITEngine: QueueITEngine?) {
76-
handler.post {
77-
val params = Arguments.createMap()
78-
params.putNull("queueittoken")
79-
params.putString("state", EnqueueResultState.RestartedSession.name)
80-
promise.resolve(params)
81-
}
82-
}
83-
84-
override fun onWebViewClosed(){
85-
val params = Arguments.createMap()
86-
sendEvent(context, "webViewClosed", params)
87-
}
88-
}
89-
}
90-
91-
@ReactMethod
92-
fun runAsync(customerId: String, eventAlias: String, layoutName: String?, language: String?, promise: Promise) {
29+
fun runAsync(customerId: String, eventAlias: String, layoutName: String?, language: String?, queueListener: QueueListener?, promise: Promise) {
9330
handler.post {
9431
if (context.currentActivity == null) {
9532
promise.reject("error", "Calling QueueItRun with a null activity/context")
9633
return@post
9734
}
9835
try {
99-
val queueEngine = QueueITEngine(context.currentActivity, customerId, eventAlias, layoutName, language, getQueueListener(promise))
36+
val queueEngine = QueueITEngine(context.currentActivity, customerId, eventAlias, layoutName, language, queueListener)
10037
queueEngine.run(context.currentActivity)
10138
} catch (e: Exception) {
10239
promise.reject("error", e.message)
@@ -105,15 +42,14 @@ class QueueItModule(reactContext: ReactApplicationContext)
10542
}
10643
}
10744

108-
@ReactMethod
109-
fun runWithEnqueueTokenAsync(customerId: String, eventAlias: String, enqueueToken: String, layoutName: String?, language: String?, promise: Promise) {
45+
fun runWithEnqueueTokenAsync(customerId: String, eventAlias: String, enqueueToken: String, layoutName: String?, language: String?, queueListener: QueueListener?, promise: Promise) {
11046
handler.post {
11147
if (context.currentActivity == null) {
11248
promise.reject("error", "Calling QueueItRun with a null activity/context")
11349
return@post
11450
}
11551
try {
116-
val queueEngine = QueueITEngine(context.currentActivity, customerId, eventAlias, layoutName, language, getQueueListener(promise))
52+
val queueEngine = QueueITEngine(context.currentActivity, customerId, eventAlias, layoutName, language, queueListener)
11753
queueEngine.runWithEnqueueToken(context.currentActivity, enqueueToken)
11854
} catch (e: Exception) {
11955
promise.reject("error", e.message)
@@ -122,27 +58,19 @@ class QueueItModule(reactContext: ReactApplicationContext)
12258
}
12359
}
12460

125-
@ReactMethod
126-
fun runWithEnqueueKeyAsync(customerId: String, eventAlias: String, enqueueKey: String, layoutName: String?, language: String?, promise: Promise) {
61+
fun runWithEnqueueKeyAsync(customerId: String, eventAlias: String, enqueueKey: String, layoutName: String?, language: String?, queueListener: QueueListener?, promise: Promise) {
12762
handler.post {
12863
if (context.currentActivity == null) {
12964
promise.reject("error", "Calling QueueItRun with a null activity/context")
13065
return@post
13166
}
13267
try {
133-
val queueEngine = QueueITEngine(context.currentActivity, customerId, eventAlias, layoutName, language, getQueueListener(promise))
68+
val queueEngine = QueueITEngine(context.currentActivity, customerId, eventAlias, layoutName, language, queueListener)
13469
queueEngine.runWithEnqueueKey(context.currentActivity, enqueueKey)
13570
} catch (e: Exception) {
13671
promise.reject("error", e.message)
13772
return@post
13873
}
13974
}
14075
}
141-
142-
private fun sendEvent(reactContext: ReactContext,
143-
eventName: String,
144-
params: WritableMap) {
145-
reactContext.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
146-
.emit(eventName, params)
147-
}
14876
}
Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,39 @@
11
package com.reactnativequeueit
22

3-
import java.util.Arrays
4-
5-
import com.facebook.react.ReactPackage
63
import com.facebook.react.bridge.NativeModule
74
import com.facebook.react.bridge.ReactApplicationContext
85
import com.facebook.react.uimanager.ViewManager
6+
import com.facebook.react.TurboReactPackage
7+
import com.facebook.react.module.model.ReactModuleInfo
8+
import com.facebook.react.module.model.ReactModuleInfoProvider
9+
10+
class QueueItPackage : TurboReactPackage() {
911

10-
class QueueItPackage : ReactPackage {
11-
override fun createNativeModules(reactContext: ReactApplicationContext): List<NativeModule> {
12-
return Arrays.asList<NativeModule>(QueueItModule(reactContext))
12+
override fun getModule(name: String, reactContext: ReactApplicationContext): NativeModule? {
13+
if (name == QueueItModule.NAME) {
14+
return QueueIt(reactContext)
15+
}
16+
return null
1317
}
1418

1519
override fun createViewManagers(reactContext: ReactApplicationContext): List<ViewManager<*, *>> {
1620
return emptyList<ViewManager<*, *>>()
1721
}
22+
23+
override fun getReactModuleInfoProvider(): ReactModuleInfoProvider {
24+
return ReactModuleInfoProvider {
25+
val moduleInfos = mutableMapOf<String, ReactModuleInfo>()
26+
val isTurboModule = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED
27+
moduleInfos[QueueItModule.NAME] = ReactModuleInfo(
28+
QueueItModule.NAME,
29+
QueueItModule::class.java.name,
30+
false,
31+
false,
32+
true,
33+
false,
34+
isTurboModule
35+
)
36+
moduleInfos
37+
}
38+
}
1839
}

android/src/main/jni/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ add_library(queueit_library SHARED ${SOURCE_FILES})
4848

4949
find_package(fbjni REQUIRED CONFIG)
5050
target_link_libraries(queueit_library
51-
fbjni
51+
fbjni::fbjni
5252
jsi
5353
reactnative
5454
)

0 commit comments

Comments
 (0)