@stream-io/react-native-callingx 0.1.0-beta.1 → 0.1.0-beta.3
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/README.md +12 -8
- package/android/bin/src/main/AndroidManifest.xml +29 -0
- package/android/bin/src/main/java/io/getstream/rn/callingx/notifications/NotificationChannelsManager.kt +104 -0
- package/android/src/main/AndroidManifest.xml +0 -1
- package/android/src/main/java/io/getstream/rn/callingx/CallingxModule.kt +3 -3
- package/android/src/main/java/io/getstream/rn/callingx/notifications/NotificationChannelsManager.kt +9 -18
- package/dist/module/CallingxModule.js +2 -14
- package/dist/module/CallingxModule.js.map +1 -1
- package/dist/module/utils/constants.js +36 -9
- package/dist/module/utils/constants.js.map +1 -1
- package/dist/typescript/src/CallingxModule.d.ts +1 -5
- package/dist/typescript/src/CallingxModule.d.ts.map +1 -1
- package/dist/typescript/src/types.d.ts +41 -10
- package/dist/typescript/src/types.d.ts.map +1 -1
- package/dist/typescript/src/utils/constants.d.ts.map +1 -1
- package/ios/AudioSessionManager.swift +2 -7
- package/ios/CallingxImpl.swift +32 -27
- package/package.json +3 -3
- package/src/CallingxModule.ts +2 -30
- package/src/types.ts +35 -15
- package/src/utils/constants.ts +25 -16
- package/android/bin/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml +0 -33
- package/android/bin/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/output-metadata.json +0 -18
- package/android/bin/build/intermediates/aar_metadata/debug/writeDebugAarMetadata/aar-metadata.properties +0 -6
- package/android/bin/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +0 -4
- package/android/bin/build/intermediates/incremental/debug/packageDebugResources/merger.xml +0 -2
- package/android/bin/build/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt +0 -60
- package/android/bin/build/intermediates/merged_manifest/debug/processDebugManifest/AndroidManifest.xml +0 -33
- package/android/bin/build/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json +0 -1
- package/android/bin/build/intermediates/nested_resources_validation_report/debug/generateDebugResources/nestedResourcesValidationReport.txt +0 -1
- package/android/bin/build/intermediates/packaged_res/debug/packageDebugResources/drawable/ic_phone_paused_24.xml +0 -11
- package/android/bin/build/intermediates/packaged_res/debug/packageDebugResources/drawable/ic_round_call_24.xml +0 -11
- package/android/bin/build/intermediates/packaged_res/debug/packageDebugResources/drawable/ic_user.xml +0 -27
- package/android/bin/build/outputs/logs/manifest-merger-debug-report.txt +0 -70
- package/android/bin/src/main/java/io/getstream/rn/callingx/CallService.kt +0 -402
- package/android/bin/src/main/java/io/getstream/rn/callingx/CallingxModule.kt +0 -644
- package/android/bin/src/main/java/io/getstream/rn/callingx/notifications/CallNotificationManager.kt +0 -245
- package/android/bin/src/main/java/io/getstream/rn/callingx/repo/CallRepository.kt +0 -163
- package/android/bin/src/main/java/io/getstream/rn/callingx/repo/LegacyCallRepository.kt +0 -139
- package/android/bin/src/main/java/io/getstream/rn/callingx/repo/TelecomCallRepository.kt +0 -432
- package/dist/module/utils/permissions.js +0 -86
- package/dist/module/utils/permissions.js.map +0 -1
- package/dist/typescript/src/utils/permissions.d.ts +0 -8
- package/dist/typescript/src/utils/permissions.d.ts.map +0 -1
- package/src/utils/permissions.ts +0 -111
package/ios/CallingxImpl.swift
CHANGED
|
@@ -41,6 +41,7 @@ import stream_react_native_webrtc
|
|
|
41
41
|
private var isSetup: Bool = false
|
|
42
42
|
private var isSelfAnswered: Bool = false
|
|
43
43
|
private var isSelfEnded: Bool = false
|
|
44
|
+
private var isSelfMuted: Bool = false
|
|
44
45
|
private var delayedEvents: [[String: Any]] = []
|
|
45
46
|
|
|
46
47
|
// MARK: - Initialization
|
|
@@ -202,19 +203,8 @@ import stream_react_native_webrtc
|
|
|
202
203
|
return
|
|
203
204
|
}
|
|
204
205
|
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
case 1:
|
|
208
|
-
endedReason = .remoteEnded
|
|
209
|
-
case 2:
|
|
210
|
-
endedReason = .unanswered
|
|
211
|
-
case 3:
|
|
212
|
-
endedReason = .answeredElsewhere
|
|
213
|
-
case 4:
|
|
214
|
-
endedReason = .declinedElsewhere
|
|
215
|
-
default:
|
|
216
|
-
endedReason = .failed
|
|
217
|
-
}
|
|
206
|
+
// CXCallEndedReason raw values: failed=1, remoteEnded=2, unanswered=3, answeredElsewhere=4, declinedElsewhere=5
|
|
207
|
+
let endedReason = CXCallEndedReason(rawValue: reason) ?? .failed
|
|
218
208
|
|
|
219
209
|
sharedProvider?.reportCall(with: uuid, endedAt: Date(), reason: endedReason)
|
|
220
210
|
uuidStorage?.removeCid(callId)
|
|
@@ -254,6 +244,7 @@ import stream_react_native_webrtc
|
|
|
254
244
|
|
|
255
245
|
self?.isSelfAnswered = false
|
|
256
246
|
self?.isSelfEnded = false
|
|
247
|
+
self?.isSelfMuted = false
|
|
257
248
|
} else {
|
|
258
249
|
#if DEBUG
|
|
259
250
|
print("[Callingx][requestTransaction] Requested transaction successfully")
|
|
@@ -385,6 +376,7 @@ import stream_react_native_webrtc
|
|
|
385
376
|
callerName: String,
|
|
386
377
|
hasVideo: Bool
|
|
387
378
|
) -> Bool {
|
|
379
|
+
let uuid = CallingxImpl.uuidStorage?.getUUID(forCid: callId)
|
|
388
380
|
CallingxImpl.reportNewIncomingCall(
|
|
389
381
|
callId: callId,
|
|
390
382
|
handle: phoneNumber,
|
|
@@ -400,15 +392,18 @@ import stream_react_native_webrtc
|
|
|
400
392
|
completion: nil
|
|
401
393
|
)
|
|
402
394
|
|
|
403
|
-
let
|
|
404
|
-
if
|
|
405
|
-
let
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
395
|
+
let wasAlreadyAnswered = uuid != nil
|
|
396
|
+
if !wasAlreadyAnswered {
|
|
397
|
+
let settings = Settings.getSettings()
|
|
398
|
+
if let timeout = settings["displayCallTimeout"] as? Int {
|
|
399
|
+
let popTime = DispatchTime.now() + .milliseconds(timeout)
|
|
400
|
+
DispatchQueue.main.asyncAfter(deadline: popTime) { [weak self] in
|
|
401
|
+
guard let self = self, !self.isSetup else { return }
|
|
402
|
+
#if DEBUG
|
|
403
|
+
print("[Callingx] Displayed a call without a reachable app, ending the call: \(callId)")
|
|
404
|
+
#endif
|
|
405
|
+
CallingxImpl.endCall(callId, reason: CXCallEndedReason.failed.rawValue)
|
|
406
|
+
}
|
|
412
407
|
}
|
|
413
408
|
}
|
|
414
409
|
return true
|
|
@@ -481,6 +476,7 @@ import stream_react_native_webrtc
|
|
|
481
476
|
return false
|
|
482
477
|
}
|
|
483
478
|
|
|
479
|
+
isSelfMuted = true
|
|
484
480
|
let setMutedAction = CXSetMutedCallAction(call: uuid, muted: isMuted)
|
|
485
481
|
let transaction = CXTransaction()
|
|
486
482
|
transaction.addAction(setMutedAction)
|
|
@@ -662,8 +658,11 @@ import stream_react_native_webrtc
|
|
|
662
658
|
}
|
|
663
659
|
|
|
664
660
|
public func provider(_ provider: CXProvider, perform action: CXSetMutedCallAction) {
|
|
661
|
+
let isAppInitiated = isSelfMuted
|
|
662
|
+
isSelfMuted = false
|
|
663
|
+
|
|
665
664
|
#if DEBUG
|
|
666
|
-
print("[Callingx][CXProviderDelegate][provider:performSetMutedCallAction] \(action.isMuted)")
|
|
665
|
+
print("[Callingx][CXProviderDelegate][provider:performSetMutedCallAction] \(action.isMuted) isAppInitiated: \(isAppInitiated)")
|
|
667
666
|
#endif
|
|
668
667
|
|
|
669
668
|
guard let callId = CallingxImpl.uuidStorage?.getCid(forUUID: action.callUUID) else {
|
|
@@ -674,10 +673,16 @@ import stream_react_native_webrtc
|
|
|
674
673
|
return
|
|
675
674
|
}
|
|
676
675
|
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
676
|
+
// Only send the event to JS when the mute was initiated by the system
|
|
677
|
+
// (e.g. user tapped mute on the native CallKit UI).
|
|
678
|
+
// Skip app-initiated actions to prevent the feedback loop:
|
|
679
|
+
// app mutes mic → setMutedCall → CallKit delegate → event to JS → mic toggle → loop
|
|
680
|
+
if !isAppInitiated {
|
|
681
|
+
sendEvent(CallingxEvents.didPerformSetMutedCallAction, body: [
|
|
682
|
+
"muted": action.isMuted,
|
|
683
|
+
"callId": callId
|
|
684
|
+
])
|
|
685
|
+
}
|
|
681
686
|
|
|
682
687
|
action.fulfill()
|
|
683
688
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stream-io/react-native-callingx",
|
|
3
|
-
"version": "0.1.0-beta.
|
|
3
|
+
"version": "0.1.0-beta.3",
|
|
4
4
|
"description": "CallKit and Telecom API capabilities for React Native",
|
|
5
5
|
"main": "./dist/module/index.js",
|
|
6
6
|
"module": "./dist/module/index.js",
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
"devDependencies": {
|
|
62
62
|
"@react-native-community/cli": "20.0.1",
|
|
63
63
|
"@react-native/babel-preset": "^0.81.5",
|
|
64
|
-
"@stream-io/react-native-webrtc": "137.1.
|
|
64
|
+
"@stream-io/react-native-webrtc": "137.1.2-alpha.1",
|
|
65
65
|
"@types/react": "^19.1.0",
|
|
66
66
|
"del-cli": "^6.0.0",
|
|
67
67
|
"react": "19.1.0",
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
"typescript": "^5.9.2"
|
|
71
71
|
},
|
|
72
72
|
"peerDependencies": {
|
|
73
|
-
"@stream-io/react-native-webrtc": ">=137.1.
|
|
73
|
+
"@stream-io/react-native-webrtc": ">=137.1.1",
|
|
74
74
|
"react": "*",
|
|
75
75
|
"react-native": "*"
|
|
76
76
|
},
|
package/src/CallingxModule.ts
CHANGED
|
@@ -1,10 +1,5 @@
|
|
|
1
1
|
import { Platform } from 'react-native';
|
|
2
2
|
import NativeCallingModule from './spec/NativeCallingx';
|
|
3
|
-
import {
|
|
4
|
-
checkCallPermissions,
|
|
5
|
-
requestCallPermissions,
|
|
6
|
-
} from './utils/permissions';
|
|
7
|
-
import type { PermissionsResult } from './utils/permissions';
|
|
8
3
|
import {
|
|
9
4
|
HEADLESS_TASK_NAME,
|
|
10
5
|
registerHeadlessTask,
|
|
@@ -36,7 +31,6 @@ import {
|
|
|
36
31
|
import { isVoipEvent } from './utils/utils';
|
|
37
32
|
|
|
38
33
|
class CallingxModule implements ICallingxModule {
|
|
39
|
-
private _isNotificationsAllowed = false;
|
|
40
34
|
private _isSetup = false;
|
|
41
35
|
private _isOngoingCallsEnabled = false;
|
|
42
36
|
private _isHeadlessTaskRegistered = false;
|
|
@@ -49,14 +43,12 @@ class CallingxModule implements ICallingxModule {
|
|
|
49
43
|
private voipEventManager: EventManager<VoipEventName, VoipEventParams> =
|
|
50
44
|
new EventManager();
|
|
51
45
|
|
|
52
|
-
get
|
|
46
|
+
get canPostNotifications(): boolean {
|
|
53
47
|
if (Platform.OS !== 'android') {
|
|
54
48
|
return true;
|
|
55
49
|
}
|
|
56
50
|
|
|
57
|
-
return (
|
|
58
|
-
this._isNotificationsAllowed && NativeCallingModule.canPostNotifications()
|
|
59
|
-
);
|
|
51
|
+
return NativeCallingModule.canPostNotifications();
|
|
60
52
|
}
|
|
61
53
|
|
|
62
54
|
get isOngoingCallsEnabled(): boolean {
|
|
@@ -120,26 +112,6 @@ class CallingxModule implements ICallingxModule {
|
|
|
120
112
|
NativeCallingModule.setShouldRejectCallWhenBusy(shouldReject);
|
|
121
113
|
}
|
|
122
114
|
|
|
123
|
-
async requestPermissions(): Promise<PermissionsResult> {
|
|
124
|
-
const result: {
|
|
125
|
-
recordAudio: boolean;
|
|
126
|
-
postNotifications: boolean;
|
|
127
|
-
} = await requestCallPermissions();
|
|
128
|
-
|
|
129
|
-
this._isNotificationsAllowed = result.postNotifications;
|
|
130
|
-
return result;
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
async checkPermissions(): Promise<PermissionsResult> {
|
|
134
|
-
const result: {
|
|
135
|
-
recordAudio: boolean;
|
|
136
|
-
postNotifications: boolean;
|
|
137
|
-
} = await checkCallPermissions();
|
|
138
|
-
|
|
139
|
-
this._isNotificationsAllowed = result.postNotifications;
|
|
140
|
-
return result;
|
|
141
|
-
}
|
|
142
|
-
|
|
143
115
|
getInitialEvents(): EventData[] {
|
|
144
116
|
return NativeCallingModule.getInitialEvents() as EventData[];
|
|
145
117
|
}
|
package/src/types.ts
CHANGED
|
@@ -1,9 +1,17 @@
|
|
|
1
1
|
import type { EventListener } from './EventManager';
|
|
2
2
|
import type { ManagableTask } from './utils/headlessTask';
|
|
3
|
-
import type { PermissionsResult } from './utils/permissions';
|
|
4
3
|
|
|
5
4
|
export interface ICallingxModule {
|
|
6
|
-
|
|
5
|
+
/**
|
|
6
|
+
* Whether the module can post call notifications. Android only. iOS always returns true.
|
|
7
|
+
* Returns true when:
|
|
8
|
+
* - The incoming notification channel is enabled,
|
|
9
|
+
* - The ongoing notification channel is enabled,
|
|
10
|
+
* - And on Android 12 and below: app notifications are enabled in system settings.
|
|
11
|
+
* CallStyle is exempt from the POST_NOTIFICATIONS permission on Android 13+ when self-managing calls.
|
|
12
|
+
* @returns The boolean value.
|
|
13
|
+
*/
|
|
14
|
+
get canPostNotifications(): boolean;
|
|
7
15
|
get isOngoingCallsEnabled(): boolean;
|
|
8
16
|
get isSetup(): boolean;
|
|
9
17
|
|
|
@@ -22,13 +30,6 @@ export interface ICallingxModule {
|
|
|
22
30
|
* @param shouldReject - Whether to reject calls when the user is busy.
|
|
23
31
|
*/
|
|
24
32
|
setShouldRejectCallWhenBusy(shouldReject: boolean): void;
|
|
25
|
-
/**
|
|
26
|
-
* Check the permissions.
|
|
27
|
-
* @returns The permissions result.
|
|
28
|
-
*/
|
|
29
|
-
checkPermissions(): Promise<PermissionsResult>;
|
|
30
|
-
|
|
31
|
-
requestPermissions(): Promise<PermissionsResult>;
|
|
32
33
|
/**
|
|
33
34
|
* Get the initial events. This method is used to get the initial events from the app launch.
|
|
34
35
|
* The events are queued and can be retrieved after the module is setup.
|
|
@@ -172,10 +173,7 @@ export type InternalIOSOptions = {
|
|
|
172
173
|
};
|
|
173
174
|
type iOSOptions = Omit<
|
|
174
175
|
InternalIOSOptions,
|
|
175
|
-
| '
|
|
176
|
-
| 'maximumCallGroups'
|
|
177
|
-
| 'handleType'
|
|
178
|
-
| 'setupAudioSession'
|
|
176
|
+
'maximumCallsPerCallGroup' | 'maximumCallGroups' | 'handleType'
|
|
179
177
|
>;
|
|
180
178
|
|
|
181
179
|
export type InternalAndroidOptions = {
|
|
@@ -313,11 +311,33 @@ export type VoipEventParams = {
|
|
|
313
311
|
};
|
|
314
312
|
};
|
|
315
313
|
|
|
314
|
+
/**
|
|
315
|
+
* The reason for ending a call. These values are mapped to platform-specific
|
|
316
|
+
* constants on each platform:
|
|
317
|
+
* - iOS: `CXCallEndedReason` (CallKit)
|
|
318
|
+
* - Android: `DisconnectCause` (Telecom)
|
|
319
|
+
*
|
|
320
|
+
* @see https://developer.apple.com/documentation/callkit/cxcallendedreason
|
|
321
|
+
* @see https://developer.android.com/reference/android/telecom/DisconnectCause
|
|
322
|
+
*/
|
|
316
323
|
export type EndCallReason =
|
|
317
|
-
|
|
324
|
+
/** Call ended by the local user (e.g., hanging up). */
|
|
325
|
+
| 'local'
|
|
326
|
+
/** Call ended by the remote party, or outgoing call was not answered. */
|
|
318
327
|
| 'remote'
|
|
328
|
+
/** Call was rejected/declined by the user. */
|
|
319
329
|
| 'rejected'
|
|
330
|
+
/** Remote party was busy. */
|
|
320
331
|
| 'busy'
|
|
332
|
+
/** Call was answered on another device. */
|
|
321
333
|
| 'answeredElsewhere'
|
|
334
|
+
/** No response to an incoming call. */
|
|
322
335
|
| 'missed'
|
|
323
|
-
|
|
336
|
+
/** Call failed due to an error (e.g., network issue). */
|
|
337
|
+
| 'error'
|
|
338
|
+
/** Call was canceled before the remote party could answer. */
|
|
339
|
+
| 'canceled'
|
|
340
|
+
/** Call restricted (e.g., airplane mode, dialing restrictions). */
|
|
341
|
+
| 'restricted'
|
|
342
|
+
/** Unknown or unspecified disconnect reason. */
|
|
343
|
+
| 'unknown';
|
package/src/utils/constants.ts
CHANGED
|
@@ -32,24 +32,33 @@ export const defaultAndroidOptions: DeepRequired<InternalAndroidOptions> = {
|
|
|
32
32
|
},
|
|
33
33
|
};
|
|
34
34
|
|
|
35
|
-
//
|
|
35
|
+
// iOS: maps to CXCallEndedReason raw values.
|
|
36
|
+
// See https://developer.apple.com/documentation/callkit/cxcallendedreason
|
|
37
|
+
// CXCallEndedReason: failed=1, remoteEnded=2, unanswered=3, answeredElsewhere=4, declinedElsewhere=5
|
|
36
38
|
export const iosEndCallReasonMap: Record<EndCallReason, number> = {
|
|
37
|
-
local: -1,
|
|
38
|
-
remote:
|
|
39
|
-
rejected:
|
|
40
|
-
busy:
|
|
41
|
-
answeredElsewhere:
|
|
42
|
-
missed:
|
|
43
|
-
error:
|
|
39
|
+
local: -1, // special: uses endCall() instead of endCallWithReason()
|
|
40
|
+
remote: 2, // .remoteEnded
|
|
41
|
+
rejected: 5, // .declinedElsewhere
|
|
42
|
+
busy: 3, // .unanswered
|
|
43
|
+
answeredElsewhere: 4, // .answeredElsewhere
|
|
44
|
+
missed: 3, // .unanswered
|
|
45
|
+
error: 1, // .failed
|
|
46
|
+
canceled: 2, // .remoteEnded (caller canceled before answer)
|
|
47
|
+
restricted: 1, // .failed (no iOS equivalent)
|
|
48
|
+
unknown: 1, // .failed (no iOS equivalent)
|
|
44
49
|
};
|
|
45
50
|
|
|
46
|
-
//
|
|
51
|
+
// Android: maps to android.telecom.DisconnectCause constants.
|
|
52
|
+
// See https://developer.android.com/reference/android/telecom/DisconnectCause
|
|
47
53
|
export const androidEndCallReasonMap: Record<EndCallReason, number> = {
|
|
48
|
-
local: 2,
|
|
49
|
-
remote: 3,
|
|
50
|
-
rejected: 6,
|
|
51
|
-
busy: 7,
|
|
52
|
-
answeredElsewhere: 11,
|
|
53
|
-
missed: 5,
|
|
54
|
-
error: 1,
|
|
54
|
+
local: 2, // LOCAL
|
|
55
|
+
remote: 3, // REMOTE
|
|
56
|
+
rejected: 6, // REJECTED
|
|
57
|
+
busy: 7, // BUSY
|
|
58
|
+
answeredElsewhere: 11, // ANSWERED_ELSEWHERE
|
|
59
|
+
missed: 5, // MISSED
|
|
60
|
+
error: 1, // ERROR
|
|
61
|
+
canceled: 4, // CANCELED
|
|
62
|
+
restricted: 8, // RESTRICTED
|
|
63
|
+
unknown: 0, // UNKNOWN
|
|
55
64
|
};
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
-
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
|
3
|
-
package="io.getstream.rn.callingx" >
|
|
4
|
-
|
|
5
|
-
<uses-sdk android:minSdkVersion="24" />
|
|
6
|
-
|
|
7
|
-
<uses-permission android:name="android.permission.MANAGE_OWN_CALLS" />
|
|
8
|
-
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
|
|
9
|
-
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
|
10
|
-
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_PHONE_CALL" />
|
|
11
|
-
<uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT" />
|
|
12
|
-
|
|
13
|
-
<application>
|
|
14
|
-
<activity
|
|
15
|
-
android:name="io.getstream.rn.callingx.notifications.NotificationReceiverActivity"
|
|
16
|
-
android:excludeFromRecents="true"
|
|
17
|
-
android:exported="false"
|
|
18
|
-
android:noHistory="true"
|
|
19
|
-
android:taskAffinity=""
|
|
20
|
-
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
|
|
21
|
-
|
|
22
|
-
<service
|
|
23
|
-
android:name="io.getstream.rn.callingx.notifications.NotificationReceiverService"
|
|
24
|
-
android:exported="false" />
|
|
25
|
-
<service
|
|
26
|
-
android:name="io.getstream.rn.callingx.CallService"
|
|
27
|
-
android:enabled="true"
|
|
28
|
-
android:exported="false"
|
|
29
|
-
android:foregroundServiceType="phoneCall"
|
|
30
|
-
android:stopWithTask="true" />
|
|
31
|
-
</application>
|
|
32
|
-
|
|
33
|
-
</manifest>
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"artifactType": {
|
|
4
|
-
"type": "AAPT_FRIENDLY_MERGED_MANIFESTS",
|
|
5
|
-
"kind": "Directory"
|
|
6
|
-
},
|
|
7
|
-
"applicationId": "io.getstream.rn.callingx",
|
|
8
|
-
"variantName": "debug",
|
|
9
|
-
"elements": [
|
|
10
|
-
{
|
|
11
|
-
"type": "SINGLE",
|
|
12
|
-
"filters": [],
|
|
13
|
-
"attributes": [],
|
|
14
|
-
"outputFile": "AndroidManifest.xml"
|
|
15
|
-
}
|
|
16
|
-
],
|
|
17
|
-
"elementType": "File"
|
|
18
|
-
}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
#Wed Feb 04 17:19:56 CET 2026
|
|
2
|
-
io.getstream.rn.callingx.stream-io_react-native-callingx-main-6\:/drawable/ic_phone_paused_24.xml=/Users/greenfrvr/dev/stream/stream-video-js/sample-apps/react-native/dogfood/node_modules/@stream-io/react-native-callingx/android/build/intermediates/packaged_res/debug/packageDebugResources/drawable/ic_phone_paused_24.xml
|
|
3
|
-
io.getstream.rn.callingx.stream-io_react-native-callingx-main-6\:/drawable/ic_round_call_24.xml=/Users/greenfrvr/dev/stream/stream-video-js/sample-apps/react-native/dogfood/node_modules/@stream-io/react-native-callingx/android/build/intermediates/packaged_res/debug/packageDebugResources/drawable/ic_round_call_24.xml
|
|
4
|
-
io.getstream.rn.callingx.stream-io_react-native-callingx-main-6\:/drawable/ic_user.xml=/Users/greenfrvr/dev/stream/stream-video-js/sample-apps/react-native/dogfood/node_modules/@stream-io/react-native-callingx/android/build/intermediates/packaged_res/debug/packageDebugResources/drawable/ic_user.xml
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
-
<merger version="3"><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="main$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/greenfrvr/dev/stream/stream-video-js/sample-apps/react-native/dogfood/node_modules/@stream-io/react-native-callingx/android/src/main/res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="main" generated-set="main$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/greenfrvr/dev/stream/stream-video-js/sample-apps/react-native/dogfood/node_modules/@stream-io/react-native-callingx/android/src/main/res"><file name="ic_user" path="/Users/greenfrvr/dev/stream/stream-video-js/sample-apps/react-native/dogfood/node_modules/@stream-io/react-native-callingx/android/src/main/res/drawable/ic_user.xml" qualifiers="" type="drawable"/><file name="ic_phone_paused_24" path="/Users/greenfrvr/dev/stream/stream-video-js/sample-apps/react-native/dogfood/node_modules/@stream-io/react-native-callingx/android/src/main/res/drawable/ic_phone_paused_24.xml" qualifiers="" type="drawable"/><file name="ic_round_call_24" path="/Users/greenfrvr/dev/stream/stream-video-js/sample-apps/react-native/dogfood/node_modules/@stream-io/react-native-callingx/android/src/main/res/drawable/ic_round_call_24.xml" qualifiers="" type="drawable"/></source></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="debug$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/greenfrvr/dev/stream/stream-video-js/sample-apps/react-native/dogfood/node_modules/@stream-io/react-native-callingx/android/src/debug/res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="debug" generated-set="debug$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/greenfrvr/dev/stream/stream-video-js/sample-apps/react-native/dogfood/node_modules/@stream-io/react-native-callingx/android/src/debug/res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="generated$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/greenfrvr/dev/stream/stream-video-js/sample-apps/react-native/dogfood/node_modules/@stream-io/react-native-callingx/android/build/generated/res/resValues/debug"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="generated" generated-set="generated$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/greenfrvr/dev/stream/stream-video-js/sample-apps/react-native/dogfood/node_modules/@stream-io/react-native-callingx/android/build/generated/res/resValues/debug"/></dataSet><mergedItems/></merger>
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
1<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
-
2<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
|
3
|
-
3 package="io.getstream.rn.callingx" >
|
|
4
|
-
4
|
|
5
|
-
5 <uses-sdk android:minSdkVersion="24" />
|
|
6
|
-
6
|
|
7
|
-
7 <uses-permission android:name="android.permission.MANAGE_OWN_CALLS" />
|
|
8
|
-
7-->/Users/greenfrvr/dev/stream/stream-video-js/sample-apps/react-native/dogfood/node_modules/@stream-io/react-native-callingx/android/src/main/AndroidManifest.xml:3:3-73
|
|
9
|
-
7-->/Users/greenfrvr/dev/stream/stream-video-js/sample-apps/react-native/dogfood/node_modules/@stream-io/react-native-callingx/android/src/main/AndroidManifest.xml:3:20-70
|
|
10
|
-
8 <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
|
|
11
|
-
8-->/Users/greenfrvr/dev/stream/stream-video-js/sample-apps/react-native/dogfood/node_modules/@stream-io/react-native-callingx/android/src/main/AndroidManifest.xml:4:3-75
|
|
12
|
-
8-->/Users/greenfrvr/dev/stream/stream-video-js/sample-apps/react-native/dogfood/node_modules/@stream-io/react-native-callingx/android/src/main/AndroidManifest.xml:4:20-72
|
|
13
|
-
9 <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
|
14
|
-
9-->/Users/greenfrvr/dev/stream/stream-video-js/sample-apps/react-native/dogfood/node_modules/@stream-io/react-native-callingx/android/src/main/AndroidManifest.xml:5:3-75
|
|
15
|
-
9-->/Users/greenfrvr/dev/stream/stream-video-js/sample-apps/react-native/dogfood/node_modules/@stream-io/react-native-callingx/android/src/main/AndroidManifest.xml:5:20-72
|
|
16
|
-
10 <uses-permission android:name="android.permission.FOREGROUND_SERVICE_PHONE_CALL" />
|
|
17
|
-
10-->/Users/greenfrvr/dev/stream/stream-video-js/sample-apps/react-native/dogfood/node_modules/@stream-io/react-native-callingx/android/src/main/AndroidManifest.xml:6:3-86
|
|
18
|
-
10-->/Users/greenfrvr/dev/stream/stream-video-js/sample-apps/react-native/dogfood/node_modules/@stream-io/react-native-callingx/android/src/main/AndroidManifest.xml:6:20-83
|
|
19
|
-
11 <uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT" />
|
|
20
|
-
11-->/Users/greenfrvr/dev/stream/stream-video-js/sample-apps/react-native/dogfood/node_modules/@stream-io/react-native-callingx/android/src/main/AndroidManifest.xml:7:3-79
|
|
21
|
-
11-->/Users/greenfrvr/dev/stream/stream-video-js/sample-apps/react-native/dogfood/node_modules/@stream-io/react-native-callingx/android/src/main/AndroidManifest.xml:7:20-76
|
|
22
|
-
12
|
|
23
|
-
13 <application>
|
|
24
|
-
13-->/Users/greenfrvr/dev/stream/stream-video-js/sample-apps/react-native/dogfood/node_modules/@stream-io/react-native-callingx/android/src/main/AndroidManifest.xml:9:3-29:17
|
|
25
|
-
14 <activity
|
|
26
|
-
14-->/Users/greenfrvr/dev/stream/stream-video-js/sample-apps/react-native/dogfood/node_modules/@stream-io/react-native-callingx/android/src/main/AndroidManifest.xml:10:5-16:69
|
|
27
|
-
15 android:name="io.getstream.rn.callingx.notifications.NotificationReceiverActivity"
|
|
28
|
-
15-->/Users/greenfrvr/dev/stream/stream-video-js/sample-apps/react-native/dogfood/node_modules/@stream-io/react-native-callingx/android/src/main/AndroidManifest.xml:11:7-89
|
|
29
|
-
16 android:excludeFromRecents="true"
|
|
30
|
-
16-->/Users/greenfrvr/dev/stream/stream-video-js/sample-apps/react-native/dogfood/node_modules/@stream-io/react-native-callingx/android/src/main/AndroidManifest.xml:12:7-40
|
|
31
|
-
17 android:exported="false"
|
|
32
|
-
17-->/Users/greenfrvr/dev/stream/stream-video-js/sample-apps/react-native/dogfood/node_modules/@stream-io/react-native-callingx/android/src/main/AndroidManifest.xml:13:7-31
|
|
33
|
-
18 android:noHistory="true"
|
|
34
|
-
18-->/Users/greenfrvr/dev/stream/stream-video-js/sample-apps/react-native/dogfood/node_modules/@stream-io/react-native-callingx/android/src/main/AndroidManifest.xml:14:7-31
|
|
35
|
-
19 android:taskAffinity=""
|
|
36
|
-
19-->/Users/greenfrvr/dev/stream/stream-video-js/sample-apps/react-native/dogfood/node_modules/@stream-io/react-native-callingx/android/src/main/AndroidManifest.xml:15:7-30
|
|
37
|
-
20 android:theme="@android:style/Theme.Translucent.NoTitleBar" />
|
|
38
|
-
20-->/Users/greenfrvr/dev/stream/stream-video-js/sample-apps/react-native/dogfood/node_modules/@stream-io/react-native-callingx/android/src/main/AndroidManifest.xml:16:7-66
|
|
39
|
-
21
|
|
40
|
-
22 <service
|
|
41
|
-
22-->/Users/greenfrvr/dev/stream/stream-video-js/sample-apps/react-native/dogfood/node_modules/@stream-io/react-native-callingx/android/src/main/AndroidManifest.xml:18:5-20:34
|
|
42
|
-
23 android:name="io.getstream.rn.callingx.notifications.NotificationReceiverService"
|
|
43
|
-
23-->/Users/greenfrvr/dev/stream/stream-video-js/sample-apps/react-native/dogfood/node_modules/@stream-io/react-native-callingx/android/src/main/AndroidManifest.xml:19:7-88
|
|
44
|
-
24 android:exported="false" />
|
|
45
|
-
24-->/Users/greenfrvr/dev/stream/stream-video-js/sample-apps/react-native/dogfood/node_modules/@stream-io/react-native-callingx/android/src/main/AndroidManifest.xml:20:7-31
|
|
46
|
-
25 <service
|
|
47
|
-
25-->/Users/greenfrvr/dev/stream/stream-video-js/sample-apps/react-native/dogfood/node_modules/@stream-io/react-native-callingx/android/src/main/AndroidManifest.xml:22:5-27:37
|
|
48
|
-
26 android:name="io.getstream.rn.callingx.CallService"
|
|
49
|
-
26-->/Users/greenfrvr/dev/stream/stream-video-js/sample-apps/react-native/dogfood/node_modules/@stream-io/react-native-callingx/android/src/main/AndroidManifest.xml:23:7-58
|
|
50
|
-
27 android:enabled="true"
|
|
51
|
-
27-->/Users/greenfrvr/dev/stream/stream-video-js/sample-apps/react-native/dogfood/node_modules/@stream-io/react-native-callingx/android/src/main/AndroidManifest.xml:24:7-29
|
|
52
|
-
28 android:exported="false"
|
|
53
|
-
28-->/Users/greenfrvr/dev/stream/stream-video-js/sample-apps/react-native/dogfood/node_modules/@stream-io/react-native-callingx/android/src/main/AndroidManifest.xml:25:7-31
|
|
54
|
-
29 android:foregroundServiceType="phoneCall"
|
|
55
|
-
29-->/Users/greenfrvr/dev/stream/stream-video-js/sample-apps/react-native/dogfood/node_modules/@stream-io/react-native-callingx/android/src/main/AndroidManifest.xml:26:7-48
|
|
56
|
-
30 android:stopWithTask="true" />
|
|
57
|
-
30-->/Users/greenfrvr/dev/stream/stream-video-js/sample-apps/react-native/dogfood/node_modules/@stream-io/react-native-callingx/android/src/main/AndroidManifest.xml:27:7-34
|
|
58
|
-
31 </application>
|
|
59
|
-
32
|
|
60
|
-
33</manifest>
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
-
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
|
3
|
-
package="io.getstream.rn.callingx" >
|
|
4
|
-
|
|
5
|
-
<uses-sdk android:minSdkVersion="24" />
|
|
6
|
-
|
|
7
|
-
<uses-permission android:name="android.permission.MANAGE_OWN_CALLS" />
|
|
8
|
-
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
|
|
9
|
-
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
|
10
|
-
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_PHONE_CALL" />
|
|
11
|
-
<uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT" />
|
|
12
|
-
|
|
13
|
-
<application>
|
|
14
|
-
<activity
|
|
15
|
-
android:name="io.getstream.rn.callingx.notifications.NotificationReceiverActivity"
|
|
16
|
-
android:excludeFromRecents="true"
|
|
17
|
-
android:exported="false"
|
|
18
|
-
android:noHistory="true"
|
|
19
|
-
android:taskAffinity=""
|
|
20
|
-
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
|
|
21
|
-
|
|
22
|
-
<service
|
|
23
|
-
android:name="io.getstream.rn.callingx.notifications.NotificationReceiverService"
|
|
24
|
-
android:exported="false" />
|
|
25
|
-
<service
|
|
26
|
-
android:name="io.getstream.rn.callingx.CallService"
|
|
27
|
-
android:enabled="true"
|
|
28
|
-
android:exported="false"
|
|
29
|
-
android:foregroundServiceType="phoneCall"
|
|
30
|
-
android:stopWithTask="true" />
|
|
31
|
-
</application>
|
|
32
|
-
|
|
33
|
-
</manifest>
|
package/android/bin/build/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
[]
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
0 Warning/Error
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
|
2
|
-
android:width="24dp"
|
|
3
|
-
android:height="24dp"
|
|
4
|
-
android:autoMirrored="true"
|
|
5
|
-
android:tint="#000000"
|
|
6
|
-
android:viewportWidth="24"
|
|
7
|
-
android:viewportHeight="24">
|
|
8
|
-
<path
|
|
9
|
-
android:fillColor="@android:color/white"
|
|
10
|
-
android:pathData="M16,3c-0.55,0 -1,0.45 -1,1v5c0,0.55 0.45,1 1,1s1,-0.45 1,-1L17,4c0,-0.55 -0.45,-1 -1,-1zM19,4v5c0,0.55 0.45,1 1,1s1,-0.45 1,-1L21,4c0,-0.55 -0.45,-1 -1,-1s-1,0.45 -1,1zM19.23,15.26l-2.54,-0.29c-0.61,-0.07 -1.21,0.14 -1.64,0.57l-1.84,1.84c-2.83,-1.44 -5.15,-3.75 -6.59,-6.59l1.85,-1.85c0.43,-0.43 0.64,-1.03 0.57,-1.64l-0.29,-2.52c-0.12,-1.01 -0.97,-1.77 -1.99,-1.77L5.03,3.01c-1.13,0 -2.07,0.94 -2,2.07 0.53,8.54 7.36,15.36 15.89,15.89 1.13,0.07 2.07,-0.87 2.07,-2v-1.73c0.01,-1.01 -0.75,-1.86 -1.76,-1.98z" />
|
|
11
|
-
</vector>
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
|
2
|
-
android:width="24dp"
|
|
3
|
-
android:height="24dp"
|
|
4
|
-
android:autoMirrored="true"
|
|
5
|
-
android:tint="#000000"
|
|
6
|
-
android:viewportWidth="24"
|
|
7
|
-
android:viewportHeight="24">
|
|
8
|
-
<path
|
|
9
|
-
android:fillColor="@android:color/white"
|
|
10
|
-
android:pathData="M19.23,15.26l-2.54,-0.29c-0.61,-0.07 -1.21,0.14 -1.64,0.57l-1.84,1.84c-2.83,-1.44 -5.15,-3.75 -6.59,-6.59l1.85,-1.85c0.43,-0.43 0.64,-1.03 0.57,-1.64l-0.29,-2.52c-0.12,-1.01 -0.97,-1.77 -1.99,-1.77H5.03c-1.13,0 -2.07,0.94 -2,2.07 0.53,8.54 7.36,15.36 15.89,15.89 1.13,0.07 2.07,-0.87 2.07,-2v-1.73c0.01,-1.01 -0.75,-1.86 -1.76,-1.98z" />
|
|
11
|
-
</vector>
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="utf-8"?><!--
|
|
2
|
-
Copyright (c) 2024 Stream.io Inc. All rights reserved.
|
|
3
|
-
|
|
4
|
-
Licensed under the Stream License;
|
|
5
|
-
you may not use this file except in compliance with the License.
|
|
6
|
-
You may obtain a copy of the License at
|
|
7
|
-
|
|
8
|
-
https://github.com/GetStream/stream-video-android/blob/main/LICENSE
|
|
9
|
-
|
|
10
|
-
Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
See the License for the specific language governing permissions and
|
|
14
|
-
limitations under the License.
|
|
15
|
-
-->
|
|
16
|
-
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
|
17
|
-
android:width="24dp"
|
|
18
|
-
android:height="24dp"
|
|
19
|
-
android:viewportWidth="960"
|
|
20
|
-
android:viewportHeight="960">
|
|
21
|
-
<path
|
|
22
|
-
android:fillColor="#CCC"
|
|
23
|
-
android:pathData="M480,0a480,480 0 1,0 0,960a480,480 0 1,0 0,-960" />
|
|
24
|
-
<path
|
|
25
|
-
android:fillColor="#434343"
|
|
26
|
-
android:pathData="M480,480q-66,0 -113,-47t-47,-113q0,-66 47,-113t113,-47q66,0 113,47t47,113q0,66 -47,113t-113,47ZM160,720v-32q0,-34 17.5,-62.5T224,582q62,-31 126,-46.5T480,520q66,0 130,15.5T736,582q29,15 46.5,43.5T800,688v32q0,33 -23.5,56.5T720,800L240,800q-33,0 -56.5,-23.5T160,720Z" />
|
|
27
|
-
</vector>
|