@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.
Files changed (72) hide show
  1. package/CallManager.podspec +11 -2
  2. package/README.md +6 -2
  3. package/android/CMakeLists.txt +24 -0
  4. package/android/build.gradle +52 -6
  5. package/android/src/main/AndroidManifest.xml +34 -34
  6. package/android/src/main/cpp/cpp-adapter.cpp +6 -0
  7. package/android/src/main/java/com/{qusaieilouti99 → margelo/nitro/qusaieilouti99}/callmanager/CallActivity.kt +1 -2
  8. package/android/src/main/java/com/{qusaieilouti99 → margelo/nitro/qusaieilouti99}/callmanager/CallEngine.kt +1 -1
  9. package/android/src/main/java/com/{qusaieilouti99 → margelo/nitro/qusaieilouti99}/callmanager/CallForegroundService.kt +1 -1
  10. package/android/src/main/java/com/margelo/nitro/qusaieilouti99/callmanager/CallManager.kt +46 -0
  11. package/android/src/main/java/com/margelo/nitro/qusaieilouti99/callmanager/CallManagerPackage.kt +22 -0
  12. package/android/src/main/java/com/{qusaieilouti99 → margelo/nitro/qusaieilouti99}/callmanager/CallNotificationActionReceiver.kt +1 -1
  13. package/android/src/main/java/com/{qusaieilouti99 → margelo/nitro/qusaieilouti99}/callmanager/MyConnection.kt +1 -1
  14. package/android/src/main/java/com/{qusaieilouti99 → margelo/nitro/qusaieilouti99}/callmanager/MyConnectionService.kt +1 -1
  15. package/ios/CallManager.swift +5 -0
  16. package/lib/module/CallEventType.js +18 -0
  17. package/lib/module/CallEventType.js.map +1 -0
  18. package/lib/module/CallManager.nitro.js +4 -0
  19. package/lib/module/CallManager.nitro.js.map +1 -0
  20. package/lib/module/index.js +14 -11
  21. package/lib/module/index.js.map +1 -1
  22. package/lib/typescript/src/CallEventType.d.ts +14 -0
  23. package/lib/typescript/src/CallEventType.d.ts.map +1 -0
  24. package/lib/typescript/src/CallManager.nitro.d.ts +14 -0
  25. package/lib/typescript/src/CallManager.nitro.d.ts.map +1 -0
  26. package/lib/typescript/src/index.d.ts +3 -6
  27. package/lib/typescript/src/index.d.ts.map +1 -1
  28. package/nitro.json +17 -0
  29. package/nitrogen/generated/android/c++/JCallEventType.hpp +86 -0
  30. package/nitrogen/generated/android/c++/JFunc_void.hpp +74 -0
  31. package/nitrogen/generated/android/c++/JFunc_void_std__string.hpp +75 -0
  32. package/nitrogen/generated/android/c++/JHybridCallManagerSpec.cpp +88 -0
  33. package/nitrogen/generated/android/c++/JHybridCallManagerSpec.hpp +67 -0
  34. package/nitrogen/generated/android/kotlin/com/margelo/nitro/qusaieilouti99/callmanager/CallEventType.kt +34 -0
  35. package/nitrogen/generated/android/kotlin/com/margelo/nitro/qusaieilouti99/callmanager/Func_void.kt +80 -0
  36. package/nitrogen/generated/android/kotlin/com/margelo/nitro/qusaieilouti99/callmanager/Func_void_std__string.kt +80 -0
  37. package/nitrogen/generated/android/kotlin/com/margelo/nitro/qusaieilouti99/callmanager/HybridCallManagerSpec.kt +77 -0
  38. package/nitrogen/generated/android/kotlin/com/margelo/nitro/qusaieilouti99/callmanager/qusaieilouti99_callmanagerOnLoad.kt +35 -0
  39. package/nitrogen/generated/android/qusaieilouti99_callmanager+autolinking.cmake +78 -0
  40. package/nitrogen/generated/android/qusaieilouti99_callmanager+autolinking.gradle +27 -0
  41. package/nitrogen/generated/android/qusaieilouti99_callmanagerOnLoad.cpp +50 -0
  42. package/nitrogen/generated/android/qusaieilouti99_callmanagerOnLoad.hpp +25 -0
  43. package/nitrogen/generated/ios/CallManager+autolinking.rb +60 -0
  44. package/nitrogen/generated/ios/CallManager-Swift-Cxx-Bridge.cpp +48 -0
  45. package/nitrogen/generated/ios/CallManager-Swift-Cxx-Bridge.hpp +127 -0
  46. package/nitrogen/generated/ios/CallManager-Swift-Cxx-Umbrella.hpp +49 -0
  47. package/nitrogen/generated/ios/CallManagerAutolinking.mm +33 -0
  48. package/nitrogen/generated/ios/CallManagerAutolinking.swift +25 -0
  49. package/nitrogen/generated/ios/c++/HybridCallManagerSpecSwift.cpp +11 -0
  50. package/nitrogen/generated/ios/c++/HybridCallManagerSpecSwift.hpp +107 -0
  51. package/nitrogen/generated/ios/swift/CallEventType.swift +76 -0
  52. package/nitrogen/generated/ios/swift/Func_void.swift +46 -0
  53. package/nitrogen/generated/ios/swift/Func_void_std__string.swift +46 -0
  54. package/nitrogen/generated/ios/swift/HybridCallManagerSpec.swift +53 -0
  55. package/nitrogen/generated/ios/swift/HybridCallManagerSpec_cxx.swift +184 -0
  56. package/nitrogen/generated/shared/c++/CallEventType.hpp +73 -0
  57. package/nitrogen/generated/shared/c++/HybridCallManagerSpec.cpp +26 -0
  58. package/nitrogen/generated/shared/c++/HybridCallManagerSpec.hpp +71 -0
  59. package/package.json +19 -15
  60. package/src/CallEventType.ts +14 -0
  61. package/src/CallManager.nitro.ts +19 -0
  62. package/src/index.tsx +22 -15
  63. package/android/src/main/java/com/qusaieilouti99/callmanager/CallEventType.kt +0 -15
  64. package/android/src/main/java/com/qusaieilouti99/callmanager/CallManagerModule.kt +0 -81
  65. package/android/src/main/java/com/qusaieilouti99/callmanager/CallManagerPackage.kt +0 -33
  66. package/ios/CallManager.h +0 -5
  67. package/ios/CallManager.mm +0 -18
  68. package/lib/module/NativeCallManager.js +0 -20
  69. package/lib/module/NativeCallManager.js.map +0 -1
  70. package/lib/typescript/src/NativeCallManager.d.ts +0 -28
  71. package/lib/typescript/src/NativeCallManager.d.ts.map +0 -1
  72. package/src/NativeCallManager.ts +0 -32
@@ -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
- call manager
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
+ )
@@ -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
- <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>
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,6 @@
1
+ #include <jni.h>
2
+ #include "qusaieilouti99_callmanagerOnLoad.hpp"
3
+
4
+ JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void*) {
5
+ return margelo::nitro::qusaieilouti99_callmanager::initialize(vm);
6
+ }
@@ -1,6 +1,5 @@
1
1
  // CallActivity.kt
2
- package com.qusaieilouti99.callmanager
3
-
2
+ package com.margelo.nitro.qusaieilouti99.callmanager
4
3
  import android.app.Activity
5
4
  import android.content.Intent
6
5
  import android.os.Build
@@ -1,4 +1,4 @@
1
- package com.qusaieilouti99.callmanager
1
+ package com.margelo.nitro.qusaieilouti99.callmanager
2
2
 
3
3
  import android.app.*
4
4
  import android.content.ComponentName
@@ -1,5 +1,5 @@
1
1
  // CallForegroundService.kt
2
- package com.qusaieilouti99.callmanager
2
+ package com.margelo.nitro.qusaieilouti99.callmanager
3
3
 
4
4
  import android.app.Notification
5
5
  import android.app.NotificationChannel
@@ -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
+ }
@@ -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
+ }
@@ -1,5 +1,5 @@
1
1
  // CallNotificationActionReceiver.kt
2
- package com.qusaieilouti99.callmanager
2
+ package com.margelo.nitro.qusaieilouti99.callmanager
3
3
 
4
4
  import android.content.BroadcastReceiver
5
5
  import android.content.Context
@@ -1,4 +1,4 @@
1
- package com.qusaieilouti99.callmanager
1
+ package com.margelo.nitro.qusaieilouti99.callmanager
2
2
 
3
3
  import android.content.Context
4
4
  import android.telecom.Connection
@@ -1,5 +1,5 @@
1
1
  // MyConnectionService.kt
2
- package com.qusaieilouti99.callmanager
2
+ package com.margelo.nitro.qusaieilouti99.callmanager
3
3
 
4
4
  import android.telecom.Connection
5
5
  import android.telecom.ConnectionRequest
@@ -0,0 +1,5 @@
1
+ class CallManager: HybridCallManagerSpec {
2
+ public func multiply(a: Double, b: Double) throws -> Double {
3
+ return a * b
4
+ }
5
+ }
@@ -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,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=CallManager.nitro.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"..\\..\\src","sources":["CallManager.nitro.ts"],"mappings":"","ignoreList":[]}
@@ -1,14 +1,17 @@
1
1
  "use strict";
2
2
 
3
- // index.tsx
4
- import CallManager from "./NativeCallManager.js";
5
- export const reportIncomingCall = CallManager.reportIncomingCall;
6
- export const endCall = CallManager.endCall;
7
- export const answerCall = CallManager.answerCall;
8
- export const silenceRingtone = CallManager.silenceRingtone;
9
- export const rejectCurrentAndAnswerNew = CallManager.rejectCurrentAndAnswerNew;
10
- export const setEventHandler = CallManager.setEventHandler;
11
- export const getAudioDevices = CallManager.getAudioDevices;
12
- export const setAudioRoute = CallManager.setAudioRoute;
13
- export const keepScreenAwake = CallManager.keepScreenAwake;
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
@@ -1 +1 @@
1
- {"version":3,"names":["CallManager","reportIncomingCall","endCall","answerCall","silenceRingtone","rejectCurrentAndAnswerNew","setEventHandler","getAudioDevices","setAudioRoute","keepScreenAwake"],"sourceRoot":"..\\..\\src","sources":["index.tsx"],"mappings":";;AAAA;AACA,OAAOA,WAAW,MAAM,wBAAqB;AAG7C,OAAO,MAAMC,kBAAkB,GAAGD,WAAW,CAACC,kBAAkB;AAChE,OAAO,MAAMC,OAAO,GAAGF,WAAW,CAACE,OAAO;AAC1C,OAAO,MAAMC,UAAU,GAAGH,WAAW,CAACG,UAAU;AAChD,OAAO,MAAMC,eAAe,GAAGJ,WAAW,CAACI,eAAe;AAC1D,OAAO,MAAMC,yBAAyB,GAAGL,WAAW,CAACK,yBAAyB;AAC9E,OAAO,MAAMC,eAAe,GAAGN,WAAW,CAACM,eAAe;AAC1D,OAAO,MAAMC,eAAe,GAAGP,WAAW,CAACO,eAAe;AAC1D,OAAO,MAAMC,aAAa,GAAGR,WAAW,CAACQ,aAAa;AACtD,OAAO,MAAMC,eAAe,GAAGT,WAAW,CAACS,eAAe","ignoreList":[]}
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 type { CallEventType } from './NativeCallManager';
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 type { CallEventType };
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,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,eAAO,MAAM,kBAAkB,4CAAiC,CAAC;AACjE,eAAO,MAAM,OAAO,0BAAsB,CAAC;AAC3C,eAAO,MAAM,UAAU,0BAAyB,CAAC;AACjD,eAAO,MAAM,eAAe,YAA8B,CAAC;AAC3D,eAAO,MAAM,yBAAyB,4CAAwC,CAAC;AAC/E,eAAO,MAAM,eAAe,sEAA8B,CAAC;AAC3D,eAAO,MAAM,eAAe,gBAA8B,CAAC;AAC3D,eAAO,MAAM,aAAa,yBAA4B,CAAC;AACvD,eAAO,MAAM,eAAe,8BAA8B,CAAC;AAE3D,YAAY,EAAE,aAAa,EAAE,CAAC"}
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