Skip to content

Commit 4ce705a

Browse files
authored
feat(CLNP-1920): sdk update, integrate logger (#38)
* feat: integrate logger with native * feat: update native sdk and support onLocalParticipantReconnected and onLocalParticipantDisconnected events * chore: add NOT_CONNECTED direct call end result * chore: update sample * fix: resolve react type issue * chore: add postbuild.js
1 parent 8341047 commit 4ce705a

32 files changed

+305
-92
lines changed

android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ dependencies {
9696
// noinspection GradleDynamicVersion
9797
implementation "com.facebook.react:react-native:+"
9898
implementation "org.jetbrains.kotlin:kotlin-stdlib:${ReactNative.ext.getVersion("android", "kotlin")}"
99-
implementation("com.sendbird.sdk:sendbird-calls:1.10.0")
99+
implementation("com.sendbird.sdk:sendbird-calls:1.11.10")
100100
}
101101

102102

android/src/main/java/com/sendbird/calls/reactnative/CallsEvents.kt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
package com.sendbird.calls.reactnative
22

3-
import android.util.Log
43
import com.facebook.react.bridge.Arguments
54
import com.facebook.react.bridge.ReactContext
65
import com.facebook.react.bridge.WritableMap
76
import com.facebook.react.modules.core.DeviceEventManagerModule
8-
import com.sendbird.calls.reactnative.module.CallsModule
97
import com.sendbird.calls.reactnative.utils.CallsUtils
8+
import com.sendbird.calls.reactnative.utils.RNCallsLogger
109

1110
fun defaultType(type: String): String {
1211
return "${CallsEvents.EVENT_DEFAULT}.${type}"
@@ -51,6 +50,8 @@ class CallsEvents {
5150
// Group
5251
val TYPE_GROUP_CALL_ON_DELETED = groupCallType("onDeleted")
5352
val TYPE_GROUP_CALL_ON_ERROR = groupCallType("onError")
53+
val TYPE_GROUP_CALL_ON_LOCAL_PARTICIPANT_DISCONNECTED = groupCallType("onLocalParticipantDisconnected")
54+
val TYPE_GROUP_CALL_ON_LOCAL_PARTICIPANT_RECONNECTED = groupCallType("onLocalParticipantReconnected")
5455
val TYPE_GROUP_CALL_ON_REMOTE_PARTICIPANT_ENTERED = groupCallType("onRemoteParticipantEntered")
5556
val TYPE_GROUP_CALL_ON_REMOTE_PARTICIPANT_EXITED = groupCallType("onRemoteParticipantExited")
5657
val TYPE_GROUP_CALL_ON_REMOTE_PARTICIPANT_STREAM_STARTED = groupCallType("onRemoteParticipantStreamStarted")
@@ -61,7 +62,7 @@ class CallsEvents {
6162
val TYPE_GROUP_CALL_ON_CUSTOM_ITEMS_DELETED = groupCallType("onCustomItemsDeleted")
6263

6364
fun sendEvent(reactContext: ReactContext, event: String, eventType: String, data: WritableMap) {
64-
Log.d(CallsModule.NAME, "[CallsEvents] sendEvent() $event++$eventType")
65+
RNCallsLogger.d("[CallsEvents] sendEvent() $event++$eventType")
6566

6667
reactContext
6768
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
@@ -72,7 +73,7 @@ class CallsEvents {
7273
}
7374

7475
fun sendEvent(reactContext: ReactContext, event: String, eventType: String, data: WritableMap, additionalData: Any) {
75-
Log.d(CallsModule.NAME, "[CallsEvents] sendEvent() $event++$eventType")
76+
RNCallsLogger.d("[CallsEvents] sendEvent() $event++$eventType")
7677

7778
reactContext
7879
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)

android/src/main/java/com/sendbird/calls/reactnative/extension/DirectCallEndResultExt.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,5 @@ fun DirectCallEndResult.asString() = when (this) {
1414
DirectCallEndResult.DIAL_FAILED -> "DIAL_FAILED"
1515
DirectCallEndResult.ACCEPT_FAILED -> "ACCEPT_FAILED"
1616
DirectCallEndResult.OTHER_DEVICE_ACCEPTED -> "OTHER_DEVICE_ACCEPTED"
17+
DirectCallEndResult.NOT_CONNECTED -> "NOT_CONNECTED"
1718
}

android/src/main/java/com/sendbird/calls/reactnative/module/CallsCommonModule.kt

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.sendbird.calls.reactnative.module
22

3-
import android.util.Log
43
import com.facebook.react.bridge.Promise
54
import com.facebook.react.bridge.ReadableMap
65
import com.sendbird.calls.*
@@ -9,31 +8,36 @@ import com.sendbird.calls.reactnative.extension.rejectCalls
98
import com.sendbird.calls.reactnative.module.listener.CallsDirectCallListener
109
import com.sendbird.calls.reactnative.module.listener.CallsGroupCallListener
1110
import com.sendbird.calls.reactnative.utils.CallsUtils
11+
import com.sendbird.calls.reactnative.utils.RNCallsLogger
1212

1313
class CallsCommonModule(private val root: CallsModule): CommonModule {
14+
override fun setLoggerLevel(level: String) {
15+
RNCallsLogger.setLoggerLevel(level)
16+
}
17+
1418
override fun addDirectCallSound(type: String, fileName: String) {
15-
Log.d(CallsModule.NAME, "[CommonModule] addDirectCallSound($type, $fileName)")
19+
RNCallsLogger.d("[CommonModule] addDirectCallSound($type, $fileName)")
1620
val soundType = SendBirdCall.SoundType.valueOf(type)
1721
val resourceId = root.reactContext.resources.getIdentifier(fileName, "raw", root.reactContext.packageName)
1822
if (resourceId != 0) {
19-
Log.d(CallsModule.NAME, "[CommonModule] addDirectCallSound resource $resourceId")
23+
RNCallsLogger.d("[CommonModule] addDirectCallSound resource $resourceId")
2024
SendBirdCall.Options.addDirectCallSound(soundType, resourceId)
2125
}
2226
}
2327

2428
override fun removeDirectCallSound(type: String) {
25-
Log.d(CallsModule.NAME, "[CommonModule] removeDirectCallSound($type)")
29+
RNCallsLogger.d("[CommonModule] removeDirectCallSound($type)")
2630
val soundType = SendBirdCall.SoundType.valueOf(type)
2731
SendBirdCall.Options.removeDirectCallSound(soundType)
2832
}
2933

3034
override fun setDirectCallDialingSoundOnWhenSilentOrVibrateMode(enabled: Boolean) {
31-
Log.d(CallsModule.NAME, "[CommonModule] setDirectCallDialingSoundOnWhenSilentOrVibrateMode($enabled)")
35+
RNCallsLogger.d("[CommonModule] setDirectCallDialingSoundOnWhenSilentOrVibrateMode($enabled)")
3236
SendBirdCall.Options.setDirectCallDialingSoundOnWhenSilentOrVibrateMode(enabled)
3337
}
3438

3539
override fun getCurrentUser(promise: Promise) {
36-
Log.d(CallsModule.NAME, "[CommonModule] getCurrentUser()")
40+
RNCallsLogger.d("[CommonModule] getCurrentUser()")
3741
SendBirdCall.currentUser
3842
?.let {
3943
promise.resolve(CallsUtils.convertUserToJsMap(it))
@@ -44,13 +48,13 @@ class CallsCommonModule(private val root: CallsModule): CommonModule {
4448
}
4549

4650
override fun getOngoingCalls(promise: Promise) {
47-
Log.d(CallsModule.NAME, "[CommonModule] getOngoingCalls()")
51+
RNCallsLogger.d("[CommonModule] getOngoingCalls()")
4852
val list = SendBirdCall.ongoingCalls.map { CallsUtils.convertDirectCallToJsMap(it) }
4953
promise.resolve(CallsUtils.convertToJsArray(list))
5054
}
5155

5256
override fun getDirectCall(callId: String, promise: Promise) {
53-
Log.d(CallsModule.NAME, "[CommonModule] getDirectCall($callId)")
57+
RNCallsLogger.d("[CommonModule] getDirectCall($callId)")
5458
SendBirdCall.getCall(callId)
5559
?.let {
5660
promise.resolve(CallsUtils.convertDirectCallToJsMap(it))
@@ -61,12 +65,12 @@ class CallsCommonModule(private val root: CallsModule): CommonModule {
6165
}
6266

6367
override fun initialize(appId: String): Boolean {
64-
Log.d(CallsModule.NAME, "[CommonModule] initialize($appId)")
68+
RNCallsLogger.d("[CommonModule] initialize()")
6569
return SendBirdCall.init(root.reactContext, appId)
6670
}
6771

6872
override fun authenticate(authParams: ReadableMap, promise: Promise) {
69-
Log.d(CallsModule.NAME, "[CommonModule] authenticate(${authParams.toHashMap()})")
73+
RNCallsLogger.d("[CommonModule] authenticate()")
7074

7175
val userId = authParams.getString("userId")!!
7276
val accessToken = CallsUtils.safeGet { authParams.getString("accessToken") }
@@ -86,7 +90,7 @@ class CallsCommonModule(private val root: CallsModule): CommonModule {
8690
}
8791

8892
override fun deauthenticate(promise: Promise) {
89-
Log.d(CallsModule.NAME, "[CommonModule] deauthenticate()")
93+
RNCallsLogger.d("[CommonModule] deauthenticate()")
9094
SendBirdCall.deauthenticate { error ->
9195
error
9296
?.let {
@@ -99,7 +103,7 @@ class CallsCommonModule(private val root: CallsModule): CommonModule {
99103
}
100104

101105
override fun registerPushToken(token: String, unique: Boolean, promise: Promise) {
102-
Log.d(CallsModule.NAME, "[CommonModule] registerPushToken($token)")
106+
RNCallsLogger.d("[CommonModule] registerPushToken()")
103107
SendBirdCall.registerPushToken(token, unique) { error ->
104108
error
105109
?.let {
@@ -112,7 +116,7 @@ class CallsCommonModule(private val root: CallsModule): CommonModule {
112116
}
113117

114118
override fun unregisterPushToken(token: String, promise: Promise) {
115-
Log.d(CallsModule.NAME, "[CommonModule] unregisterPushToken($token)")
119+
RNCallsLogger.d("[CommonModule] unregisterPushToken()")
116120
SendBirdCall.unregisterPushToken(token) { error ->
117121
error
118122
?.let {
@@ -125,8 +129,8 @@ class CallsCommonModule(private val root: CallsModule): CommonModule {
125129
}
126130

127131
override fun dial(calleeId: String, isVideoCall: Boolean, options: ReadableMap, promise: Promise) {
128-
Log.d(CallsModule.NAME, "[CommonModule] dial($calleeId)")
129-
Log.d(CallsModule.NAME, "[CommonModule] dial options -> ${options.toHashMap()}")
132+
RNCallsLogger.d("[CommonModule] dial($calleeId)")
133+
RNCallsLogger.d("[CommonModule] dial options -> ${options.toHashMap()}")
130134
val from = "common/dial"
131135

132136
val localVideoViewId = CallsUtils.safeGet { options.getInt("localVideoViewId") }
@@ -178,7 +182,7 @@ class CallsCommonModule(private val root: CallsModule): CommonModule {
178182

179183
override fun createRoom(params: ReadableMap, promise: Promise) {
180184
val roomType = CallsUtils.safeGet { params.getString("roomType") } ?: "SMALL_ROOM_FOR_VIDEO"
181-
Log.d(CallsModule.NAME, "[CommonModule] createRoom($roomType)")
185+
RNCallsLogger.d("[CommonModule] createRoom($roomType)")
182186

183187
val roomParams = RoomParams(RoomType.valueOf(roomType.uppercase()))
184188
SendBirdCall.createRoom(roomParams) { room, error ->
@@ -193,7 +197,7 @@ class CallsCommonModule(private val root: CallsModule): CommonModule {
193197
}
194198

195199
override fun fetchRoomById(roomId: String, promise: Promise) {
196-
Log.d(CallsModule.NAME, "[CommonModule] fetchRoomById($roomId)")
200+
RNCallsLogger.d("[CommonModule] fetchRoomById($roomId)")
197201
SendBirdCall.fetchRoomById(roomId) { room, error ->
198202
error?.let {
199203
promise.rejectCalls(it)
@@ -206,7 +210,7 @@ class CallsCommonModule(private val root: CallsModule): CommonModule {
206210
}
207211

208212
override fun getCachedRoomById(roomId: String , promise: Promise) {
209-
Log.d(CallsModule.NAME, "[CommonModule] getCachedRoomById($roomId)")
213+
RNCallsLogger.d("[CommonModule] getCachedRoomById($roomId)")
210214
SendBirdCall.getCachedRoomById(roomId)
211215
?.let {
212216
promise.resolve(CallsUtils.convertRoomToJsMap(it))

android/src/main/java/com/sendbird/calls/reactnative/module/CallsDirectCallModule.kt

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.sendbird.calls.reactnative.module
22

3-
import android.util.Log
43
import com.facebook.react.bridge.Promise
54
import com.facebook.react.bridge.ReadableMap
65
import com.sendbird.calls.AcceptParams
@@ -9,11 +8,11 @@ import com.sendbird.calls.CallOptions
98
import com.sendbird.calls.reactnative.RNCallsInternalError
109
import com.sendbird.calls.reactnative.extension.rejectCalls
1110
import com.sendbird.calls.reactnative.utils.CallsUtils
11+
import com.sendbird.calls.reactnative.utils.RNCallsLogger
1212

1313
class CallsDirectCallModule(private val root: CallsModule): DirectCallModule {
1414
override fun accept(callId: String, options: ReadableMap, holdActiveCall: Boolean, promise: Promise) {
15-
Log.d(CallsModule.NAME, "[DirectCallModule] accept() -> $callId")
16-
Log.d(CallsModule.NAME, "[DirectCallModule] accept options -> ${options.toHashMap()}")
15+
RNCallsLogger.d("[DirectCallModule] accept() -> $callId")
1716

1817
CallsUtils.safeRun(promise) {
1918
val from = "directCall/accept"
@@ -54,7 +53,7 @@ class CallsDirectCallModule(private val root: CallsModule): DirectCallModule {
5453
}
5554

5655
override fun end(callId: String, promise: Promise) {
57-
Log.d(CallsModule.NAME, "[DirectCallModule] end() -> $callId")
56+
RNCallsLogger.d("[DirectCallModule] end() -> $callId")
5857

5958
CallsUtils.safeRun(promise) {
6059
val from = "directCall/end"
@@ -64,7 +63,7 @@ class CallsDirectCallModule(private val root: CallsModule): DirectCallModule {
6463
}
6564

6665
override fun updateLocalVideoView(callId: String, videoViewId: Int) {
67-
Log.d(CallsModule.NAME, "[DirectCallModule] updateLocalVideoView() -> $callId / $videoViewId")
66+
RNCallsLogger.d("[DirectCallModule] updateLocalVideoView() -> $callId / $videoViewId")
6867

6968
CallsUtils.safeRun {
7069
val from = "directCall/updateLocalVideoView"
@@ -75,7 +74,7 @@ class CallsDirectCallModule(private val root: CallsModule): DirectCallModule {
7574
}
7675

7776
override fun updateRemoteVideoView(callId: String, videoViewId: Int) {
78-
Log.d(CallsModule.NAME, "[DirectCallModule] updateRemoteVideoView() -> $callId / $videoViewId")
77+
RNCallsLogger.d("[DirectCallModule] updateRemoteVideoView() -> $callId / $videoViewId")
7978

8079
CallsUtils.safeRun {
8180
val from = "directCall/updateRemoteVideoView"
@@ -114,7 +113,7 @@ class CallsDirectCallModule(private val root: CallsModule): DirectCallModule {
114113

115114
override fun muteMicrophone(type: String, identifier: String) {
116115
val from = "directCall/muteMicrophone"
117-
Log.d(CallsModule.NAME, "[DirectCallModule] $from ($identifier)")
116+
RNCallsLogger.d("[DirectCallModule] $from ($identifier)")
118117

119118
CallsUtils.safeRun {
120119
CallsUtils.findDirectCall(identifier, from).muteMicrophone()
@@ -123,7 +122,7 @@ class CallsDirectCallModule(private val root: CallsModule): DirectCallModule {
123122

124123
override fun unmuteMicrophone(type: String, identifier: String) {
125124
val from = "directCall/unmuteMicrophone"
126-
Log.d(CallsModule.NAME, "[DirectCallModule] $from ($identifier)")
125+
RNCallsLogger.d("[DirectCallModule] $from ($identifier)")
127126

128127
CallsUtils.safeRun {
129128
CallsUtils.findDirectCall(identifier, from).unmuteMicrophone()
@@ -132,7 +131,7 @@ class CallsDirectCallModule(private val root: CallsModule): DirectCallModule {
132131

133132
override fun stopVideo(type: String, identifier: String) {
134133
val from = "directCall/stopVideo"
135-
Log.d(CallsModule.NAME, "[DirectCallModule] $from ($identifier)")
134+
RNCallsLogger.d("[DirectCallModule] $from ($identifier)")
136135

137136
CallsUtils.safeRun {
138137
CallsUtils.findDirectCall(identifier, from).stopVideo()
@@ -141,7 +140,7 @@ class CallsDirectCallModule(private val root: CallsModule): DirectCallModule {
141140

142141
override fun startVideo(type: String, identifier: String) {
143142
val from = "directCall/startVideo"
144-
Log.d(CallsModule.NAME, "[DirectCallModule] $from ($identifier)")
143+
RNCallsLogger.d("[DirectCallModule] $from ($identifier)")
145144

146145
CallsUtils.safeRun {
147146
CallsUtils.findDirectCall(identifier, from).startVideo()
@@ -150,7 +149,7 @@ class CallsDirectCallModule(private val root: CallsModule): DirectCallModule {
150149

151150
override fun switchCamera(type: String, identifier: String, promise: Promise) {
152151
val from = "directCall/switchCamera"
153-
Log.d(CallsModule.NAME, "[DirectCallModule] $from ($identifier)")
152+
RNCallsLogger.d("[DirectCallModule] $from ($identifier)")
154153

155154
CallsUtils.safeRun(promise) {
156155
CallsUtils.findDirectCall(identifier, from).switchCamera { error ->
@@ -167,7 +166,7 @@ class CallsDirectCallModule(private val root: CallsModule): DirectCallModule {
167166

168167
override fun selectAudioDevice(type: String, identifier: String, device: String, promise: Promise) {
169168
val from = "directCall/switchCamera"
170-
Log.d(CallsModule.NAME, "[DirectCallModule] $from ($identifier)")
169+
RNCallsLogger.d("[DirectCallModule] $from ($identifier)")
171170

172171
CallsUtils.safeRun(promise) {
173172
val audioDevice = AudioDevice.valueOf(device)

android/src/main/java/com/sendbird/calls/reactnative/module/CallsGroupCallModule.kt

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
package com.sendbird.calls.reactnative.module
22

3-
import android.util.Log
43
import com.facebook.react.bridge.Promise
54
import com.facebook.react.bridge.ReadableMap
65
import com.sendbird.calls.*
76
import com.sendbird.calls.reactnative.RNCallsInternalError
87
import com.sendbird.calls.reactnative.extension.rejectCalls
98
import com.sendbird.calls.reactnative.utils.CallsUtils
9+
import com.sendbird.calls.reactnative.utils.RNCallsLogger
1010

1111
class CallsGroupCallModule: GroupCallModule {
1212
override fun enter(roomId: String, options: ReadableMap, promise: Promise) {
1313
val from = "groupCall/enter"
14-
Log.d(CallsModule.NAME, "[GroupCallModule] $from -> roomId($roomId) options(${options.toHashMap()})")
14+
RNCallsLogger.d("[GroupCallModule] $from -> roomId($roomId) options(${options.toHashMap()})")
1515
SendBirdCall.getCachedRoomById(roomId)
1616
?.let {
1717
val audioEnabled = CallsUtils.safeGet { options.getBoolean("audioEnabled") }
@@ -43,15 +43,15 @@ class CallsGroupCallModule: GroupCallModule {
4343

4444
override fun exit(roomId: String) {
4545
val from = "groupCall/exit"
46-
Log.d(CallsModule.NAME, "[GroupCallModule] $from -> roomId($roomId)")
46+
RNCallsLogger.d("[GroupCallModule] $from -> roomId($roomId)")
4747
CallsUtils.safeRun {
4848
CallsUtils.findRoom(roomId, from).exit()
4949
}
5050
}
5151

5252
override fun muteMicrophone(type: String, identifier: String) {
5353
val from = "groupCall/muteMicrophone"
54-
Log.d(CallsModule.NAME, "[GroupCallModule] $from ($identifier)")
54+
RNCallsLogger.d("[GroupCallModule] $from ($identifier)")
5555

5656
CallsUtils.safeRun {
5757
CallsUtils.findRoom(identifier, from).localParticipant?.muteMicrophone()
@@ -60,7 +60,7 @@ class CallsGroupCallModule: GroupCallModule {
6060

6161
override fun unmuteMicrophone(type: String, identifier: String) {
6262
val from = "groupCall/unmuteMicrophone"
63-
Log.d(CallsModule.NAME, "[GroupCallModule] $from ($identifier)")
63+
RNCallsLogger.d("[GroupCallModule] $from ($identifier)")
6464

6565
CallsUtils.safeRun {
6666
CallsUtils.findRoom(identifier, from).localParticipant?.unmuteMicrophone()
@@ -69,7 +69,7 @@ class CallsGroupCallModule: GroupCallModule {
6969

7070
override fun stopVideo(type: String, identifier: String) {
7171
val from = "groupCall/stopVideo"
72-
Log.d(CallsModule.NAME, "[GroupCallModule] $from ($identifier)")
72+
RNCallsLogger.d("[GroupCallModule] $from ($identifier)")
7373

7474
CallsUtils.safeRun {
7575
CallsUtils.findRoom(identifier, from).localParticipant?.stopVideo()
@@ -78,7 +78,7 @@ class CallsGroupCallModule: GroupCallModule {
7878

7979
override fun startVideo(type: String, identifier: String) {
8080
val from = "groupCall/startVideo"
81-
Log.d(CallsModule.NAME, "[GroupCallModule] $from ($identifier)")
81+
RNCallsLogger.d("[GroupCallModule] $from ($identifier)")
8282

8383
CallsUtils.safeRun {
8484
CallsUtils.findRoom(identifier, from).localParticipant?.startVideo()
@@ -87,7 +87,7 @@ class CallsGroupCallModule: GroupCallModule {
8787

8888
override fun switchCamera(type: String, identifier: String, promise: Promise) {
8989
val from = "groupCall/switchCamera"
90-
Log.d(CallsModule.NAME, "[GroupCallModule] $from ($identifier)")
90+
RNCallsLogger.d("[GroupCallModule] $from ($identifier)")
9191

9292
CallsUtils.safeRun(promise) {
9393
CallsUtils.findRoom(identifier, from).localParticipant?.switchCamera { error ->
@@ -104,7 +104,7 @@ class CallsGroupCallModule: GroupCallModule {
104104

105105
override fun selectAudioDevice(type: String, identifier: String, device: String, promise: Promise) {
106106
val from = "groupCall/switchCamera"
107-
Log.d(CallsModule.NAME, "[GroupCallModule] $from ($identifier)")
107+
RNCallsLogger.d("[GroupCallModule] $from ($identifier)")
108108

109109
CallsUtils.safeRun(promise) {
110110
val audioDevice = AudioDevice.valueOf(device)

0 commit comments

Comments
 (0)