@qusaieilouti99/call-manager 0.1.30 → 0.1.31
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/CallManager.podspec +11 -2
- package/README.md +6 -2
- package/android/CMakeLists.txt +24 -0
- package/android/build.gradle +52 -6
- package/android/src/main/AndroidManifest.xml +34 -34
- package/android/src/main/cpp/cpp-adapter.cpp +6 -0
- package/android/src/main/java/com/{qusaieilouti99 → margelo/nitro/qusaieilouti99}/callmanager/CallActivity.kt +1 -2
- package/android/src/main/java/com/{qusaieilouti99 → margelo/nitro/qusaieilouti99}/callmanager/CallEngine.kt +1 -1
- package/android/src/main/java/com/{qusaieilouti99 → margelo/nitro/qusaieilouti99}/callmanager/CallForegroundService.kt +1 -1
- package/android/src/main/java/com/margelo/nitro/qusaieilouti99/callmanager/CallManager.kt +46 -0
- package/android/src/main/java/com/margelo/nitro/qusaieilouti99/callmanager/CallManagerPackage.kt +22 -0
- package/android/src/main/java/com/{qusaieilouti99 → margelo/nitro/qusaieilouti99}/callmanager/CallNotificationActionReceiver.kt +1 -1
- package/android/src/main/java/com/{qusaieilouti99 → margelo/nitro/qusaieilouti99}/callmanager/MyConnection.kt +1 -1
- package/android/src/main/java/com/{qusaieilouti99 → margelo/nitro/qusaieilouti99}/callmanager/MyConnectionService.kt +1 -1
- package/ios/CallManager.swift +5 -0
- package/lib/module/CallEventType.js +18 -0
- package/lib/module/CallEventType.js.map +1 -0
- package/lib/module/CallManager.nitro.js +4 -0
- package/lib/module/CallManager.nitro.js.map +1 -0
- package/lib/module/index.js +14 -11
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/CallEventType.d.ts +14 -0
- package/lib/typescript/src/CallEventType.d.ts.map +1 -0
- package/lib/typescript/src/CallManager.nitro.d.ts +14 -0
- package/lib/typescript/src/CallManager.nitro.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +3 -6
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/nitro.json +17 -0
- package/nitrogen/generated/android/c++/JCallEventType.hpp +86 -0
- package/nitrogen/generated/android/c++/JFunc_void.hpp +74 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__string.hpp +75 -0
- package/nitrogen/generated/android/c++/JHybridCallManagerSpec.cpp +88 -0
- package/nitrogen/generated/android/c++/JHybridCallManagerSpec.hpp +67 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/qusaieilouti99/callmanager/CallEventType.kt +34 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/qusaieilouti99/callmanager/Func_void.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/qusaieilouti99/callmanager/Func_void_std__string.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/qusaieilouti99/callmanager/HybridCallManagerSpec.kt +77 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/qusaieilouti99/callmanager/qusaieilouti99_callmanagerOnLoad.kt +35 -0
- package/nitrogen/generated/android/qusaieilouti99_callmanager+autolinking.cmake +78 -0
- package/nitrogen/generated/android/qusaieilouti99_callmanager+autolinking.gradle +27 -0
- package/nitrogen/generated/android/qusaieilouti99_callmanagerOnLoad.cpp +50 -0
- package/nitrogen/generated/android/qusaieilouti99_callmanagerOnLoad.hpp +25 -0
- package/nitrogen/generated/ios/CallManager+autolinking.rb +60 -0
- package/nitrogen/generated/ios/CallManager-Swift-Cxx-Bridge.cpp +48 -0
- package/nitrogen/generated/ios/CallManager-Swift-Cxx-Bridge.hpp +127 -0
- package/nitrogen/generated/ios/CallManager-Swift-Cxx-Umbrella.hpp +49 -0
- package/nitrogen/generated/ios/CallManagerAutolinking.mm +33 -0
- package/nitrogen/generated/ios/CallManagerAutolinking.swift +25 -0
- package/nitrogen/generated/ios/c++/HybridCallManagerSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridCallManagerSpecSwift.hpp +107 -0
- package/nitrogen/generated/ios/swift/CallEventType.swift +76 -0
- package/nitrogen/generated/ios/swift/Func_void.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_std__string.swift +46 -0
- package/nitrogen/generated/ios/swift/HybridCallManagerSpec.swift +53 -0
- package/nitrogen/generated/ios/swift/HybridCallManagerSpec_cxx.swift +184 -0
- package/nitrogen/generated/shared/c++/CallEventType.hpp +73 -0
- package/nitrogen/generated/shared/c++/HybridCallManagerSpec.cpp +26 -0
- package/nitrogen/generated/shared/c++/HybridCallManagerSpec.hpp +71 -0
- package/package.json +19 -15
- package/src/CallEventType.ts +14 -0
- package/src/CallManager.nitro.ts +19 -0
- package/src/index.tsx +22 -15
- package/android/src/main/java/com/qusaieilouti99/callmanager/CallEventType.kt +0 -15
- package/android/src/main/java/com/qusaieilouti99/callmanager/CallManagerModule.kt +0 -81
- package/android/src/main/java/com/qusaieilouti99/callmanager/CallManagerPackage.kt +0 -33
- package/ios/CallManager.h +0 -5
- package/ios/CallManager.mm +0 -18
- package/lib/module/NativeCallManager.js +0 -20
- package/lib/module/NativeCallManager.js.map +0 -1
- package/lib/typescript/src/NativeCallManager.d.ts +0 -28
- package/lib/typescript/src/NativeCallManager.d.ts.map +0 -1
- package/src/NativeCallManager.ts +0 -32
package/CallManager.podspec
CHANGED
|
@@ -13,9 +13,18 @@ Pod::Spec.new do |s|
|
|
|
13
13
|
s.platforms = { :ios => min_ios_version_supported }
|
|
14
14
|
s.source = { :git => "https://github.com/qusaieilouti99/call-manager.git", :tag => "#{s.version}" }
|
|
15
15
|
|
|
16
|
-
s.source_files = "ios/**/*.{h,m,mm,cpp}"
|
|
17
|
-
s.private_header_files = "ios/**/*.h"
|
|
18
16
|
|
|
17
|
+
s.source_files = [
|
|
18
|
+
"ios/**/*.{swift}",
|
|
19
|
+
"ios/**/*.{m,mm}",
|
|
20
|
+
"cpp/**/*.{hpp,cpp}",
|
|
21
|
+
]
|
|
22
|
+
|
|
23
|
+
s.dependency 'React-jsi'
|
|
24
|
+
s.dependency 'React-callinvoker'
|
|
25
|
+
|
|
26
|
+
load 'nitrogen/generated/ios/CallManager+autolinking.rb'
|
|
27
|
+
add_nitrogen_files(s)
|
|
19
28
|
|
|
20
29
|
install_modules_dependencies(s)
|
|
21
30
|
end
|
package/README.md
CHANGED
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
# @qusaieilouti99/call-manager
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Call manager
|
|
4
4
|
|
|
5
5
|
## Installation
|
|
6
6
|
|
|
7
|
+
|
|
7
8
|
```sh
|
|
8
|
-
npm install @qusaieilouti99/call-manager
|
|
9
|
+
npm install @qusaieilouti99/call-manager react-native-nitro-modules
|
|
10
|
+
|
|
11
|
+
> `react-native-nitro-modules` is required as this library relies on [Nitro Modules](https://nitro.margelo.com/).
|
|
9
12
|
```
|
|
10
13
|
|
|
14
|
+
|
|
11
15
|
## Usage
|
|
12
16
|
|
|
13
17
|
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
project(qusaieilouti99_callmanager)
|
|
2
|
+
cmake_minimum_required(VERSION 3.9.0)
|
|
3
|
+
|
|
4
|
+
set(PACKAGE_NAME qusaieilouti99_callmanager)
|
|
5
|
+
set(CMAKE_VERBOSE_MAKEFILE ON)
|
|
6
|
+
set(CMAKE_CXX_STANDARD 20)
|
|
7
|
+
|
|
8
|
+
# Define C++ library and add all sources
|
|
9
|
+
add_library(${PACKAGE_NAME} SHARED src/main/cpp/cpp-adapter.cpp)
|
|
10
|
+
|
|
11
|
+
# Add Nitrogen specs :)
|
|
12
|
+
include(${CMAKE_SOURCE_DIR}/../nitrogen/generated/android/qusaieilouti99_callmanager+autolinking.cmake)
|
|
13
|
+
|
|
14
|
+
# Set up local includes
|
|
15
|
+
include_directories("src/main/cpp" "../cpp")
|
|
16
|
+
|
|
17
|
+
find_library(LOG_LIB log)
|
|
18
|
+
|
|
19
|
+
# Link all libraries together
|
|
20
|
+
target_link_libraries(
|
|
21
|
+
${PACKAGE_NAME}
|
|
22
|
+
${LOG_LIB}
|
|
23
|
+
android # <-- Android core
|
|
24
|
+
)
|
package/android/build.gradle
CHANGED
|
@@ -15,9 +15,14 @@ buildscript {
|
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
+
def reactNativeArchitectures() {
|
|
19
|
+
def value = rootProject.getProperties().get("reactNativeArchitectures")
|
|
20
|
+
return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"]
|
|
21
|
+
}
|
|
18
22
|
|
|
19
23
|
apply plugin: "com.android.library"
|
|
20
24
|
apply plugin: "kotlin-android"
|
|
25
|
+
apply from: '../nitrogen/generated/android/qusaieilouti99_callmanager+autolinking.gradle'
|
|
21
26
|
|
|
22
27
|
apply plugin: "com.facebook.react"
|
|
23
28
|
|
|
@@ -26,17 +31,62 @@ def getExtOrIntegerDefault(name) {
|
|
|
26
31
|
}
|
|
27
32
|
|
|
28
33
|
android {
|
|
29
|
-
namespace "com.qusaieilouti99.callmanager"
|
|
34
|
+
namespace "com.margelo.nitro.qusaieilouti99.callmanager"
|
|
30
35
|
|
|
31
36
|
compileSdkVersion getExtOrIntegerDefault("compileSdkVersion")
|
|
32
37
|
|
|
33
38
|
defaultConfig {
|
|
34
39
|
minSdkVersion getExtOrIntegerDefault("minSdkVersion")
|
|
35
40
|
targetSdkVersion getExtOrIntegerDefault("targetSdkVersion")
|
|
41
|
+
|
|
42
|
+
externalNativeBuild {
|
|
43
|
+
cmake {
|
|
44
|
+
cppFlags "-frtti -fexceptions -Wall -fstack-protector-all"
|
|
45
|
+
arguments "-DANDROID_STL=c++_shared", "-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON"
|
|
46
|
+
abiFilters (*reactNativeArchitectures())
|
|
47
|
+
|
|
48
|
+
buildTypes {
|
|
49
|
+
debug {
|
|
50
|
+
cppFlags "-O1 -g"
|
|
51
|
+
}
|
|
52
|
+
release {
|
|
53
|
+
cppFlags "-O2"
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
externalNativeBuild {
|
|
61
|
+
cmake {
|
|
62
|
+
path "CMakeLists.txt"
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
packagingOptions {
|
|
67
|
+
excludes = [
|
|
68
|
+
"META-INF",
|
|
69
|
+
"META-INF/**",
|
|
70
|
+
"**/libc++_shared.so",
|
|
71
|
+
"**/libfbjni.so",
|
|
72
|
+
"**/libjsi.so",
|
|
73
|
+
"**/libfolly_json.so",
|
|
74
|
+
"**/libfolly_runtime.so",
|
|
75
|
+
"**/libglog.so",
|
|
76
|
+
"**/libhermes.so",
|
|
77
|
+
"**/libhermes-executor-debug.so",
|
|
78
|
+
"**/libhermes_executor.so",
|
|
79
|
+
"**/libreactnative.so",
|
|
80
|
+
"**/libreactnativejni.so",
|
|
81
|
+
"**/libturbomodulejsijni.so",
|
|
82
|
+
"**/libreact_nativemodule_core.so",
|
|
83
|
+
"**/libjscexecutor.so"
|
|
84
|
+
]
|
|
36
85
|
}
|
|
37
86
|
|
|
38
87
|
buildFeatures {
|
|
39
88
|
buildConfig true
|
|
89
|
+
prefab true
|
|
40
90
|
}
|
|
41
91
|
|
|
42
92
|
buildTypes {
|
|
@@ -74,10 +124,6 @@ def kotlin_version = getExtOrDefault("kotlinVersion")
|
|
|
74
124
|
dependencies {
|
|
75
125
|
implementation "com.facebook.react:react-android"
|
|
76
126
|
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
|
127
|
+
implementation project(":react-native-nitro-modules")
|
|
77
128
|
}
|
|
78
129
|
|
|
79
|
-
react {
|
|
80
|
-
jsRootDir = file("../src/")
|
|
81
|
-
libraryName = "CallManager"
|
|
82
|
-
codegenJavaPackageName = "com.qusaieilouti99.callmanager"
|
|
83
|
-
}
|
|
@@ -1,36 +1,36 @@
|
|
|
1
1
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
|
2
|
-
<application>
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
</application>
|
|
2
|
+
<application>
|
|
3
|
+
<activity
|
|
4
|
+
android:name=".CallActivity"
|
|
5
|
+
android:exported="true"
|
|
6
|
+
android:showOnLockScreen="true"
|
|
7
|
+
android:turnScreenOn="true"
|
|
8
|
+
android:theme="@android:style/Theme.DeviceDefault.NoActionBar"
|
|
9
|
+
android:screenOrientation="portrait"
|
|
10
|
+
android:launchMode="singleTop"
|
|
11
|
+
android:excludeFromRecents="true"
|
|
12
|
+
android:taskAffinity=""
|
|
13
|
+
android:windowSoftInputMode="adjustResize">
|
|
14
|
+
<intent-filter>
|
|
15
|
+
<action android:name="android.intent.action.VIEW"/>
|
|
16
|
+
<category android:name="android.intent.category.DEFAULT"/>
|
|
17
|
+
</intent-filter>
|
|
18
|
+
</activity>
|
|
19
|
+
<service
|
|
20
|
+
android:name=".MyConnectionService"
|
|
21
|
+
android:permission="android.permission.BIND_TELECOM_CONNECTION_SERVICE"
|
|
22
|
+
android:exported="true">
|
|
23
|
+
<intent-filter>
|
|
24
|
+
<action android:name="android.telecom.ConnectionService" />
|
|
25
|
+
</intent-filter>
|
|
26
|
+
</service>
|
|
27
|
+
<service
|
|
28
|
+
android:name=".CallForegroundService"
|
|
29
|
+
android:enabled="true"
|
|
30
|
+
android:exported="false"
|
|
31
|
+
android:foregroundServiceType="phoneCall" />
|
|
32
|
+
<receiver
|
|
33
|
+
android:name=".CallNotificationActionReceiver"
|
|
34
|
+
android:exported="false" />
|
|
35
|
+
</application>
|
|
36
36
|
</manifest>
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
package com.margelo.nitro.qusaieilouti99.callmanager
|
|
2
|
+
|
|
3
|
+
import com.facebook.proguard.annotations.DoNotStrip
|
|
4
|
+
|
|
5
|
+
@DoNotStrip
|
|
6
|
+
class CallManager : HybridCallManagerSpec() {
|
|
7
|
+
|
|
8
|
+
override fun endCall(callId: String) {
|
|
9
|
+
CallEngine.endCall(CallEngine.appContext ?: return, callId)
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
override fun silenceRingtone() {
|
|
13
|
+
CallEngine.cancelIncomingCallUI(CallEngine.appContext ?: return)
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
override fun getAudioDevices(): Array<String> {
|
|
17
|
+
val context = CallEngine.appContext ?: throw IllegalStateException("App context not set")
|
|
18
|
+
return CallEngine.getAudioDevices(context).toTypedArray()
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
override fun setAudioRoute(route: String) {
|
|
22
|
+
val context = CallEngine.appContext ?: throw IllegalStateException("App context not set")
|
|
23
|
+
CallEngine.setAudioRoute(context, route)
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
override fun keepScreenAwake(keepAwake: Boolean) {
|
|
27
|
+
val context = CallEngine.appContext ?: throw IllegalStateException("App context not set")
|
|
28
|
+
CallEngine.keepScreenAwake(context, keepAwake)
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
override fun addListener(
|
|
32
|
+
event: CallEventType,
|
|
33
|
+
listener: (payload: String) -> Unit
|
|
34
|
+
): () -> Unit {
|
|
35
|
+
// Register the event handler for this event type
|
|
36
|
+
val handler: (CallEventType, String) -> Unit = { type, payload ->
|
|
37
|
+
if (type == event) listener(payload)
|
|
38
|
+
}
|
|
39
|
+
CallEngine.setEventHandler(handler)
|
|
40
|
+
// Return a remove function
|
|
41
|
+
return {
|
|
42
|
+
// Remove the handler (set to null or implement a more advanced listener registry)
|
|
43
|
+
CallEngine.setEventHandler(null)
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
package/android/src/main/java/com/margelo/nitro/qusaieilouti99/callmanager/CallManagerPackage.kt
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
package com.margelo.nitro.qusaieilouti99.callmanager
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.TurboReactPackage
|
|
4
|
+
import com.facebook.react.bridge.NativeModule
|
|
5
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
6
|
+
import com.facebook.react.module.model.ReactModuleInfoProvider
|
|
7
|
+
|
|
8
|
+
class CallManagerPackage : TurboReactPackage() {
|
|
9
|
+
override fun getModule(name: String, reactContext: ReactApplicationContext): NativeModule? {
|
|
10
|
+
return null
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
override fun getReactModuleInfoProvider(): ReactModuleInfoProvider {
|
|
14
|
+
return ReactModuleInfoProvider { HashMap() }
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
companion object {
|
|
18
|
+
init {
|
|
19
|
+
System.loadLibrary("qusaieilouti99_callmanager")
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
// CallEventType.ts
|
|
4
|
+
export let CallEventType = /*#__PURE__*/function (CallEventType) {
|
|
5
|
+
CallEventType[CallEventType["INITIAL_CALL_STATE"] = 0] = "INITIAL_CALL_STATE";
|
|
6
|
+
CallEventType[CallEventType["CALL_STATE_CHANGED"] = 1] = "CALL_STATE_CHANGED";
|
|
7
|
+
CallEventType[CallEventType["AUDIO_DEVICES_CHANGED"] = 2] = "AUDIO_DEVICES_CHANGED";
|
|
8
|
+
CallEventType[CallEventType["AUDIO_ROUTE_CHANGED"] = 3] = "AUDIO_ROUTE_CHANGED";
|
|
9
|
+
CallEventType[CallEventType["CALL_HELD"] = 4] = "CALL_HELD";
|
|
10
|
+
CallEventType[CallEventType["CALL_UNHELD"] = 5] = "CALL_UNHELD";
|
|
11
|
+
CallEventType[CallEventType["CALL_MUTED"] = 6] = "CALL_MUTED";
|
|
12
|
+
CallEventType[CallEventType["CALL_UNMUTED"] = 7] = "CALL_UNMUTED";
|
|
13
|
+
CallEventType[CallEventType["CALL_ANSWERED"] = 8] = "CALL_ANSWERED";
|
|
14
|
+
CallEventType[CallEventType["CALL_REJECTED"] = 9] = "CALL_REJECTED";
|
|
15
|
+
CallEventType[CallEventType["CALL_ENDED"] = 10] = "CALL_ENDED";
|
|
16
|
+
return CallEventType;
|
|
17
|
+
}({});
|
|
18
|
+
//# sourceMappingURL=CallEventType.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["CallEventType"],"sourceRoot":"..\\..\\src","sources":["CallEventType.ts"],"mappings":";;AAAA;AACA,WAAYA,aAAa,0BAAbA,aAAa;EAAbA,aAAa,CAAbA,aAAa;EAAbA,aAAa,CAAbA,aAAa;EAAbA,aAAa,CAAbA,aAAa;EAAbA,aAAa,CAAbA,aAAa;EAAbA,aAAa,CAAbA,aAAa;EAAbA,aAAa,CAAbA,aAAa;EAAbA,aAAa,CAAbA,aAAa;EAAbA,aAAa,CAAbA,aAAa;EAAbA,aAAa,CAAbA,aAAa;EAAbA,aAAa,CAAbA,aAAa;EAAbA,aAAa,CAAbA,aAAa;EAAA,OAAbA,aAAa;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"..\\..\\src","sources":["CallManager.nitro.ts"],"mappings":"","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
export const
|
|
9
|
-
export const
|
|
10
|
-
export const
|
|
11
|
-
export const
|
|
12
|
-
export const
|
|
13
|
-
|
|
3
|
+
import { NitroModules } from 'react-native-nitro-modules';
|
|
4
|
+
import { CallEventType } from "./CallEventType.js";
|
|
5
|
+
const CallManagerHybridObject = NitroModules.createHybridObject('CallManager');
|
|
6
|
+
|
|
7
|
+
// Named exports for only the allowed methods
|
|
8
|
+
export const endCall = CallManagerHybridObject.endCall;
|
|
9
|
+
export const silenceRingtone = CallManagerHybridObject.silenceRingtone;
|
|
10
|
+
export const getAudioDevices = CallManagerHybridObject.getAudioDevices;
|
|
11
|
+
export const setAudioRoute = CallManagerHybridObject.setAudioRoute;
|
|
12
|
+
export const keepScreenAwake = CallManagerHybridObject.keepScreenAwake;
|
|
13
|
+
|
|
14
|
+
// Event emitter: addListener returns a remove function
|
|
15
|
+
export const addCallManagerListener = (event, listener) => CallManagerHybridObject.addListener(event, listener);
|
|
16
|
+
export { CallEventType };
|
|
14
17
|
//# sourceMappingURL=index.js.map
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["NitroModules","CallEventType","CallManagerHybridObject","createHybridObject","endCall","silenceRingtone","getAudioDevices","setAudioRoute","keepScreenAwake","addCallManagerListener","event","listener","addListener"],"sourceRoot":"..\\..\\src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,4BAA4B;AAEzD,SAASC,aAAa,QAAQ,oBAAiB;AAE/C,MAAMC,uBAAuB,GAC3BF,YAAY,CAACG,kBAAkB,CAAc,aAAa,CAAC;;AAE7D;AACA,OAAO,MAAMC,OAAO,GAAGF,uBAAuB,CAACE,OAAO;AACtD,OAAO,MAAMC,eAAe,GAAGH,uBAAuB,CAACG,eAAe;AAEtE,OAAO,MAAMC,eAAe,GAAGJ,uBAAuB,CAACI,eAAe;AACtE,OAAO,MAAMC,aAAa,GAAGL,uBAAuB,CAACK,aAAa;AAClE,OAAO,MAAMC,eAAe,GAAGN,uBAAuB,CAACM,eAAe;;AAEtE;AACA,OAAO,MAAMC,sBAAsB,GAAGA,CACpCC,KAAoB,EACpBC,QAAmC,KACpBT,uBAAuB,CAACU,WAAW,CAACF,KAAK,EAAEC,QAAQ,CAAC;AAErE,SAASV,aAAa","ignoreList":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare enum CallEventType {
|
|
2
|
+
INITIAL_CALL_STATE = 0,
|
|
3
|
+
CALL_STATE_CHANGED = 1,
|
|
4
|
+
AUDIO_DEVICES_CHANGED = 2,
|
|
5
|
+
AUDIO_ROUTE_CHANGED = 3,
|
|
6
|
+
CALL_HELD = 4,
|
|
7
|
+
CALL_UNHELD = 5,
|
|
8
|
+
CALL_MUTED = 6,
|
|
9
|
+
CALL_UNMUTED = 7,
|
|
10
|
+
CALL_ANSWERED = 8,
|
|
11
|
+
CALL_REJECTED = 9,
|
|
12
|
+
CALL_ENDED = 10
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=CallEventType.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CallEventType.d.ts","sourceRoot":"","sources":["../../../src/CallEventType.ts"],"names":[],"mappings":"AACA,oBAAY,aAAa;IACvB,kBAAkB,IAAA;IAClB,kBAAkB,IAAA;IAClB,qBAAqB,IAAA;IACrB,mBAAmB,IAAA;IACnB,SAAS,IAAA;IACT,WAAW,IAAA;IACX,UAAU,IAAA;IACV,YAAY,IAAA;IACZ,aAAa,IAAA;IACb,aAAa,IAAA;IACb,UAAU,KAAA;CACX"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { HybridObject } from 'react-native-nitro-modules';
|
|
2
|
+
import type { CallEventType } from './CallEventType';
|
|
3
|
+
export interface CallManager extends HybridObject<{
|
|
4
|
+
ios: 'swift';
|
|
5
|
+
android: 'kotlin';
|
|
6
|
+
}> {
|
|
7
|
+
endCall(callId: string): void;
|
|
8
|
+
silenceRingtone(): void;
|
|
9
|
+
getAudioDevices(): string[];
|
|
10
|
+
setAudioRoute(route: string): void;
|
|
11
|
+
keepScreenAwake(keepAwake: boolean): void;
|
|
12
|
+
addListener(event: CallEventType, listener: (payload: string) => void): () => void;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=CallManager.nitro.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CallManager.nitro.d.ts","sourceRoot":"","sources":["../../../src/CallManager.nitro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,WAAW,WAAY,SAAQ,YAAY,CAAC;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,QAAQ,CAAA;CAAE,CAAC;IAEpF,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,eAAe,IAAI,IAAI,CAAC;IAGxB,eAAe,IAAI,MAAM,EAAE,CAAC;IAC5B,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,eAAe,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;IAG1C,WAAW,CACT,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAClC,MAAM,IAAI,CAAC;CACf"}
|
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
import
|
|
2
|
-
export declare const reportIncomingCall: (callId: string, callData: string) => void;
|
|
1
|
+
import { CallEventType } from './CallEventType';
|
|
3
2
|
export declare const endCall: (callId: string) => void;
|
|
4
|
-
export declare const answerCall: (callId: string) => void;
|
|
5
3
|
export declare const silenceRingtone: () => void;
|
|
6
|
-
export declare const rejectCurrentAndAnswerNew: (callId: string, callData: string) => void;
|
|
7
|
-
export declare const setEventHandler: (callback: (event: CallEventType, callData: string) => void) => void;
|
|
8
4
|
export declare const getAudioDevices: () => string[];
|
|
9
5
|
export declare const setAudioRoute: (route: string) => void;
|
|
10
6
|
export declare const keepScreenAwake: (keepAwake: boolean) => void;
|
|
11
|
-
export
|
|
7
|
+
export declare const addCallManagerListener: (event: CallEventType, listener: (payload: string) => void) => () => void;
|
|
8
|
+
export { CallEventType };
|
|
12
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAMhD,eAAO,MAAM,OAAO,0BAAkC,CAAC;AACvD,eAAO,MAAM,eAAe,YAA0C,CAAC;AAEvE,eAAO,MAAM,eAAe,gBAA0C,CAAC;AACvE,eAAO,MAAM,aAAa,yBAAwC,CAAC;AACnE,eAAO,MAAM,eAAe,8BAA0C,CAAC;AAGvE,eAAO,MAAM,sBAAsB,GACjC,OAAO,aAAa,EACpB,UAAU,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,KAClC,MAAM,IAA4D,CAAC;AAEtE,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
package/nitro.json
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cxxNamespace": ["qusaieilouti99_callmanager"],
|
|
3
|
+
"ios": {
|
|
4
|
+
"iosModuleName": "CallManager"
|
|
5
|
+
},
|
|
6
|
+
"android": {
|
|
7
|
+
"androidNamespace": ["qusaieilouti99","callmanager"],
|
|
8
|
+
"androidCxxLibName": "qusaieilouti99_callmanager"
|
|
9
|
+
},
|
|
10
|
+
"autolinking": {
|
|
11
|
+
"CallManager": {
|
|
12
|
+
"swift": "CallManager",
|
|
13
|
+
"kotlin": "CallManager"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"ignorePaths": ["node_modules"]
|
|
17
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// JCallEventType.hpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2025 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include <fbjni/fbjni.h>
|
|
11
|
+
#include "CallEventType.hpp"
|
|
12
|
+
|
|
13
|
+
namespace margelo::nitro::qusaieilouti99_callmanager {
|
|
14
|
+
|
|
15
|
+
using namespace facebook;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* The C++ JNI bridge between the C++ enum "CallEventType" and the the Kotlin enum "CallEventType".
|
|
19
|
+
*/
|
|
20
|
+
struct JCallEventType final: public jni::JavaClass<JCallEventType> {
|
|
21
|
+
public:
|
|
22
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/qusaieilouti99/callmanager/CallEventType;";
|
|
23
|
+
|
|
24
|
+
public:
|
|
25
|
+
/**
|
|
26
|
+
* Convert this Java/Kotlin-based enum to the C++ enum CallEventType.
|
|
27
|
+
*/
|
|
28
|
+
[[maybe_unused]]
|
|
29
|
+
[[nodiscard]]
|
|
30
|
+
CallEventType toCpp() const {
|
|
31
|
+
static const auto clazz = javaClassStatic();
|
|
32
|
+
static const auto fieldOrdinal = clazz->getField<int>("_ordinal");
|
|
33
|
+
int ordinal = this->getFieldValue(fieldOrdinal);
|
|
34
|
+
return static_cast<CallEventType>(ordinal);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
public:
|
|
38
|
+
/**
|
|
39
|
+
* Create a Java/Kotlin-based enum with the given C++ enum's value.
|
|
40
|
+
*/
|
|
41
|
+
[[maybe_unused]]
|
|
42
|
+
static jni::alias_ref<JCallEventType> fromCpp(CallEventType value) {
|
|
43
|
+
static const auto clazz = javaClassStatic();
|
|
44
|
+
static const auto fieldINITIAL_CALL_STATE = clazz->getStaticField<JCallEventType>("INITIAL_CALL_STATE");
|
|
45
|
+
static const auto fieldCALL_STATE_CHANGED = clazz->getStaticField<JCallEventType>("CALL_STATE_CHANGED");
|
|
46
|
+
static const auto fieldAUDIO_DEVICES_CHANGED = clazz->getStaticField<JCallEventType>("AUDIO_DEVICES_CHANGED");
|
|
47
|
+
static const auto fieldAUDIO_ROUTE_CHANGED = clazz->getStaticField<JCallEventType>("AUDIO_ROUTE_CHANGED");
|
|
48
|
+
static const auto fieldCALL_HELD = clazz->getStaticField<JCallEventType>("CALL_HELD");
|
|
49
|
+
static const auto fieldCALL_UNHELD = clazz->getStaticField<JCallEventType>("CALL_UNHELD");
|
|
50
|
+
static const auto fieldCALL_MUTED = clazz->getStaticField<JCallEventType>("CALL_MUTED");
|
|
51
|
+
static const auto fieldCALL_UNMUTED = clazz->getStaticField<JCallEventType>("CALL_UNMUTED");
|
|
52
|
+
static const auto fieldCALL_ANSWERED = clazz->getStaticField<JCallEventType>("CALL_ANSWERED");
|
|
53
|
+
static const auto fieldCALL_REJECTED = clazz->getStaticField<JCallEventType>("CALL_REJECTED");
|
|
54
|
+
static const auto fieldCALL_ENDED = clazz->getStaticField<JCallEventType>("CALL_ENDED");
|
|
55
|
+
|
|
56
|
+
switch (value) {
|
|
57
|
+
case CallEventType::INITIAL_CALL_STATE:
|
|
58
|
+
return clazz->getStaticFieldValue(fieldINITIAL_CALL_STATE);
|
|
59
|
+
case CallEventType::CALL_STATE_CHANGED:
|
|
60
|
+
return clazz->getStaticFieldValue(fieldCALL_STATE_CHANGED);
|
|
61
|
+
case CallEventType::AUDIO_DEVICES_CHANGED:
|
|
62
|
+
return clazz->getStaticFieldValue(fieldAUDIO_DEVICES_CHANGED);
|
|
63
|
+
case CallEventType::AUDIO_ROUTE_CHANGED:
|
|
64
|
+
return clazz->getStaticFieldValue(fieldAUDIO_ROUTE_CHANGED);
|
|
65
|
+
case CallEventType::CALL_HELD:
|
|
66
|
+
return clazz->getStaticFieldValue(fieldCALL_HELD);
|
|
67
|
+
case CallEventType::CALL_UNHELD:
|
|
68
|
+
return clazz->getStaticFieldValue(fieldCALL_UNHELD);
|
|
69
|
+
case CallEventType::CALL_MUTED:
|
|
70
|
+
return clazz->getStaticFieldValue(fieldCALL_MUTED);
|
|
71
|
+
case CallEventType::CALL_UNMUTED:
|
|
72
|
+
return clazz->getStaticFieldValue(fieldCALL_UNMUTED);
|
|
73
|
+
case CallEventType::CALL_ANSWERED:
|
|
74
|
+
return clazz->getStaticFieldValue(fieldCALL_ANSWERED);
|
|
75
|
+
case CallEventType::CALL_REJECTED:
|
|
76
|
+
return clazz->getStaticFieldValue(fieldCALL_REJECTED);
|
|
77
|
+
case CallEventType::CALL_ENDED:
|
|
78
|
+
return clazz->getStaticFieldValue(fieldCALL_ENDED);
|
|
79
|
+
default:
|
|
80
|
+
std::string stringValue = std::to_string(static_cast<int>(value));
|
|
81
|
+
throw std::invalid_argument("Invalid enum value (" + stringValue + "!");
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
} // namespace margelo::nitro::qusaieilouti99_callmanager
|