@stream-io/react-native-callingx 0.1.0-beta.6 → 0.1.1-beta.0

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 (65) hide show
  1. package/android/build.gradle +7 -1
  2. package/android/src/main/AndroidManifest.xml +31 -1
  3. package/android/src/main/java/io/getstream/rn/callingx/CallEventBroadcastReceiver.kt +17 -0
  4. package/android/src/main/java/io/getstream/rn/callingx/CallRegistrationStore.kt +176 -0
  5. package/android/src/main/java/io/getstream/rn/callingx/CallService.kt +302 -80
  6. package/android/src/main/java/io/getstream/rn/callingx/CallingxModuleImpl.kt +176 -191
  7. package/android/src/main/java/io/getstream/rn/callingx/StreamMessagingService.kt +48 -0
  8. package/android/src/main/java/io/getstream/rn/callingx/model/Call.kt +1 -0
  9. package/android/src/main/java/io/getstream/rn/callingx/notifications/CallNotificationManager.kt +196 -46
  10. package/android/src/main/java/io/getstream/rn/callingx/notifications/NotificationIntentFactory.kt +14 -8
  11. package/android/src/main/java/io/getstream/rn/callingx/notifications/NotificationReceiverActivity.kt +12 -1
  12. package/android/src/main/java/io/getstream/rn/callingx/notifications/NotificationReceiverService.kt +7 -0
  13. package/android/src/main/java/io/getstream/rn/callingx/repo/CallRepository.kt +38 -19
  14. package/android/src/main/java/io/getstream/rn/callingx/repo/LegacyCallRepository.kt +64 -55
  15. package/android/src/main/java/io/getstream/rn/callingx/repo/TelecomCallRepository.kt +241 -195
  16. package/android/src/main/java/io/getstream/rn/callingx/utils/CallEventBus.kt +61 -0
  17. package/android/src/main/java/io/getstream/rn/callingx/utils/SettingsStore.kt +51 -0
  18. package/android/src/newarch/java/io/getstream/rn/callingx/CallingxModule.kt +12 -3
  19. package/android/src/oldarch/java/io/getstream/rn/callingx/CallingxModule.kt +13 -3
  20. package/dist/module/CallingxModule.js +13 -10
  21. package/dist/module/CallingxModule.js.map +1 -1
  22. package/dist/module/spec/NativeCallingx.js.map +1 -1
  23. package/dist/module/utils/constants.js +24 -13
  24. package/dist/module/utils/constants.js.map +1 -1
  25. package/dist/typescript/src/CallingxModule.d.ts +3 -0
  26. package/dist/typescript/src/CallingxModule.d.ts.map +1 -1
  27. package/dist/typescript/src/spec/NativeCallingx.d.ts +7 -1
  28. package/dist/typescript/src/spec/NativeCallingx.d.ts.map +1 -1
  29. package/dist/typescript/src/types.d.ts +31 -0
  30. package/dist/typescript/src/types.d.ts.map +1 -1
  31. package/dist/typescript/src/utils/constants.d.ts +1 -1
  32. package/dist/typescript/src/utils/constants.d.ts.map +1 -1
  33. package/ios/AudioSessionManager.swift +2 -2
  34. package/ios/Callingx.mm +41 -17
  35. package/ios/CallingxImpl.swift +213 -83
  36. package/ios/Settings.swift +2 -2
  37. package/ios/UUIDStorage.swift +10 -10
  38. package/ios/VoipNotificationsManager.swift +8 -8
  39. package/package.json +4 -2
  40. package/src/CallingxModule.ts +14 -10
  41. package/src/spec/NativeCallingx.ts +10 -3
  42. package/src/types.ts +34 -0
  43. package/src/utils/constants.ts +23 -9
  44. package/android/bin/build/generated/source/buildConfig/debug/io/getstream/rn/callingx/BuildConfig.class +0 -0
  45. package/android/bin/build/generated/source/codegen/java/io/getstream/rn/callingx/NativeCallingxSpec.class +0 -0
  46. package/android/bin/build/generated/source/codegen/jni/CMakeLists.txt +0 -28
  47. package/android/bin/build/generated/source/codegen/jni/CallingxSpec-generated.cpp +0 -167
  48. package/android/bin/build/generated/source/codegen/jni/CallingxSpec.h +0 -31
  49. package/android/bin/build/generated/source/codegen/jni/react/renderer/components/CallingxSpec/CallingxSpecJSI-generated.cpp +0 -196
  50. package/android/bin/build/generated/source/codegen/jni/react/renderer/components/CallingxSpec/CallingxSpecJSI.h +0 -283
  51. package/android/bin/build/generated/source/codegen/jni/react/renderer/components/CallingxSpec/ComponentDescriptors.cpp +0 -22
  52. package/android/bin/build/generated/source/codegen/jni/react/renderer/components/CallingxSpec/ComponentDescriptors.h +0 -24
  53. package/android/bin/build/generated/source/codegen/jni/react/renderer/components/CallingxSpec/EventEmitters.cpp +0 -16
  54. package/android/bin/build/generated/source/codegen/jni/react/renderer/components/CallingxSpec/EventEmitters.h +0 -17
  55. package/android/bin/build/generated/source/codegen/jni/react/renderer/components/CallingxSpec/Props.cpp +0 -19
  56. package/android/bin/build/generated/source/codegen/jni/react/renderer/components/CallingxSpec/Props.h +0 -18
  57. package/android/bin/build/generated/source/codegen/jni/react/renderer/components/CallingxSpec/ShadowNodes.cpp +0 -17
  58. package/android/bin/build/generated/source/codegen/jni/react/renderer/components/CallingxSpec/ShadowNodes.h +0 -23
  59. package/android/bin/build/generated/source/codegen/jni/react/renderer/components/CallingxSpec/States.cpp +0 -16
  60. package/android/bin/build/generated/source/codegen/jni/react/renderer/components/CallingxSpec/States.h +0 -20
  61. package/android/bin/build/generated/source/codegen/schema.json +0 -1
  62. package/android/bin/src/main/AndroidManifest.xml +0 -29
  63. package/android/bin/src/main/java/io/getstream/rn/callingx/notifications/NotificationChannelsManager.kt +0 -104
  64. /package/android/src/main/java/io/getstream/rn/callingx/{ResourceUtils.kt → utils/ResourceUtils.kt} +0 -0
  65. /package/android/src/main/java/io/getstream/rn/callingx/{Utils.kt → utils/Utils.kt} +0 -0
@@ -1,20 +0,0 @@
1
- /**
2
- * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
3
- *
4
- * Do not edit this file as changes may cause incorrect behavior and will be lost
5
- * once the code is regenerated.
6
- *
7
- * @generated by codegen project: GenerateStateH.js
8
- */
9
- #pragma once
10
-
11
- #include <react/renderer/core/StateData.h>
12
- #ifdef RN_SERIALIZABLE_STATE
13
- #include <folly/dynamic.h>
14
- #endif
15
-
16
- namespace facebook::react {
17
-
18
-
19
-
20
- } // namespace facebook::react
@@ -1 +0,0 @@
1
- {"libraryName":"","modules":{"NativeCallingx":{"type":"NativeModule","aliasMap":{},"enumMap":{},"spec":{"eventEmitters":[{"name":"onNewEvent","optional":false,"typeAnnotation":{"type":"EventEmitterTypeAnnotation","typeAnnotation":{"type":"ObjectTypeAnnotation","properties":[{"name":"eventName","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"params","optional":false,"typeAnnotation":{"type":"ObjectTypeAnnotation","properties":[{"name":"callId","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"cause","optional":true,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"muted","optional":true,"typeAnnotation":{"type":"BooleanTypeAnnotation"}},{"name":"hold","optional":true,"typeAnnotation":{"type":"BooleanTypeAnnotation"}}]}}]}}},{"name":"onNewVoipEvent","optional":false,"typeAnnotation":{"type":"EventEmitterTypeAnnotation","typeAnnotation":{"type":"ObjectTypeAnnotation","properties":[{"name":"eventName","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"params","optional":false,"typeAnnotation":{"type":"ObjectTypeAnnotation","properties":[{"name":"token","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"aps","optional":false,"typeAnnotation":{"type":"ObjectTypeAnnotation","properties":[{"optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"optional":false,"typeAnnotation":{"type":"NumberTypeAnnotation"}},{"name":"alert","optional":false,"typeAnnotation":{"type":"ObjectTypeAnnotation","properties":[{"name":"title","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}}]}},{"name":"category","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"sound","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}}]}},{"name":"stream","optional":false,"typeAnnotation":{"type":"ObjectTypeAnnotation","properties":[{"name":"sender","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"created_by_id","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"body","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"title","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"call_display_name","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"created_by_display_name","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"version","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"type","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"receiver_id","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"call_cid","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"video","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}}]}}]}}]}}}],"methods":[{"name":"setupiOS","optional":false,"typeAnnotation":{"type":"FunctionTypeAnnotation","returnTypeAnnotation":{"type":"VoidTypeAnnotation"},"params":[{"name":"options","optional":false,"typeAnnotation":{"type":"ObjectTypeAnnotation","properties":[{"name":"supportsVideo","optional":false,"typeAnnotation":{"type":"BooleanTypeAnnotation"}},{"name":"maximumCallsPerCallGroup","optional":false,"typeAnnotation":{"type":"NumberTypeAnnotation"}},{"name":"maximumCallGroups","optional":false,"typeAnnotation":{"type":"NumberTypeAnnotation"}},{"name":"handleType","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"sound","optional":false,"typeAnnotation":{"type":"NullableTypeAnnotation","typeAnnotation":{"type":"StringTypeAnnotation"}}},{"name":"imageName","optional":false,"typeAnnotation":{"type":"NullableTypeAnnotation","typeAnnotation":{"type":"StringTypeAnnotation"}}},{"name":"callsHistory","optional":false,"typeAnnotation":{"type":"BooleanTypeAnnotation"}},{"name":"displayCallTimeout","optional":false,"typeAnnotation":{"type":"NumberTypeAnnotation"}}]}}]}},{"name":"setupAndroid","optional":false,"typeAnnotation":{"type":"FunctionTypeAnnotation","returnTypeAnnotation":{"type":"VoidTypeAnnotation"},"params":[{"name":"options","optional":false,"typeAnnotation":{"type":"ObjectTypeAnnotation","properties":[{"name":"incomingChannel","optional":false,"typeAnnotation":{"type":"ObjectTypeAnnotation","properties":[{"name":"id","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"name","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"sound","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"vibration","optional":false,"typeAnnotation":{"type":"BooleanTypeAnnotation"}}]}},{"name":"ongoingChannel","optional":false,"typeAnnotation":{"type":"ObjectTypeAnnotation","properties":[{"name":"id","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"name","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}}]}}]}}]}},{"name":"setShouldRejectCallWhenBusy","optional":false,"typeAnnotation":{"type":"FunctionTypeAnnotation","returnTypeAnnotation":{"type":"VoidTypeAnnotation"},"params":[{"name":"shouldReject","optional":false,"typeAnnotation":{"type":"BooleanTypeAnnotation"}}]}},{"name":"canPostNotifications","optional":false,"typeAnnotation":{"type":"FunctionTypeAnnotation","returnTypeAnnotation":{"type":"BooleanTypeAnnotation"},"params":[]}},{"name":"getInitialEvents","optional":false,"typeAnnotation":{"type":"FunctionTypeAnnotation","returnTypeAnnotation":{"type":"ArrayTypeAnnotation","elementType":{"type":"ObjectTypeAnnotation","properties":[{"name":"eventName","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"params","optional":false,"typeAnnotation":{"type":"ObjectTypeAnnotation","properties":[{"name":"callId","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"cause","optional":true,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"muted","optional":true,"typeAnnotation":{"type":"BooleanTypeAnnotation"}},{"name":"hold","optional":true,"typeAnnotation":{"type":"BooleanTypeAnnotation"}},{"name":"source","optional":true,"typeAnnotation":{"type":"StringTypeAnnotation"}}]}}]}},"params":[]}},{"name":"getInitialVoipEvents","optional":false,"typeAnnotation":{"type":"FunctionTypeAnnotation","returnTypeAnnotation":{"type":"ArrayTypeAnnotation","elementType":{"type":"ObjectTypeAnnotation","properties":[{"name":"eventName","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"params","optional":false,"typeAnnotation":{"type":"ObjectTypeAnnotation","properties":[{"name":"token","optional":true,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"aps","optional":true,"typeAnnotation":{"type":"ObjectTypeAnnotation","properties":[{"optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"optional":false,"typeAnnotation":{"type":"NumberTypeAnnotation"}},{"name":"alert","optional":false,"typeAnnotation":{"type":"ObjectTypeAnnotation","properties":[{"name":"title","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}}]}},{"name":"category","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"sound","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}}]}},{"name":"stream","optional":true,"typeAnnotation":{"type":"ObjectTypeAnnotation","properties":[{"name":"sender","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"created_by_id","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"body","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"title","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"call_display_name","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"created_by_display_name","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"version","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"type","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"receiver_id","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"call_cid","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"video","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}}]}}]}}]}},"params":[]}},{"name":"setCurrentCallActive","optional":false,"typeAnnotation":{"type":"FunctionTypeAnnotation","returnTypeAnnotation":{"type":"PromiseTypeAnnotation","elementType":{"type":"VoidTypeAnnotation"}},"params":[{"name":"callId","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}}]}},{"name":"displayIncomingCall","optional":false,"typeAnnotation":{"type":"FunctionTypeAnnotation","returnTypeAnnotation":{"type":"PromiseTypeAnnotation","elementType":{"type":"VoidTypeAnnotation"}},"params":[{"name":"callId","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"phoneNumber","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"callerName","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"hasVideo","optional":false,"typeAnnotation":{"type":"BooleanTypeAnnotation"}},{"name":"displayOptions","optional":true,"typeAnnotation":{"type":"ObjectTypeAnnotation","properties":[{"name":"displayTitle","optional":true,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"displaySubtitle","optional":true,"typeAnnotation":{"type":"StringTypeAnnotation"}}]}}]}},{"name":"answerIncomingCall","optional":false,"typeAnnotation":{"type":"FunctionTypeAnnotation","returnTypeAnnotation":{"type":"PromiseTypeAnnotation","elementType":{"type":"VoidTypeAnnotation"}},"params":[{"name":"callId","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}}]}},{"name":"startCall","optional":false,"typeAnnotation":{"type":"FunctionTypeAnnotation","returnTypeAnnotation":{"type":"PromiseTypeAnnotation","elementType":{"type":"VoidTypeAnnotation"}},"params":[{"name":"callId","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"phoneNumber","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"callerName","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"hasVideo","optional":false,"typeAnnotation":{"type":"BooleanTypeAnnotation"}},{"name":"displayOptions","optional":true,"typeAnnotation":{"type":"ObjectTypeAnnotation","properties":[{"name":"displayTitle","optional":true,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"displaySubtitle","optional":true,"typeAnnotation":{"type":"StringTypeAnnotation"}}]}}]}},{"name":"updateDisplay","optional":false,"typeAnnotation":{"type":"FunctionTypeAnnotation","returnTypeAnnotation":{"type":"PromiseTypeAnnotation","elementType":{"type":"VoidTypeAnnotation"}},"params":[{"name":"callId","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"phoneNumber","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"callerName","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"displayOptions","optional":true,"typeAnnotation":{"type":"ObjectTypeAnnotation","properties":[{"name":"displayTitle","optional":true,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"displaySubtitle","optional":true,"typeAnnotation":{"type":"StringTypeAnnotation"}}]}}]}},{"name":"isCallRegistered","optional":false,"typeAnnotation":{"type":"FunctionTypeAnnotation","returnTypeAnnotation":{"type":"BooleanTypeAnnotation"},"params":[{"name":"callId","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}}]}},{"name":"hasRegisteredCall","optional":false,"typeAnnotation":{"type":"FunctionTypeAnnotation","returnTypeAnnotation":{"type":"BooleanTypeAnnotation"},"params":[]}},{"name":"endCallWithReason","optional":false,"typeAnnotation":{"type":"FunctionTypeAnnotation","returnTypeAnnotation":{"type":"PromiseTypeAnnotation","elementType":{"type":"VoidTypeAnnotation"}},"params":[{"name":"callId","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"reason","optional":false,"typeAnnotation":{"type":"NumberTypeAnnotation"}}]}},{"name":"endCall","optional":false,"typeAnnotation":{"type":"FunctionTypeAnnotation","returnTypeAnnotation":{"type":"PromiseTypeAnnotation","elementType":{"type":"VoidTypeAnnotation"}},"params":[{"name":"callId","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}}]}},{"name":"setMutedCall","optional":false,"typeAnnotation":{"type":"FunctionTypeAnnotation","returnTypeAnnotation":{"type":"PromiseTypeAnnotation","elementType":{"type":"VoidTypeAnnotation"}},"params":[{"name":"callId","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"isMuted","optional":false,"typeAnnotation":{"type":"BooleanTypeAnnotation"}}]}},{"name":"setOnHoldCall","optional":false,"typeAnnotation":{"type":"FunctionTypeAnnotation","returnTypeAnnotation":{"type":"PromiseTypeAnnotation","elementType":{"type":"VoidTypeAnnotation"}},"params":[{"name":"callId","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"isOnHold","optional":false,"typeAnnotation":{"type":"BooleanTypeAnnotation"}}]}},{"name":"registerBackgroundTaskAvailable","optional":false,"typeAnnotation":{"type":"FunctionTypeAnnotation","returnTypeAnnotation":{"type":"VoidTypeAnnotation"},"params":[]}},{"name":"isServiceStarted","optional":false,"typeAnnotation":{"type":"FunctionTypeAnnotation","returnTypeAnnotation":{"type":"PromiseTypeAnnotation","elementType":{"type":"BooleanTypeAnnotation"}},"params":[]}},{"name":"startBackgroundTask","optional":false,"typeAnnotation":{"type":"FunctionTypeAnnotation","returnTypeAnnotation":{"type":"PromiseTypeAnnotation","elementType":{"type":"VoidTypeAnnotation"}},"params":[{"name":"taskName","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"timeout","optional":false,"typeAnnotation":{"type":"NumberTypeAnnotation"}}]}},{"name":"stopBackgroundTask","optional":false,"typeAnnotation":{"type":"FunctionTypeAnnotation","returnTypeAnnotation":{"type":"PromiseTypeAnnotation","elementType":{"type":"VoidTypeAnnotation"}},"params":[{"name":"taskName","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}}]}},{"name":"registerVoipToken","optional":false,"typeAnnotation":{"type":"FunctionTypeAnnotation","returnTypeAnnotation":{"type":"VoidTypeAnnotation"},"params":[]}},{"name":"log","optional":false,"typeAnnotation":{"type":"FunctionTypeAnnotation","returnTypeAnnotation":{"type":"VoidTypeAnnotation"},"params":[{"name":"message","optional":false,"typeAnnotation":{"type":"StringTypeAnnotation"}},{"name":"level","optional":false,"typeAnnotation":{"type":"StringLiteralUnionTypeAnnotation","types":[{"type":"StringLiteralTypeAnnotation","value":"debug"},{"type":"StringLiteralTypeAnnotation","value":"info"},{"type":"StringLiteralTypeAnnotation","value":"warn"},{"type":"StringLiteralTypeAnnotation","value":"error"}]}}]}}]},"moduleName":"Callingx"}}}
@@ -1,29 +0,0 @@
1
- <manifest xmlns:android="http://schemas.android.com/apk/res/android">
2
-
3
- <uses-permission android:name="android.permission.MANAGE_OWN_CALLS" />
4
- <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
5
- <uses-permission android:name="android.permission.FOREGROUND_SERVICE_PHONE_CALL" />
6
- <uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT" />
7
-
8
- <application>
9
- <activity
10
- android:name="io.getstream.rn.callingx.notifications.NotificationReceiverActivity"
11
- android:excludeFromRecents="true"
12
- android:exported="false"
13
- android:noHistory="true"
14
- android:taskAffinity=""
15
- android:theme="@android:style/Theme.Translucent.NoTitleBar" />
16
-
17
- <service
18
- android:name="io.getstream.rn.callingx.notifications.NotificationReceiverService"
19
- android:exported="false" />
20
-
21
- <service
22
- android:name="io.getstream.rn.callingx.CallService"
23
- android:enabled="true"
24
- android:exported="false"
25
- android:foregroundServiceType="phoneCall"
26
- android:stopWithTask="true" />
27
-
28
- </application>
29
- </manifest>
@@ -1,104 +0,0 @@
1
- package io.getstream.rn.callingx.notifications
2
-
3
- import android.content.Context
4
- import android.os.Build
5
- import androidx.core.app.NotificationChannelCompat
6
- import androidx.core.app.NotificationManagerCompat
7
- import io.getstream.rn.callingx.debugLog
8
-
9
- class NotificationChannelsManager(
10
- private val context: Context,
11
- private val notificationManager: NotificationManagerCompat =
12
- NotificationManagerCompat.from(context)
13
- ) {
14
-
15
- private var notificationsConfig: NotificationsConfig.Channels? = null
16
-
17
- companion object {
18
- private const val TAG = "[Callingx] NotificationChannelsManager"
19
- }
20
-
21
- data class NotificationStatus(
22
- val canPost: Boolean,
23
- val hasPermissions: Boolean,
24
- val areNotificationsEnabled: Boolean,
25
- val isIncomingChannelEnabled: Boolean,
26
- val isOngoingChannelEnabled: Boolean,
27
- )
28
-
29
- fun setNotificationsConfig(notificationsConfig: NotificationsConfig.Channels) {
30
- this.notificationsConfig = notificationsConfig
31
- }
32
-
33
- fun createNotificationChannels() {
34
- notificationsConfig?.let {
35
- val incomingChannel = createNotificationChannel(it.incomingChannel)
36
- val ongoingChannel = createNotificationChannel(it.ongoingChannel)
37
-
38
- notificationManager.createNotificationChannelsCompat(
39
- listOf(
40
- incomingChannel,
41
- ongoingChannel,
42
- ),
43
- )
44
- debugLog(TAG, "createNotificationChannels: Notification channels registered")
45
- }
46
- }
47
-
48
- fun getNotificationStatus(): NotificationStatus {
49
- val areNotificationsEnabled = areNotificationsEnabled()
50
- val hasPermissions = hasNotificationPermissions()
51
- val isIncomingChannelEnabled = isChannelEnabled(notificationsConfig?.incomingChannel?.id)
52
- val isOngoingChannelEnabled = isChannelEnabled(notificationsConfig?.ongoingChannel?.id)
53
-
54
- val canPost =
55
- areNotificationsEnabled &&
56
- hasPermissions &&
57
- isIncomingChannelEnabled &&
58
- isOngoingChannelEnabled
59
-
60
- return NotificationStatus(
61
- canPost,
62
- hasPermissions,
63
- areNotificationsEnabled,
64
- isIncomingChannelEnabled,
65
- isOngoingChannelEnabled
66
- )
67
- }
68
-
69
- private fun createNotificationChannel(
70
- config: NotificationsConfig.ChannelParams
71
- ): NotificationChannelCompat {
72
- return NotificationChannelCompat.Builder(config.id, config.importance)
73
- .apply {
74
- setName(config.name)
75
- setVibrationEnabled(config.vibration)
76
- setSound(null, null)
77
- }
78
- .build()
79
- }
80
-
81
- private fun areNotificationsEnabled(): Boolean {
82
- return notificationManager.areNotificationsEnabled()
83
- }
84
-
85
- private fun hasNotificationPermissions(): Boolean {
86
- // CallStyle notifications are exempt from POST_NOTIFICATIONS on Android 13+
87
- // when the app self-manages phone calls (MANAGE_OWN_CALLS + ConnectionService).
88
- // This package uses that path, so we always allow posting call notifications.
89
- return true
90
- }
91
-
92
- private fun isChannelEnabled(channelId: String?): Boolean {
93
- if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
94
- return true
95
- }
96
-
97
- if (channelId == null) {
98
- return false
99
- }
100
-
101
- val channel = notificationManager.getNotificationChannel(channelId)
102
- return channel != null && channel.importance != NotificationManagerCompat.IMPORTANCE_NONE
103
- }
104
- }