@stream-io/react-native-callingx 0.1.1-beta.0 → 0.1.1-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/src/main/java/io/getstream/rn/callingx/CallRegistrationStore.kt +34 -65
- package/android/src/main/java/io/getstream/rn/callingx/CallService.kt +36 -40
- package/android/src/main/java/io/getstream/rn/callingx/CallingxModuleImpl.kt +8 -235
- package/android/src/main/java/io/getstream/rn/callingx/notifications/CallNotificationManager.kt +0 -10
- package/dist/module/CallingxModule.js +7 -14
- package/dist/module/CallingxModule.js.map +1 -1
- package/dist/module/spec/NativeCallingx.js.map +1 -1
- package/dist/module/utils/constants.js +0 -1
- package/dist/module/utils/constants.js.map +1 -1
- package/dist/typescript/src/CallingxModule.d.ts +1 -2
- package/dist/typescript/src/CallingxModule.d.ts.map +1 -1
- package/dist/typescript/src/spec/NativeCallingx.d.ts +0 -3
- package/dist/typescript/src/spec/NativeCallingx.d.ts.map +1 -1
- package/dist/typescript/src/types.d.ts +2 -5
- package/dist/typescript/src/types.d.ts.map +1 -1
- package/dist/typescript/src/utils/constants.d.ts +1 -2
- package/dist/typescript/src/utils/constants.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/CallingxModule.ts +6 -11
- package/src/spec/NativeCallingx.ts +0 -3
- package/src/types.ts +2 -4
- package/src/utils/constants.ts +0 -3
|
@@ -2,9 +2,11 @@ package io.getstream.rn.callingx
|
|
|
2
2
|
|
|
3
3
|
import android.os.Handler
|
|
4
4
|
import android.os.Looper
|
|
5
|
-
import android.util.Log
|
|
6
5
|
import com.facebook.react.bridge.Promise
|
|
6
|
+
import io.getstream.rn.callingx.model.CallAction
|
|
7
|
+
import java.util.Collections
|
|
7
8
|
import java.util.concurrent.ConcurrentHashMap
|
|
9
|
+
import kotlin.collections.emptyList
|
|
8
10
|
|
|
9
11
|
object CallRegistrationStore {
|
|
10
12
|
|
|
@@ -13,10 +15,8 @@ object CallRegistrationStore {
|
|
|
13
15
|
|
|
14
16
|
private val trackedCallIds: MutableSet<String> = ConcurrentHashMap.newKeySet()
|
|
15
17
|
|
|
16
|
-
/** Pending
|
|
17
|
-
private val
|
|
18
|
-
private val pendingAnswerByCallId = ConcurrentHashMap<String, Boolean>()
|
|
19
|
-
private val pendingMuteByCallId = ConcurrentHashMap<String, Boolean>()
|
|
18
|
+
/** Pending actions per callId, queued until the call is registered in Telecom. */
|
|
19
|
+
private val pendingActionsByCallId = ConcurrentHashMap<String, MutableList<CallAction>>()
|
|
20
20
|
|
|
21
21
|
// Per-callId pending promises for displayIncomingCall awaiting CALL_REGISTERED_INCOMING_ACTION
|
|
22
22
|
private val pendingPromises = mutableMapOf<String, Promise>()
|
|
@@ -24,7 +24,10 @@ object CallRegistrationStore {
|
|
|
24
24
|
private val mainHandler = Handler(Looper.getMainLooper())
|
|
25
25
|
|
|
26
26
|
fun trackCallRegistration(callId: String, promise: Promise?) {
|
|
27
|
-
debugLog(
|
|
27
|
+
debugLog(
|
|
28
|
+
TAG,
|
|
29
|
+
"[store] trackCallRegistration: Tracking call registration for callId: $callId"
|
|
30
|
+
)
|
|
28
31
|
trackedCallIds.add(callId)
|
|
29
32
|
|
|
30
33
|
if (promise == null) return
|
|
@@ -38,10 +41,9 @@ object CallRegistrationStore {
|
|
|
38
41
|
|
|
39
42
|
val timeoutRunnable = Runnable {
|
|
40
43
|
synchronized(pendingPromises) {
|
|
41
|
-
pendingPromises
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
)
|
|
44
|
+
pendingPromises
|
|
45
|
+
.remove(callId)
|
|
46
|
+
?.reject("TIMEOUT", "Timed out waiting for call registration: $callId")
|
|
45
47
|
pendingTimeouts.remove(callId)
|
|
46
48
|
trackedCallIds.remove(callId)
|
|
47
49
|
}
|
|
@@ -60,24 +62,25 @@ object CallRegistrationStore {
|
|
|
60
62
|
|
|
61
63
|
fun onRegistrationFailed(callId: String) {
|
|
62
64
|
reportRegistrationFail(
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
65
|
+
callId,
|
|
66
|
+
"REGISTRATION_FAILED",
|
|
67
|
+
"Failed to register call with telecom: $callId",
|
|
68
|
+
null
|
|
67
69
|
)
|
|
68
70
|
}
|
|
69
71
|
|
|
70
72
|
fun reportRegistrationFail(
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
73
|
+
callId: String,
|
|
74
|
+
code: String,
|
|
75
|
+
message: String?,
|
|
76
|
+
throwable: Throwable?
|
|
75
77
|
) {
|
|
76
78
|
trackedCallIds.remove(callId)
|
|
77
79
|
|
|
78
80
|
synchronized(pendingPromises) {
|
|
79
81
|
pendingTimeouts.remove(callId)?.let { mainHandler.removeCallbacks(it) }
|
|
80
82
|
val promise = pendingPromises.remove(callId)
|
|
83
|
+
pendingActionsByCallId.remove(callId)
|
|
81
84
|
if (promise != null) {
|
|
82
85
|
if (throwable != null) {
|
|
83
86
|
promise.reject(code, message, throwable)
|
|
@@ -111,50 +114,23 @@ object CallRegistrationStore {
|
|
|
111
114
|
}
|
|
112
115
|
|
|
113
116
|
/**
|
|
114
|
-
*
|
|
115
|
-
*
|
|
117
|
+
* Queues an action for a call that is not yet registered.
|
|
118
|
+
* Pending actions are drained and executed once registration completes.
|
|
116
119
|
*/
|
|
117
|
-
fun
|
|
118
|
-
debugLog(TAG, "[store]
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
fun setPendingAnswer(callId: String, isAudioCall: Boolean) {
|
|
123
|
-
debugLog(TAG, "[store] setPendingAnswer: callId=$callId")
|
|
124
|
-
pendingAnswerByCallId[callId] = isAudioCall
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
fun setPendingMute(callId: String, isMute: Boolean) {
|
|
128
|
-
debugLog(TAG, "[store] setPendingMute: callId=$callId isMute=$isMute")
|
|
129
|
-
pendingMuteByCallId[callId] = isMute
|
|
120
|
+
fun addPendingAction(callId: String, action: CallAction) {
|
|
121
|
+
debugLog(TAG, "[store] addPendingAction: callId=$callId action=${action::class.simpleName}")
|
|
122
|
+
pendingActionsByCallId
|
|
123
|
+
.computeIfAbsent(callId) { Collections.synchronizedList(mutableListOf()) }
|
|
124
|
+
.add(action)
|
|
130
125
|
}
|
|
131
126
|
|
|
132
127
|
/**
|
|
133
|
-
* Returns and removes
|
|
134
|
-
* Used
|
|
128
|
+
* Returns and removes all queued actions for this call.
|
|
129
|
+
* Used once a call is registered so the service can replay pending actions.
|
|
135
130
|
*/
|
|
136
|
-
fun
|
|
137
|
-
val
|
|
138
|
-
|
|
139
|
-
debugLog(TAG, "[store] takePendingDisconnect: callId=$callId causeCode=$code")
|
|
140
|
-
}
|
|
141
|
-
return code
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
fun takePendingAnswer(callId: String): Boolean? {
|
|
145
|
-
val isAudioCall = pendingAnswerByCallId.remove(callId)
|
|
146
|
-
if (isAudioCall != null) {
|
|
147
|
-
debugLog(TAG, "[store] takePendingAnswer: callId=$callId isAudioCall=$isAudioCall")
|
|
148
|
-
}
|
|
149
|
-
return isAudioCall
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
fun takePendingMute(callId: String): Boolean? {
|
|
153
|
-
val isMute = pendingMuteByCallId.remove(callId)
|
|
154
|
-
if (isMute != null) {
|
|
155
|
-
debugLog(TAG, "[store] takePendingMute: callId=$callId isMute=$isMute")
|
|
156
|
-
}
|
|
157
|
-
return isMute
|
|
131
|
+
fun takePendingActions(callId: String): List<CallAction> {
|
|
132
|
+
val list = pendingActionsByCallId.remove(callId) ?: return emptyList()
|
|
133
|
+
synchronized(list) { return list.toList() }
|
|
158
134
|
}
|
|
159
135
|
|
|
160
136
|
fun clearAll() {
|
|
@@ -164,13 +140,6 @@ object CallRegistrationStore {
|
|
|
164
140
|
pendingPromises.clear()
|
|
165
141
|
}
|
|
166
142
|
trackedCallIds.clear()
|
|
167
|
-
|
|
168
|
-
pendingAnswerByCallId.clear()
|
|
169
|
-
pendingMuteByCallId.clear()
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
private fun debugLog(tag: String, message: String) {
|
|
173
|
-
Log.d(tag, message)
|
|
143
|
+
pendingActionsByCallId.clear()
|
|
174
144
|
}
|
|
175
145
|
}
|
|
176
|
-
|
|
@@ -53,8 +53,8 @@ class CallService : Service(), CallRepository.Listener {
|
|
|
53
53
|
internal const val EXTRA_URI = "extra_uri"
|
|
54
54
|
internal const val EXTRA_IS_VIDEO = "extra_is_video"
|
|
55
55
|
internal const val EXTRA_DISPLAY_TITLE = "displayTitle"
|
|
56
|
-
internal const val EXTRA_DISPLAY_SUBTITLE = "displaySubtitle"
|
|
57
56
|
internal const val EXTRA_DISPLAY_OPTIONS = "display_options"
|
|
57
|
+
internal const val EXTRA_ACTION = "action_name"
|
|
58
58
|
// Background task extras
|
|
59
59
|
internal const val EXTRA_TASK_NAME = "task_name"
|
|
60
60
|
internal const val EXTRA_TASK_DATA = "task_data"
|
|
@@ -66,6 +66,7 @@ class CallService : Service(), CallRepository.Listener {
|
|
|
66
66
|
internal const val ACTION_START_BACKGROUND_TASK = "start_background_task"
|
|
67
67
|
internal const val ACTION_STOP_BACKGROUND_TASK = "stop_background_task"
|
|
68
68
|
internal const val ACTION_STOP_SERVICE = "stop_service"
|
|
69
|
+
internal const val ACTION_PROCESS_ACTION = "execute_action"
|
|
69
70
|
internal const val ACTION_REGISTRATION_FAILED = "registration_failed"
|
|
70
71
|
|
|
71
72
|
fun startIncomingCallFromPush(context: Context, data: Map<String, String>) {
|
|
@@ -218,8 +219,6 @@ class CallService : Service(), CallRepository.Listener {
|
|
|
218
219
|
@Suppress("UnspecifiedRegisterReceiverFlag")
|
|
219
220
|
registerReceiver(optimisticNotificationReceiver, filter)
|
|
220
221
|
}
|
|
221
|
-
|
|
222
|
-
sendBroadcastEvent(CallingxModuleImpl.SERVICE_READY_ACTION)
|
|
223
222
|
}
|
|
224
223
|
|
|
225
224
|
override fun onDestroy() {
|
|
@@ -272,6 +271,9 @@ class CallService : Service(), CallRepository.Listener {
|
|
|
272
271
|
ACTION_UPDATE_CALL -> {
|
|
273
272
|
updateCall(intent)
|
|
274
273
|
}
|
|
274
|
+
ACTION_PROCESS_ACTION -> {
|
|
275
|
+
processAction(intent)
|
|
276
|
+
}
|
|
275
277
|
ACTION_STOP_SERVICE -> {
|
|
276
278
|
if (isInForeground) {
|
|
277
279
|
stopForeground(STOP_FOREGROUND_REMOVE)
|
|
@@ -416,7 +418,18 @@ class CallService : Service(), CallRepository.Listener {
|
|
|
416
418
|
}
|
|
417
419
|
}
|
|
418
420
|
|
|
419
|
-
|
|
421
|
+
fun processAction(intent: Intent) {
|
|
422
|
+
val callId = intent.getStringExtra(EXTRA_CALL_ID) ?: return
|
|
423
|
+
val action = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
|
424
|
+
intent.getParcelableExtra(EXTRA_ACTION, CallAction::class.java)
|
|
425
|
+
} else {
|
|
426
|
+
@Suppress("DEPRECATION") intent.getParcelableExtra(EXTRA_ACTION)
|
|
427
|
+
} ?: return
|
|
428
|
+
|
|
429
|
+
processAction(callId, action)
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
fun processAction(callId: String, action: CallAction) {
|
|
420
433
|
debugLog(
|
|
421
434
|
TAG,
|
|
422
435
|
"[service] processAction[$callId]: Processing action: ${action::class.simpleName}"
|
|
@@ -428,33 +441,23 @@ class CallService : Service(), CallRepository.Listener {
|
|
|
428
441
|
} else {
|
|
429
442
|
// this solves race condition, when action is requested before the call is
|
|
430
443
|
// registered in Telecom
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
CallRegistrationStore.setPendingAnswer(callId, action.isAudioCall)
|
|
437
|
-
} else if (action is CallAction.ToggleMute) {
|
|
438
|
-
debugLog(TAG, "[service] storing pending mute for $callId")
|
|
439
|
-
CallRegistrationStore.setPendingMute(callId, action.isMute)
|
|
440
|
-
} else {
|
|
441
|
-
Log.w(
|
|
442
|
-
TAG,
|
|
443
|
-
"[service] processAction[$callId]: Call not registered, ignoring action"
|
|
444
|
-
)
|
|
445
|
-
}
|
|
444
|
+
debugLog(
|
|
445
|
+
TAG,
|
|
446
|
+
"[service] processAction: Add pending action for ${call?.id} to queue"
|
|
447
|
+
)
|
|
448
|
+
CallRegistrationStore.addPendingAction(callId, action)
|
|
446
449
|
}
|
|
447
450
|
}
|
|
448
451
|
}
|
|
449
452
|
|
|
450
|
-
|
|
453
|
+
fun startBackgroundTask(intent: Intent) {
|
|
451
454
|
val taskName = intent.getStringExtra(EXTRA_TASK_NAME)!!
|
|
452
455
|
val data = intent.getBundleExtra(EXTRA_TASK_DATA)!!
|
|
453
456
|
val timeout = intent.getLongExtra(EXTRA_TASK_TIMEOUT, 0)
|
|
454
457
|
headlessJSManager.startHeadlessTask(taskName, data, timeout)
|
|
455
458
|
}
|
|
456
459
|
|
|
457
|
-
|
|
460
|
+
fun stopBackgroundTask() {
|
|
458
461
|
headlessJSManager.stopHeadlessTask()
|
|
459
462
|
}
|
|
460
463
|
|
|
@@ -518,30 +521,23 @@ class CallService : Service(), CallRepository.Listener {
|
|
|
518
521
|
|
|
519
522
|
private fun processPendingActions(call: Call.Registered): Boolean {
|
|
520
523
|
synchronized(actionProcessingLock) {
|
|
521
|
-
val
|
|
522
|
-
val pendingAnswer = CallRegistrationStore.takePendingAnswer(call.id)
|
|
523
|
-
val pendingMute = CallRegistrationStore.takePendingMute(call.id)
|
|
524
|
+
val pendingActions = CallRegistrationStore.takePendingActions(call.id)
|
|
524
525
|
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
)
|
|
530
|
-
call.processAction(CallAction.Disconnect(DisconnectCause(pendingCauseCode)))
|
|
526
|
+
val disconnectAction = pendingActions.find { it is CallAction.Disconnect }
|
|
527
|
+
if (disconnectAction != null) {
|
|
528
|
+
// if queue contains Disconnect, execute it and ignore rest of the queue
|
|
529
|
+
debugLog(TAG, "[service] processPendingActions: Executing pending disconnect for ${call.id}")
|
|
530
|
+
call.processAction(disconnectAction)
|
|
531
531
|
return true
|
|
532
532
|
}
|
|
533
533
|
|
|
534
|
-
|
|
534
|
+
// process pending actions in the order they were added
|
|
535
|
+
for (action in pendingActions) {
|
|
536
|
+
call.processAction(action)
|
|
535
537
|
debugLog(
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
call.processAction(CallAction.Answer(pendingAnswer))
|
|
540
|
-
}
|
|
541
|
-
|
|
542
|
-
if (pendingMute != null) {
|
|
543
|
-
debugLog(TAG, "[service] onCallStateChanged: Executing pending mute for ${call.id}")
|
|
544
|
-
call.processAction(CallAction.ToggleMute(pendingMute))
|
|
538
|
+
TAG,
|
|
539
|
+
"[service] processPendingActions: Executing pending action: $action for ${call.id}"
|
|
540
|
+
)
|
|
545
541
|
}
|
|
546
542
|
|
|
547
543
|
return false
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
package io.getstream.rn.callingx
|
|
2
2
|
|
|
3
3
|
import android.content.BroadcastReceiver
|
|
4
|
-
import android.content.ComponentName
|
|
5
4
|
import android.content.Context
|
|
6
5
|
import android.content.Intent
|
|
7
6
|
import android.content.IntentFilter
|
|
8
|
-
import android.content.ServiceConnection
|
|
9
7
|
import android.os.Build
|
|
10
8
|
import android.os.Bundle
|
|
11
|
-
import android.os.IBinder
|
|
12
9
|
import android.telecom.DisconnectCause
|
|
13
10
|
import android.util.Log
|
|
14
11
|
import androidx.core.content.ContextCompat
|
|
@@ -42,6 +39,7 @@ class CallingxModuleImpl(
|
|
|
42
39
|
const val EXTRA_DISCONNECT_CAUSE = "disconnect_cause"
|
|
43
40
|
const val EXTRA_AUDIO_ENDPOINT = "audio_endpoint"
|
|
44
41
|
const val EXTRA_SOURCE = "source"
|
|
42
|
+
const val EXTRA_ACTION = "action_name"
|
|
45
43
|
|
|
46
44
|
// Action names must match intent-filter entries in AndroidManifest.xml
|
|
47
45
|
const val CALL_REGISTERED_ACTION = "io.getstream.CALL_REGISTERED"
|
|
@@ -56,61 +54,19 @@ class CallingxModuleImpl(
|
|
|
56
54
|
const val CALL_OPTIMISTIC_ACCEPT_ACTION = "io.getstream.ACCEPT_CALL_OPTIMISTIC"
|
|
57
55
|
// Background task name
|
|
58
56
|
const val HEADLESS_TASK_NAME = "HandleCallBackgroundState"
|
|
59
|
-
const val SERVICE_READY_ACTION = "io.getstream.SERVICE_READY"
|
|
60
57
|
}
|
|
61
58
|
|
|
62
|
-
private enum class BindingState {
|
|
63
|
-
UNBOUND,
|
|
64
|
-
BINDING,
|
|
65
|
-
BOUND
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
private var callService: CallService? = null
|
|
69
|
-
private var bindingState = BindingState.UNBOUND
|
|
70
|
-
|
|
71
59
|
private var delayedEvents = WritableNativeArray()
|
|
72
60
|
private var isModuleInitialized = false
|
|
73
61
|
private var canSendEvents = false
|
|
74
|
-
private var isHeadlessTaskRegistered = false
|
|
75
62
|
|
|
76
63
|
private val notificationChannelsManager = NotificationChannelsManager(reactApplicationContext)
|
|
77
|
-
private val serviceReadyBroadcastReceiver = ServiceReadyBroadcastReceiver()
|
|
78
|
-
private val appStateListener =
|
|
79
|
-
object : LifecycleEventListener {
|
|
80
|
-
override fun onHostResume() {}
|
|
81
|
-
|
|
82
|
-
override fun onHostPause() {}
|
|
83
|
-
|
|
84
|
-
override fun onHostDestroy() {
|
|
85
|
-
// App destroyed - force unbind
|
|
86
|
-
debugLog(TAG, "[module] onHostDestroy: App destroyed")
|
|
87
|
-
unbindServiceSafely()
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
64
|
|
|
91
65
|
init {
|
|
92
66
|
CallEventBus.subscribe(this)
|
|
93
|
-
|
|
94
|
-
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
|
95
|
-
reactApplicationContext.registerReceiver(
|
|
96
|
-
serviceReadyBroadcastReceiver,
|
|
97
|
-
getServiceReadyReceiverFilter(),
|
|
98
|
-
Context.RECEIVER_NOT_EXPORTED
|
|
99
|
-
)
|
|
100
|
-
} else {
|
|
101
|
-
@Suppress("UnspecifiedRegisterReceiverFlag")
|
|
102
|
-
reactApplicationContext.registerReceiver(
|
|
103
|
-
serviceReadyBroadcastReceiver,
|
|
104
|
-
getServiceReadyReceiverFilter()
|
|
105
|
-
)
|
|
106
|
-
}
|
|
107
67
|
}
|
|
108
68
|
|
|
109
69
|
fun initialize() {
|
|
110
|
-
reactApplicationContext.addLifecycleEventListener(appStateListener)
|
|
111
|
-
|
|
112
|
-
tryToBindIfNeeded()
|
|
113
|
-
|
|
114
70
|
debugLog(TAG, "[module] initialize: Initializing module")
|
|
115
71
|
}
|
|
116
72
|
|
|
@@ -118,12 +74,8 @@ class CallingxModuleImpl(
|
|
|
118
74
|
debugLog(TAG, "[module] invalidate: Invalidating module")
|
|
119
75
|
|
|
120
76
|
CallRegistrationStore.clearAll()
|
|
121
|
-
unbindServiceSafely()
|
|
122
|
-
|
|
123
77
|
CallEventBus.unsubscribe(this)
|
|
124
78
|
|
|
125
|
-
reactApplicationContext.removeLifecycleEventListener(appStateListener)
|
|
126
|
-
reactApplicationContext.unregisterReceiver(serviceReadyBroadcastReceiver)
|
|
127
79
|
isModuleInitialized = false
|
|
128
80
|
}
|
|
129
81
|
|
|
@@ -372,7 +324,6 @@ class CallingxModuleImpl(
|
|
|
372
324
|
}
|
|
373
325
|
.also { reactApplicationContext.startService(it) }
|
|
374
326
|
|
|
375
|
-
isHeadlessTaskRegistered = false
|
|
376
327
|
promise.resolve(true)
|
|
377
328
|
} catch (e: Exception) {
|
|
378
329
|
Log.e(TAG, "[module] stopBackgroundTask: Failed to start service: ${e.message}", e)
|
|
@@ -382,7 +333,6 @@ class CallingxModuleImpl(
|
|
|
382
333
|
|
|
383
334
|
fun registerBackgroundTaskAvailable() {
|
|
384
335
|
debugLog(TAG, "[module] registerBackgroundTaskAvailable: Headless task registered")
|
|
385
|
-
isHeadlessTaskRegistered = true
|
|
386
336
|
}
|
|
387
337
|
|
|
388
338
|
|
|
@@ -423,54 +373,16 @@ class CallingxModuleImpl(
|
|
|
423
373
|
.also { ContextCompat.startForegroundService(reactApplicationContext, it) }
|
|
424
374
|
}
|
|
425
375
|
|
|
426
|
-
private fun startBackgroundTaskAutomatically(taskName: String, timeout: Long) {
|
|
427
|
-
if (!isHeadlessTaskRegistered) {
|
|
428
|
-
debugLog(
|
|
429
|
-
TAG,
|
|
430
|
-
"[module] startBackgroundTaskAutomatically: Headless task is not registered"
|
|
431
|
-
)
|
|
432
|
-
return
|
|
433
|
-
}
|
|
434
|
-
|
|
435
|
-
try {
|
|
436
|
-
Intent(reactApplicationContext, CallService::class.java)
|
|
437
|
-
.apply {
|
|
438
|
-
this.action = CallService.ACTION_START_BACKGROUND_TASK
|
|
439
|
-
putExtra(CallService.EXTRA_TASK_NAME, taskName)
|
|
440
|
-
putExtra(CallService.EXTRA_TASK_DATA, Bundle())
|
|
441
|
-
putExtra(CallService.EXTRA_TASK_TIMEOUT, timeout.toLong())
|
|
442
|
-
}
|
|
443
|
-
.also { reactApplicationContext.startService(it) }
|
|
444
|
-
} catch (e: Exception) {
|
|
445
|
-
Log.e(TAG, "[module] startBackgroundTaskAutomatically: Failed to start service: ${e.message}", e)
|
|
446
|
-
}
|
|
447
|
-
}
|
|
448
|
-
|
|
449
376
|
private fun executeServiceAction(callId: String, action: CallAction, promise: Promise) {
|
|
450
377
|
debugLog(TAG, "[module] executeServiceAction: Executing service action: $action")
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
} else {
|
|
457
|
-
promise.reject("ERROR", "Service reference lost")
|
|
378
|
+
Intent(reactApplicationContext, CallService::class.java)
|
|
379
|
+
.apply {
|
|
380
|
+
this.action = CallService.ACTION_PROCESS_ACTION
|
|
381
|
+
putExtra(CallService.EXTRA_CALL_ID, callId)
|
|
382
|
+
putExtra(CallService.EXTRA_ACTION, action)
|
|
458
383
|
}
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
debugLog(TAG, "executeServiceAction: Service binding, queueing action")
|
|
462
|
-
promise.reject(
|
|
463
|
-
"SERVICE_BINDING",
|
|
464
|
-
"Service is connecting, please try again in a moment"
|
|
465
|
-
)
|
|
466
|
-
}
|
|
467
|
-
BindingState.UNBOUND -> {
|
|
468
|
-
promise.reject(
|
|
469
|
-
"SERVICE_NOT_CONNECTED",
|
|
470
|
-
"Service not connected. Call may not be active."
|
|
471
|
-
)
|
|
472
|
-
}
|
|
473
|
-
}
|
|
384
|
+
.also { reactApplicationContext.startService(it) }
|
|
385
|
+
.also { promise.resolve(true) }
|
|
474
386
|
}
|
|
475
387
|
|
|
476
388
|
private fun sendJSEvent(eventName: String, params: WritableMap? = null) {
|
|
@@ -509,96 +421,11 @@ class CallingxModuleImpl(
|
|
|
509
421
|
}
|
|
510
422
|
}
|
|
511
423
|
|
|
512
|
-
private fun getServiceReadyReceiverFilter(): IntentFilter =
|
|
513
|
-
IntentFilter().apply {
|
|
514
|
-
addAction(SERVICE_READY_ACTION)
|
|
515
|
-
}
|
|
516
|
-
|
|
517
|
-
private fun bindToServiceIfNeeded() {
|
|
518
|
-
when (bindingState) {
|
|
519
|
-
BindingState.BOUND -> {
|
|
520
|
-
debugLog(TAG, "[module] bindToServiceIfNeeded: Already bound")
|
|
521
|
-
return
|
|
522
|
-
}
|
|
523
|
-
BindingState.BINDING -> {
|
|
524
|
-
debugLog(TAG, "[module] bindToServiceIfNeeded: Already binding")
|
|
525
|
-
return
|
|
526
|
-
}
|
|
527
|
-
BindingState.UNBOUND -> {
|
|
528
|
-
debugLog(TAG, "[module] bindToServiceIfNeeded: Attempting to bind")
|
|
529
|
-
val intent = Intent(reactApplicationContext, CallService::class.java)
|
|
530
|
-
try {
|
|
531
|
-
val success =
|
|
532
|
-
reactApplicationContext.bindService(
|
|
533
|
-
intent,
|
|
534
|
-
serviceConnection,
|
|
535
|
-
Context.BIND_AUTO_CREATE or Context.BIND_IMPORTANT
|
|
536
|
-
)
|
|
537
|
-
if (success) {
|
|
538
|
-
bindingState = BindingState.BINDING
|
|
539
|
-
debugLog(TAG, "[module] bindToServiceIfNeeded: Bind request successful")
|
|
540
|
-
} else {
|
|
541
|
-
Log.e(TAG, "[module] bindToServiceIfNeeded: Bind request failed")
|
|
542
|
-
bindingState = BindingState.UNBOUND
|
|
543
|
-
}
|
|
544
|
-
} catch (e: Exception) {
|
|
545
|
-
Log.e(TAG, "[module] bindToServiceIfNeeded: Exception during bind", e)
|
|
546
|
-
bindingState = BindingState.UNBOUND
|
|
547
|
-
}
|
|
548
|
-
}
|
|
549
|
-
}
|
|
550
|
-
}
|
|
551
|
-
|
|
552
|
-
private fun unbindServiceSafely() {
|
|
553
|
-
debugLog(TAG, "[module] unbindServiceSafely: Unbinding service")
|
|
554
|
-
if (bindingState == BindingState.BOUND || bindingState == BindingState.BINDING) {
|
|
555
|
-
try {
|
|
556
|
-
reactApplicationContext.unbindService(serviceConnection)
|
|
557
|
-
debugLog(TAG, "[module] unbindServiceSafely: Successfully unbound")
|
|
558
|
-
} catch (e: IllegalArgumentException) {
|
|
559
|
-
Log.w(
|
|
560
|
-
TAG,
|
|
561
|
-
"[module] unbindServiceSafely: Service not registered or already unbound"
|
|
562
|
-
)
|
|
563
|
-
} catch (e: Exception) {
|
|
564
|
-
Log.e(TAG, "[module] unbindServiceSafely: Error unbinding service", e)
|
|
565
|
-
} finally {
|
|
566
|
-
bindingState = BindingState.UNBOUND
|
|
567
|
-
callService = null
|
|
568
|
-
}
|
|
569
|
-
}
|
|
570
|
-
}
|
|
571
|
-
|
|
572
|
-
private fun tryToBindIfNeeded() {
|
|
573
|
-
val intent = Intent(reactApplicationContext, CallService::class.java)
|
|
574
|
-
try {
|
|
575
|
-
val success =
|
|
576
|
-
reactApplicationContext.bindService(
|
|
577
|
-
intent,
|
|
578
|
-
serviceConnection,
|
|
579
|
-
0 // No flags - only bind if service exists
|
|
580
|
-
)
|
|
581
|
-
if (success) {
|
|
582
|
-
bindingState = BindingState.BINDING
|
|
583
|
-
debugLog(TAG, "[module] checkForExistingService: Service exists, binding")
|
|
584
|
-
} else {
|
|
585
|
-
debugLog(TAG, "[module] checkForExistingService: No existing service")
|
|
586
|
-
}
|
|
587
|
-
} catch (e: Exception) {
|
|
588
|
-
Log.e(TAG, "[module] checkForExistingService: Error checking for service", e)
|
|
589
|
-
}
|
|
590
|
-
}
|
|
591
|
-
|
|
592
424
|
override fun onCallEvent(event: CallEvent) {
|
|
593
425
|
val action = event.action
|
|
594
426
|
val extras = event.extras
|
|
595
427
|
val callId = extras.getString(EXTRA_CALL_ID)
|
|
596
428
|
|
|
597
|
-
debugLog(
|
|
598
|
-
TAG,
|
|
599
|
-
"[module] onCallEvent: Received event: $action callId: $callId callService: ${callService != null}"
|
|
600
|
-
)
|
|
601
|
-
|
|
602
429
|
val params = Arguments.createMap()
|
|
603
430
|
if (callId != null) {
|
|
604
431
|
params.putString("callId", callId)
|
|
@@ -637,10 +464,6 @@ class CallingxModuleImpl(
|
|
|
637
464
|
if (callId != null) {
|
|
638
465
|
CallRegistrationStore.removeTrackedCall(callId)
|
|
639
466
|
}
|
|
640
|
-
// Only unbind when no more calls are tracked
|
|
641
|
-
if (!CallRegistrationStore.hasRegisteredCall()) {
|
|
642
|
-
unbindServiceSafely()
|
|
643
|
-
}
|
|
644
467
|
}
|
|
645
468
|
params.putString("cause", extras.getString(EXTRA_DISCONNECT_CAUSE))
|
|
646
469
|
sendJSEvent("endCall", params)
|
|
@@ -667,54 +490,4 @@ class CallingxModuleImpl(
|
|
|
667
490
|
}
|
|
668
491
|
}
|
|
669
492
|
}
|
|
670
|
-
|
|
671
|
-
private inner class ServiceReadyBroadcastReceiver : BroadcastReceiver() {
|
|
672
|
-
override fun onReceive(context: Context, intent: Intent) {
|
|
673
|
-
val action = intent.action ?: return
|
|
674
|
-
|
|
675
|
-
if (action == SERVICE_READY_ACTION) {
|
|
676
|
-
debugLog(
|
|
677
|
-
TAG,
|
|
678
|
-
"[module] ServiceReadyBroadcastReceiver: Service is ready, initiating binding, isHeadlessTaskRegistered: $isHeadlessTaskRegistered"
|
|
679
|
-
)
|
|
680
|
-
bindToServiceIfNeeded()
|
|
681
|
-
startBackgroundTaskAutomatically(HEADLESS_TASK_NAME, 0L)
|
|
682
|
-
}
|
|
683
|
-
}
|
|
684
|
-
}
|
|
685
|
-
|
|
686
|
-
private val serviceConnection =
|
|
687
|
-
object : ServiceConnection {
|
|
688
|
-
override fun onServiceConnected(name: ComponentName?, service: IBinder?) {
|
|
689
|
-
debugLog(TAG, "[module] onServiceConnected: Service connected")
|
|
690
|
-
val binder = service as? CallService.CallServiceBinder
|
|
691
|
-
callService = binder?.getService()
|
|
692
|
-
bindingState = BindingState.BOUND
|
|
693
|
-
}
|
|
694
|
-
|
|
695
|
-
override fun onServiceDisconnected(name: ComponentName?) {
|
|
696
|
-
debugLog(TAG, "onServiceDisconnected: Service disconnected unexpectedly")
|
|
697
|
-
callService = null
|
|
698
|
-
bindingState = BindingState.UNBOUND
|
|
699
|
-
}
|
|
700
|
-
|
|
701
|
-
override fun onBindingDied(name: ComponentName?) {
|
|
702
|
-
Log.e(TAG, "[module] onBindingDied: Service binding died")
|
|
703
|
-
callService = null
|
|
704
|
-
bindingState = BindingState.UNBOUND
|
|
705
|
-
|
|
706
|
-
// Must unbind to clean up the dead binding
|
|
707
|
-
try {
|
|
708
|
-
reactApplicationContext.unbindService(this)
|
|
709
|
-
} catch (e: Exception) {
|
|
710
|
-
Log.w(TAG, "[module] onBindingDied: Error unbinding dead connection", e)
|
|
711
|
-
}
|
|
712
|
-
}
|
|
713
|
-
|
|
714
|
-
override fun onNullBinding(name: ComponentName?) {
|
|
715
|
-
Log.e(TAG, "[module] onNullBinding: Service returned null binding")
|
|
716
|
-
bindingState = BindingState.UNBOUND
|
|
717
|
-
callService = null
|
|
718
|
-
}
|
|
719
|
-
}
|
|
720
493
|
}
|
package/android/src/main/java/io/getstream/rn/callingx/notifications/CallNotificationManager.kt
CHANGED
|
@@ -86,7 +86,6 @@ class CallNotificationManager(
|
|
|
86
86
|
val isIncoming: Boolean,
|
|
87
87
|
val optimisticState: OptimisticState,
|
|
88
88
|
val displayTitle: String?,
|
|
89
|
-
val displaySubtitle: String?,
|
|
90
89
|
val displayName: CharSequence,
|
|
91
90
|
val address: Uri
|
|
92
91
|
)
|
|
@@ -101,7 +100,6 @@ class CallNotificationManager(
|
|
|
101
100
|
isIncoming = isIncoming(),
|
|
102
101
|
optimisticState = notificationsState[callId]?.optimisticState ?: OptimisticState.NONE,
|
|
103
102
|
displayTitle = displayOptions?.getString(CallService.EXTRA_DISPLAY_TITLE),
|
|
104
|
-
displaySubtitle = displayOptions?.getString(CallService.EXTRA_DISPLAY_SUBTITLE),
|
|
105
103
|
displayName = callAttributes.displayName,
|
|
106
104
|
address = callAttributes.address
|
|
107
105
|
)
|
|
@@ -192,14 +190,6 @@ class CallNotificationManager(
|
|
|
192
190
|
else -> null
|
|
193
191
|
}
|
|
194
192
|
if (text != null) builder.setContentText(text)
|
|
195
|
-
} else {
|
|
196
|
-
// If the call is active, we need to set the notification text
|
|
197
|
-
// based on the call display options (defined on js side)
|
|
198
|
-
call.displayOptions?.let {
|
|
199
|
-
if (it.containsKey(CallService.EXTRA_DISPLAY_SUBTITLE)) {
|
|
200
|
-
builder.setContentText(it.getString(CallService.EXTRA_DISPLAY_SUBTITLE))
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
193
|
}
|
|
204
194
|
|
|
205
195
|
return builder.build()
|
|
@@ -4,14 +4,13 @@ import { Platform } from 'react-native';
|
|
|
4
4
|
import NativeCallingModule from "./spec/NativeCallingx.js";
|
|
5
5
|
import { HEADLESS_TASK_NAME, registerHeadlessTask, setHeadlessTask } from "./utils/headlessTask.js";
|
|
6
6
|
import { EventManager } from "./EventManager.js";
|
|
7
|
-
import { androidEndCallReasonMap, defaultAndroidOptions, defaultiOSOptions,
|
|
7
|
+
import { androidEndCallReasonMap, defaultAndroidOptions, defaultiOSOptions, iosEndCallReasonMap } from "./utils/constants.js";
|
|
8
8
|
import { isVoipEvent } from "./utils/utils.js";
|
|
9
9
|
class CallingxModule {
|
|
10
10
|
_isSetup = false;
|
|
11
11
|
_isOngoingCallsEnabled = false;
|
|
12
12
|
_isHeadlessTaskRegistered = false;
|
|
13
|
-
titleTransformer =
|
|
14
|
-
subtitleTransformer = undefined;
|
|
13
|
+
titleTransformer = memberName => memberName;
|
|
15
14
|
eventManager = new EventManager();
|
|
16
15
|
voipEventManager = new EventManager();
|
|
17
16
|
get canPostNotifications() {
|
|
@@ -41,13 +40,11 @@ class CallingxModule {
|
|
|
41
40
|
if (Platform.OS === 'android') {
|
|
42
41
|
const {
|
|
43
42
|
titleTransformer,
|
|
44
|
-
subtitleTransformer,
|
|
45
43
|
incomingChannel,
|
|
46
44
|
ongoingChannel,
|
|
47
45
|
notificationTexts
|
|
48
46
|
} = options.android ?? {};
|
|
49
|
-
this.titleTransformer = titleTransformer ??
|
|
50
|
-
this.subtitleTransformer = subtitleTransformer;
|
|
47
|
+
this.titleTransformer = titleTransformer ?? (memberName => memberName);
|
|
51
48
|
const notificationsConfig = {
|
|
52
49
|
incomingChannel: {
|
|
53
50
|
...defaultAndroidOptions.incomingChannel,
|
|
@@ -83,8 +80,7 @@ class CallingxModule {
|
|
|
83
80
|
}
|
|
84
81
|
displayIncomingCall(callId, phoneNumber, callerName, hasVideo) {
|
|
85
82
|
const displayOptions = {
|
|
86
|
-
displayTitle: this.titleTransformer(callerName, true)
|
|
87
|
-
displaySubtitle: this.subtitleTransformer?.(phoneNumber, true)
|
|
83
|
+
displayTitle: this.titleTransformer(callerName, true)
|
|
88
84
|
};
|
|
89
85
|
return NativeCallingModule.displayIncomingCall(callId, phoneNumber, callerName, hasVideo, displayOptions);
|
|
90
86
|
}
|
|
@@ -95,16 +91,13 @@ class CallingxModule {
|
|
|
95
91
|
//registers call with the telecom stack
|
|
96
92
|
startCall(callId, phoneNumber, callerName, hasVideo) {
|
|
97
93
|
const displayOptions = {
|
|
98
|
-
displayTitle: this.titleTransformer(callerName, false)
|
|
99
|
-
displaySubtitle: this.subtitleTransformer?.(phoneNumber, false)
|
|
94
|
+
displayTitle: this.titleTransformer(callerName, false)
|
|
100
95
|
};
|
|
101
96
|
return NativeCallingModule.startCall(callId, phoneNumber, callerName, hasVideo, displayOptions);
|
|
102
97
|
}
|
|
103
|
-
updateDisplay(callId, phoneNumber, callerName) {
|
|
98
|
+
updateDisplay(callId, phoneNumber, callerName, incoming) {
|
|
104
99
|
const displayOptions = {
|
|
105
|
-
displayTitle: this.titleTransformer(callerName,
|
|
106
|
-
//adjust incoming or outgoing call
|
|
107
|
-
displaySubtitle: this.subtitleTransformer?.(phoneNumber, false) //adjust incoming or outgoing call
|
|
100
|
+
displayTitle: this.titleTransformer(callerName, incoming)
|
|
108
101
|
};
|
|
109
102
|
return NativeCallingModule.updateDisplay(callId, phoneNumber, callerName, displayOptions);
|
|
110
103
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","NativeCallingModule","HEADLESS_TASK_NAME","registerHeadlessTask","setHeadlessTask","EventManager","androidEndCallReasonMap","defaultAndroidOptions","defaultiOSOptions","
|
|
1
|
+
{"version":3,"names":["Platform","NativeCallingModule","HEADLESS_TASK_NAME","registerHeadlessTask","setHeadlessTask","EventManager","androidEndCallReasonMap","defaultAndroidOptions","defaultiOSOptions","iosEndCallReasonMap","isVoipEvent","CallingxModule","_isSetup","_isOngoingCallsEnabled","_isHeadlessTaskRegistered","titleTransformer","memberName","eventManager","voipEventManager","canPostNotifications","OS","isOngoingCallsEnabled","isSetup","setup","options","enableOngoingCalls","setShouldRejectCallWhenBusy","shouldRejectCallWhenBusy","setupiOS","ios","incomingChannel","ongoingChannel","notificationTexts","android","notificationsConfig","id","Error","setupAndroid","shouldReject","getInitialEvents","getInitialVoipEvents","setCurrentCallActive","callId","displayIncomingCall","phoneNumber","callerName","hasVideo","displayOptions","displayTitle","answerIncomingCall","startCall","updateDisplay","incoming","endCallWithReason","reason","reasons","endCall","isCallTracked","hasRegisteredCall","setMutedCall","isMuted","setOnHoldCall","isOnHold","registerBackgroundTask","taskProvider","stopTask","stopBackgroundTask","taskData","registerBackgroundTaskAvailable","startBackgroundTask","fulfillAnswerCallAction","didFail","fulfillEndCallAction","registerVoipToken","stopService","addEventListener","eventName","callback","manager","addListener","remove","removeListener","log","message","level","module"],"sourceRoot":"../../src","sources":["CallingxModule.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TurboModuleRegistry","NativeModules","isTurboModuleEnabled","CallingxModule","getEnforcing","Callingx"],"sourceRoot":"../../../src","sources":["spec/NativeCallingx.ts"],"mappings":";;AAAA,SACEA,mBAAmB,EACnBC,aAAa,QAER,cAAc;;AAErB;;AAEA,SAASC,oBAAoB,QAAQ,mBAAgB;
|
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","NativeModules","isTurboModuleEnabled","CallingxModule","getEnforcing","Callingx"],"sourceRoot":"../../../src","sources":["spec/NativeCallingx.ts"],"mappings":";;AAAA,SACEA,mBAAmB,EACnBC,aAAa,QAER,cAAc;;AAErB;;AAEA,SAASC,oBAAoB,QAAQ,mBAAgB;AAgLrD,MAAMC,cAAoB,GAAGD,oBAAoB,GAC7CF,mBAAmB,CAACI,YAAY,CAAO,UAAU,CAAC,GACjDH,aAAa,CAACI,QAAiB;AAEpC,eAAeF,cAAc","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["defaultiOSOptions","supportsVideo","maximumCallsPerCallGroup","maximumCallGroups","handleType","sound","imageName","callsHistory","displayCallTimeout","defaultAndroidOptions","incomingChannel","id","name","vibration","ongoingChannel","iosEndCallReasonMap","local","remote","rejected","busy","answeredElsewhere","missed","error","canceled","restricted","unknown","androidEndCallReasonMap"],"sourceRoot":"../../../src","sources":["utils/constants.ts"],"mappings":";;AAOA,OAAO,MAAMA,iBAA+C,GAAG;EAC7DC,aAAa,EAAE,IAAI;EACnBC,wBAAwB,EAAE,CAAC;EAC3BC,iBAAiB,EAAE,CAAC;EACpBC,UAAU,EAAE,SAAS;EACrBC,KAAK,EAAE,EAAE;EACTC,SAAS,EAAE,EAAE;EACbC,YAAY,EAAE,KAAK;EACnBC,kBAAkB,EAAE,KAAK,CAAE;AAC7B,CAAC;AAED,OAAO,MAAMC,qBAGZ,GAAG;EACFC,eAAe,EAAE;IACfC,EAAE,EAAE,+BAA+B;IACnCC,IAAI,EAAE,gBAAgB;IACtBP,KAAK,EAAE,EAAE;IACTQ,SAAS,EAAE;EACb,CAAC;EACDC,cAAc,EAAE;IACdH,EAAE,EAAE,8BAA8B;IAClCC,IAAI,EAAE;EACR;AACF,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMG,mBAAkD,GAAG;EAChEC,KAAK,EAAE,CAAC,CAAC;EAAE;EACXC,MAAM,EAAE,CAAC;EAAE;EACXC,QAAQ,EAAE,CAAC;EAAE;EACbC,IAAI,EAAE,CAAC;EAAE;EACTC,iBAAiB,EAAE,CAAC;EAAE;EACtBC,MAAM,EAAE,CAAC;EAAE;EACXC,KAAK,EAAE,CAAC;EAAE;EACVC,QAAQ,EAAE,CAAC;EAAE;EACbC,UAAU,EAAE,CAAC;EAAE;EACfC,OAAO,EAAE,CAAC,CAAE;AACd,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,uBAAsD,GAAG;EACpEV,KAAK,EAAE,CAAC;EAAE;EACVC,MAAM,EAAE,CAAC;EAAE;EACXC,QAAQ,EAAE,CAAC;EAAE;EACbC,IAAI,EAAE,CAAC;EAAE;EACTC,iBAAiB,EAAE,CAAC;EAAE;EACtBC,MAAM,EAAE,CAAC;EAAE;EACXC,KAAK,EAAE,CAAC;EAAE;EACVC,QAAQ,EAAE,CAAC;EAAE;EACbC,UAAU,EAAE,CAAC;EAAE;EACfC,OAAO,EAAE,CAAC,CAAE;AACd,CAAC","ignoreList":[]}
|
|
@@ -6,7 +6,6 @@ declare class CallingxModule implements ICallingxModule {
|
|
|
6
6
|
private _isOngoingCallsEnabled;
|
|
7
7
|
private _isHeadlessTaskRegistered;
|
|
8
8
|
private titleTransformer;
|
|
9
|
-
private subtitleTransformer;
|
|
10
9
|
private eventManager;
|
|
11
10
|
private voipEventManager;
|
|
12
11
|
get canPostNotifications(): boolean;
|
|
@@ -20,7 +19,7 @@ declare class CallingxModule implements ICallingxModule {
|
|
|
20
19
|
displayIncomingCall(callId: string, phoneNumber: string, callerName: string, hasVideo: boolean): Promise<void>;
|
|
21
20
|
answerIncomingCall(callId: string): Promise<void>;
|
|
22
21
|
startCall(callId: string, phoneNumber: string, callerName: string, hasVideo: boolean): Promise<void>;
|
|
23
|
-
updateDisplay(callId: string, phoneNumber: string, callerName: string): Promise<void>;
|
|
22
|
+
updateDisplay(callId: string, phoneNumber: string, callerName: string, incoming: boolean): Promise<void>;
|
|
24
23
|
endCallWithReason(callId: string, reason: EndCallReason): Promise<void>;
|
|
25
24
|
isCallTracked(callId: string): boolean;
|
|
26
25
|
hasRegisteredCall(): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CallingxModule.d.ts","sourceRoot":"","sources":["../../../src/CallingxModule.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EACL,KAAK,eAAe,
|
|
1
|
+
{"version":3,"file":"CallingxModule.d.ts","sourceRoot":"","sources":["../../../src/CallingxModule.ts"],"names":[],"mappings":"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"}
|
|
@@ -70,16 +70,13 @@ export interface Spec extends TurboModule {
|
|
|
70
70
|
setCurrentCallActive(callId: string): Promise<void>;
|
|
71
71
|
displayIncomingCall(callId: string, phoneNumber: string, callerName: string, hasVideo: boolean, displayOptions?: {
|
|
72
72
|
displayTitle?: string;
|
|
73
|
-
displaySubtitle?: string;
|
|
74
73
|
}): Promise<void>;
|
|
75
74
|
answerIncomingCall(callId: string): Promise<void>;
|
|
76
75
|
startCall(callId: string, phoneNumber: string, callerName: string, hasVideo: boolean, displayOptions?: {
|
|
77
76
|
displayTitle?: string;
|
|
78
|
-
displaySubtitle?: string;
|
|
79
77
|
}): Promise<void>;
|
|
80
78
|
updateDisplay(callId: string, phoneNumber: string, callerName: string, displayOptions?: {
|
|
81
79
|
displayTitle?: string;
|
|
82
|
-
displaySubtitle?: string;
|
|
83
80
|
}): Promise<void>;
|
|
84
81
|
isCallTracked(callId: string): boolean;
|
|
85
82
|
hasRegisteredCall(): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeCallingx.d.ts","sourceRoot":"","sources":["../../../../src/spec/NativeCallingx.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,cAAc,CAAC;AAGtB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AAG9E,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,QAAQ,CAAC,OAAO,EAAE;QAChB,aAAa,EAAE,OAAO,CAAC;QACvB,wBAAwB,EAAE,MAAM,CAAC;QACjC,iBAAiB,EAAE,MAAM,CAAC;QAC1B,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,YAAY,EAAE,OAAO,CAAC;QACtB,kBAAkB,EAAE,MAAM,CAAC;KAC5B,GAAG,IAAI,CAAC;IAET,YAAY,CAAC,OAAO,EAAE;QACpB,eAAe,EAAE;YACf,EAAE,EAAE,MAAM,CAAC;YACX,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,EAAE,MAAM,CAAC;YACd,SAAS,EAAE,OAAO,CAAC;SACpB,CAAC;QACF,cAAc,EAAE;YACd,EAAE,EAAE,MAAM,CAAC;YACX,IAAI,EAAE,MAAM,CAAC;SACd,CAAC;QACF,iBAAiB,CAAC,EAAE;YAClB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,SAAS,CAAC,EAAE,MAAM,CAAC;SACpB,CAAC;KACH,GAAG,IAAI,CAAC;IAET,2BAA2B,CAAC,YAAY,EAAE,OAAO,GAAG,IAAI,CAAC;IAEzD,oBAAoB,IAAI,OAAO,CAAC;IAEhC,gBAAgB,IAAI,KAAK,CAAC;QACxB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE;YACN,MAAM,EAAE,MAAM,CAAC;YACf,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,KAAK,CAAC,EAAE,OAAO,CAAC;YAChB,IAAI,CAAC,EAAE,OAAO,CAAC;YACf,MAAM,CAAC,EAAE,MAAM,CAAC;SACjB,CAAC;KACH,CAAC,CAAC;IAEH,oBAAoB,IAAI,KAAK,CAAC;QAC5B,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE;YACN,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,GAAG,CAAC,EAAE;gBACJ,WAAW,EAAE,MAAM,CAAC;gBACpB,iBAAiB,EAAE,MAAM,CAAC;gBAC1B,KAAK,EAAE;oBACL,KAAK,EAAE,MAAM,CAAC;iBACf,CAAC;gBACF,QAAQ,EAAE,MAAM,CAAC;gBACjB,KAAK,EAAE,MAAM,CAAC;aACf,CAAC;YACF,MAAM,CAAC,EAAE;gBACP,MAAM,EAAE,MAAM,CAAC;gBACf,aAAa,EAAE,MAAM,CAAC;gBACtB,IAAI,EAAE,MAAM,CAAC;gBACb,KAAK,EAAE,MAAM,CAAC;gBACd,iBAAiB,EAAE,MAAM,CAAC;gBAC1B,uBAAuB,EAAE,MAAM,CAAC;gBAChC,OAAO,EAAE,MAAM,CAAC;gBAChB,IAAI,EAAE,MAAM,CAAC;gBACb,WAAW,EAAE,MAAM,CAAC;gBACpB,QAAQ,EAAE,MAAM,CAAC;gBACjB,KAAK,EAAE,MAAM,CAAC;aACf,CAAC;SACH,CAAC;KACH,CAAC,CAAC;IAEH,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpD,mBAAmB,CACjB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,OAAO,EACjB,cAAc,CAAC,EAAE;QACf,YAAY,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"NativeCallingx.d.ts","sourceRoot":"","sources":["../../../../src/spec/NativeCallingx.ts"],"names":[],"mappings":"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"}
|
|
@@ -52,7 +52,7 @@ export interface ICallingxModule {
|
|
|
52
52
|
* @returns The promise.
|
|
53
53
|
*/
|
|
54
54
|
setCurrentCallActive(callId: string): Promise<void>;
|
|
55
|
-
updateDisplay(callId: string, phoneNumber: string, callerName: string): Promise<void>;
|
|
55
|
+
updateDisplay(callId: string, phoneNumber: string, callerName: string, incoming: boolean): Promise<void>;
|
|
56
56
|
/**
|
|
57
57
|
* Check if the call is tracked in the native calling module.
|
|
58
58
|
* @param callId - The call id.
|
|
@@ -184,10 +184,8 @@ export type InternalAndroidOptions = {
|
|
|
184
184
|
};
|
|
185
185
|
};
|
|
186
186
|
type AndroidOptions = InternalAndroidOptions & NotificationTransformers;
|
|
187
|
-
export type TextTransformer = (text: string, incoming: boolean) => string;
|
|
188
187
|
export type NotificationTransformers = {
|
|
189
|
-
titleTransformer?:
|
|
190
|
-
subtitleTransformer?: TextTransformer;
|
|
188
|
+
titleTransformer?: (memberName: string, incoming: boolean) => string;
|
|
191
189
|
};
|
|
192
190
|
export type CallingExpOptions = {
|
|
193
191
|
ios?: iOSOptions;
|
|
@@ -205,7 +203,6 @@ export type CallingExpOptions = {
|
|
|
205
203
|
};
|
|
206
204
|
export type InfoDisplayOptions = {
|
|
207
205
|
displayTitle?: string;
|
|
208
|
-
displaySubtitle?: string;
|
|
209
206
|
};
|
|
210
207
|
export type EventData = {
|
|
211
208
|
eventName: EventName;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,WAAW,eAAe;IAC9B;;;;;;;;OAQG;IACH,IAAI,oBAAoB,IAAI,OAAO,CAAC;IACpC,IAAI,qBAAqB,IAAI,OAAO,CAAC;IACrC,IAAI,OAAO,IAAI,OAAO,CAAC;IAEvB;;;;;;;OAOG;IACH,KAAK,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACxC;;;;OAIG;IACH,2BAA2B,CAAC,YAAY,EAAE,OAAO,GAAG,IAAI,CAAC;IACzD;;;;;OAKG;IACH,gBAAgB,IAAI,SAAS,EAAE,CAAC;IAEhC;;;;;OAKG;IACH,oBAAoB,IAAI,aAAa,EAAE,CAAC;IAExC,mBAAmB,CACjB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAElD,SAAS,CACP,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;OAKG;IACH,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpD,aAAa,CACX,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import type { InternalAndroidOptions, InternalIOSOptions, EndCallReason
|
|
1
|
+
import type { InternalAndroidOptions, InternalIOSOptions, EndCallReason } from '../types';
|
|
2
2
|
import type { DeepRequired } from './types';
|
|
3
|
-
export declare const defaultTextTransformer: TextTransformer;
|
|
4
3
|
export declare const defaultiOSOptions: Required<InternalIOSOptions>;
|
|
5
4
|
export declare const defaultAndroidOptions: Omit<DeepRequired<InternalAndroidOptions>, 'notificationTexts'>;
|
|
6
5
|
export declare const iosEndCallReasonMap: Record<EndCallReason, number>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,kBAAkB,EAClB,aAAa,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,kBAAkB,EAClB,aAAa,EACd,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,kBAAkB,CAS1D,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,IAAI,CACtC,YAAY,CAAC,sBAAsB,CAAC,EACpC,mBAAmB,CAYpB,CAAC;AAKF,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAW7D,CAAC;AAeF,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAWjE,CAAC"}
|
package/package.json
CHANGED
package/src/CallingxModule.ts
CHANGED
|
@@ -11,7 +11,6 @@ import type { EventListener } from './EventManager';
|
|
|
11
11
|
import {
|
|
12
12
|
type ICallingxModule,
|
|
13
13
|
type InfoDisplayOptions,
|
|
14
|
-
type TextTransformer,
|
|
15
14
|
type EndCallReason,
|
|
16
15
|
type EventData,
|
|
17
16
|
type EventName,
|
|
@@ -25,7 +24,6 @@ import {
|
|
|
25
24
|
androidEndCallReasonMap,
|
|
26
25
|
defaultAndroidOptions,
|
|
27
26
|
defaultiOSOptions,
|
|
28
|
-
defaultTextTransformer,
|
|
29
27
|
iosEndCallReasonMap,
|
|
30
28
|
} from './utils/constants';
|
|
31
29
|
import { isVoipEvent } from './utils/utils';
|
|
@@ -35,8 +33,8 @@ class CallingxModule implements ICallingxModule {
|
|
|
35
33
|
private _isOngoingCallsEnabled = false;
|
|
36
34
|
private _isHeadlessTaskRegistered = false;
|
|
37
35
|
|
|
38
|
-
private titleTransformer:
|
|
39
|
-
|
|
36
|
+
private titleTransformer: (memberName: string, incoming: boolean) => string =
|
|
37
|
+
(memberName: string) => memberName;
|
|
40
38
|
|
|
41
39
|
private eventManager: EventManager<EventName, EventParams> =
|
|
42
40
|
new EventManager();
|
|
@@ -74,14 +72,13 @@ class CallingxModule implements ICallingxModule {
|
|
|
74
72
|
if (Platform.OS === 'android') {
|
|
75
73
|
const {
|
|
76
74
|
titleTransformer,
|
|
77
|
-
subtitleTransformer,
|
|
78
75
|
incomingChannel,
|
|
79
76
|
ongoingChannel,
|
|
80
77
|
notificationTexts,
|
|
81
78
|
} = options.android ?? {};
|
|
82
79
|
|
|
83
|
-
this.titleTransformer =
|
|
84
|
-
|
|
80
|
+
this.titleTransformer =
|
|
81
|
+
titleTransformer ?? ((memberName: string) => memberName);
|
|
85
82
|
|
|
86
83
|
const notificationsConfig = {
|
|
87
84
|
incomingChannel: {
|
|
@@ -135,7 +132,6 @@ class CallingxModule implements ICallingxModule {
|
|
|
135
132
|
): Promise<void> {
|
|
136
133
|
const displayOptions: InfoDisplayOptions = {
|
|
137
134
|
displayTitle: this.titleTransformer(callerName, true),
|
|
138
|
-
displaySubtitle: this.subtitleTransformer?.(phoneNumber, true),
|
|
139
135
|
};
|
|
140
136
|
return NativeCallingModule.displayIncomingCall(
|
|
141
137
|
callId,
|
|
@@ -159,7 +155,6 @@ class CallingxModule implements ICallingxModule {
|
|
|
159
155
|
): Promise<void> {
|
|
160
156
|
const displayOptions: InfoDisplayOptions = {
|
|
161
157
|
displayTitle: this.titleTransformer(callerName, false),
|
|
162
|
-
displaySubtitle: this.subtitleTransformer?.(phoneNumber, false),
|
|
163
158
|
};
|
|
164
159
|
return NativeCallingModule.startCall(
|
|
165
160
|
callId,
|
|
@@ -174,10 +169,10 @@ class CallingxModule implements ICallingxModule {
|
|
|
174
169
|
callId: string,
|
|
175
170
|
phoneNumber: string,
|
|
176
171
|
callerName: string,
|
|
172
|
+
incoming: boolean,
|
|
177
173
|
): Promise<void> {
|
|
178
174
|
const displayOptions: InfoDisplayOptions = {
|
|
179
|
-
displayTitle: this.titleTransformer(callerName,
|
|
180
|
-
displaySubtitle: this.subtitleTransformer?.(phoneNumber, false), //adjust incoming or outgoing call
|
|
175
|
+
displayTitle: this.titleTransformer(callerName, incoming),
|
|
181
176
|
};
|
|
182
177
|
return NativeCallingModule.updateDisplay(
|
|
183
178
|
callId,
|
|
@@ -90,7 +90,6 @@ export interface Spec extends TurboModule {
|
|
|
90
90
|
hasVideo: boolean,
|
|
91
91
|
displayOptions?: {
|
|
92
92
|
displayTitle?: string;
|
|
93
|
-
displaySubtitle?: string;
|
|
94
93
|
},
|
|
95
94
|
): Promise<void>;
|
|
96
95
|
|
|
@@ -104,7 +103,6 @@ export interface Spec extends TurboModule {
|
|
|
104
103
|
hasVideo: boolean,
|
|
105
104
|
displayOptions?: {
|
|
106
105
|
displayTitle?: string;
|
|
107
|
-
displaySubtitle?: string;
|
|
108
106
|
},
|
|
109
107
|
): Promise<void>;
|
|
110
108
|
|
|
@@ -114,7 +112,6 @@ export interface Spec extends TurboModule {
|
|
|
114
112
|
callerName: string,
|
|
115
113
|
displayOptions?: {
|
|
116
114
|
displayTitle?: string;
|
|
117
|
-
displaySubtitle?: string;
|
|
118
115
|
},
|
|
119
116
|
): Promise<void>;
|
|
120
117
|
|
package/src/types.ts
CHANGED
|
@@ -73,6 +73,7 @@ export interface ICallingxModule {
|
|
|
73
73
|
callId: string,
|
|
74
74
|
phoneNumber: string,
|
|
75
75
|
callerName: string,
|
|
76
|
+
incoming: boolean,
|
|
76
77
|
): Promise<void>;
|
|
77
78
|
|
|
78
79
|
/**
|
|
@@ -232,10 +233,8 @@ export type InternalAndroidOptions = {
|
|
|
232
233
|
};
|
|
233
234
|
type AndroidOptions = InternalAndroidOptions & NotificationTransformers;
|
|
234
235
|
|
|
235
|
-
export type TextTransformer = (text: string, incoming: boolean) => string;
|
|
236
236
|
export type NotificationTransformers = {
|
|
237
|
-
titleTransformer?:
|
|
238
|
-
subtitleTransformer?: TextTransformer;
|
|
237
|
+
titleTransformer?: (memberName: string, incoming: boolean) => string;
|
|
239
238
|
};
|
|
240
239
|
|
|
241
240
|
export type CallingExpOptions = {
|
|
@@ -255,7 +254,6 @@ export type CallingExpOptions = {
|
|
|
255
254
|
|
|
256
255
|
export type InfoDisplayOptions = {
|
|
257
256
|
displayTitle?: string;
|
|
258
|
-
displaySubtitle?: string;
|
|
259
257
|
};
|
|
260
258
|
|
|
261
259
|
export type EventData = {
|
package/src/utils/constants.ts
CHANGED
|
@@ -2,12 +2,9 @@ import type {
|
|
|
2
2
|
InternalAndroidOptions,
|
|
3
3
|
InternalIOSOptions,
|
|
4
4
|
EndCallReason,
|
|
5
|
-
TextTransformer,
|
|
6
5
|
} from '../types';
|
|
7
6
|
import type { DeepRequired } from './types';
|
|
8
7
|
|
|
9
|
-
export const defaultTextTransformer: TextTransformer = (text: string) => text;
|
|
10
|
-
|
|
11
8
|
export const defaultiOSOptions: Required<InternalIOSOptions> = {
|
|
12
9
|
supportsVideo: true,
|
|
13
10
|
maximumCallsPerCallGroup: 1,
|