@cloudflare/realtimekit-react-native 0.2.1 → 0.2.2-staging.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/src/main/java/com/cloudflare/realtimekit/CoreModule.java +19 -0
- package/android/src/main/java/com/cloudflare/realtimekit/ForegroundService.java +2 -4
- package/android/src/main/java/com/cloudflare/realtimekit/RTKHelperModule.java +1 -2
- package/android/src/main/java/com/cloudflare/realtimekit/RTKLogger.java +116 -0
- package/android/src/main/java/com/cloudflare/realtimekit/incallmanager/AppRTCBluetoothManager.java +75 -74
- package/android/src/main/java/com/cloudflare/realtimekit/incallmanager/AppRTCUtils.java +10 -9
- package/android/src/main/java/com/cloudflare/realtimekit/incallmanager/InCallManagerModule.java +175 -872
- package/android/src/main/java/com/cloudflare/realtimekit/incallmanager/InCallProximityManager.java +9 -8
- package/android/src/main/java/com/cloudflare/realtimekit/incallmanager/InCallWakeLockUtils.java +8 -7
- package/ios/BroadcastEventEmitter.m +9 -0
- package/ios/Core.h +9 -1
- package/ios/Core.m +42 -0
- package/ios/RNInCallManager.m +639 -700
- package/ios/RTKLogger.h +51 -0
- package/ios/RTKLogger.m +107 -0
- package/ios/RTKRNBackgroundTimer.m +8 -7
- package/ios/RTKRNPermissionHandlerNotifications.m +12 -0
- package/ios/RTKRNPermissions.m +24 -1
- package/ios/RTKScreensharePickerView.m +6 -0
- package/ios/screenshare/RTKScreenshareHandler.swift +1 -1
- package/ios/screenshare/RTKScreenshareUploader.swift +3 -3
- package/ios/screenshare/RTKSocketConnection.swift +8 -8
- package/lib/commonjs/LocalMediaHandler.js +82 -24
- package/lib/commonjs/LocalMediaHandler.js.map +1 -1
- package/lib/commonjs/LocalMediaUtils.js +60 -5
- package/lib/commonjs/LocalMediaUtils.js.map +1 -1
- package/lib/commonjs/NativeAudioManager.js +7 -3
- package/lib/commonjs/NativeAudioManager.js.map +1 -1
- package/lib/commonjs/utils/version.js +1 -1
- package/lib/commonjs/utils/version.js.map +1 -1
- package/lib/module/LocalMediaHandler.js +82 -24
- package/lib/module/LocalMediaHandler.js.map +1 -1
- package/lib/module/LocalMediaUtils.js +60 -5
- package/lib/module/LocalMediaUtils.js.map +1 -1
- package/lib/module/NativeAudioManager.js +7 -3
- package/lib/module/NativeAudioManager.js.map +1 -1
- package/lib/module/utils/version.js +1 -1
- package/lib/module/utils/version.js.map +1 -1
- package/lib/typescript/LocalMediaHandler.d.ts +1 -0
- package/lib/typescript/LocalMediaUtils.d.ts +1 -0
- package/lib/typescript/NativeAudioManager.d.ts +1 -0
- package/lib/typescript/utils/version.d.ts +1 -1
- package/package.json +2 -4
package/android/src/main/java/com/cloudflare/realtimekit/incallmanager/InCallProximityManager.java
CHANGED
|
@@ -29,6 +29,7 @@ import java.lang.Runnable;
|
|
|
29
29
|
|
|
30
30
|
import com.facebook.react.bridge.UiThreadUtil;
|
|
31
31
|
|
|
32
|
+
import com.cloudflare.realtimekit.RTKLogger;
|
|
32
33
|
import com.cloudflare.realtimekit.incallmanager.AppRTCProximitySensor;
|
|
33
34
|
|
|
34
35
|
public class InCallProximityManager {
|
|
@@ -45,7 +46,7 @@ public class InCallProximityManager {
|
|
|
45
46
|
}
|
|
46
47
|
|
|
47
48
|
private InCallProximityManager(Context context, final InCallManagerModule inCallManager) {
|
|
48
|
-
|
|
49
|
+
RTKLogger.d("InCallProximity", "InCallProximityManager");
|
|
49
50
|
checkProximitySupport(context);
|
|
50
51
|
if (proximitySupported) {
|
|
51
52
|
UiThreadUtil.runOnUiThread(() -> {
|
|
@@ -88,18 +89,18 @@ public class InCallProximityManager {
|
|
|
88
89
|
mProximityLock.setReferenceCounted(false);
|
|
89
90
|
}
|
|
90
91
|
} catch (Exception e) {
|
|
91
|
-
|
|
92
|
+
RTKLogger.d("InCallProximity", "Failed to get proximity screen locker. exception: " + e.getMessage());
|
|
92
93
|
}
|
|
93
94
|
|
|
94
95
|
if (mProximityLock != null) {
|
|
95
|
-
|
|
96
|
+
RTKLogger.d("InCallProximity", "use native screen locker...");
|
|
96
97
|
try {
|
|
97
98
|
mPowerManagerRelease = mProximityLock.getClass().getDeclaredMethod("release", int.class);
|
|
98
99
|
} catch (Exception e) {
|
|
99
|
-
|
|
100
|
+
RTKLogger.d("InCallProximity", "failed to get proximity screen locker: `release()`. exception: " + e.getMessage());
|
|
100
101
|
}
|
|
101
102
|
} else {
|
|
102
|
-
|
|
103
|
+
RTKLogger.d("InCallProximity", "fallback to old school screen locker...");
|
|
103
104
|
}
|
|
104
105
|
}
|
|
105
106
|
|
|
@@ -137,7 +138,7 @@ public class InCallProximityManager {
|
|
|
137
138
|
}
|
|
138
139
|
synchronized (mProximityLock) {
|
|
139
140
|
if (!mProximityLock.isHeld()) {
|
|
140
|
-
|
|
141
|
+
RTKLogger.d("InCallProximity", "acquireProximityWakeLock()");
|
|
141
142
|
mProximityLock.acquire();
|
|
142
143
|
}
|
|
143
144
|
}
|
|
@@ -152,9 +153,9 @@ public class InCallProximityManager {
|
|
|
152
153
|
try {
|
|
153
154
|
int flags = waitForNoProximity ? PowerManager.RELEASE_FLAG_WAIT_FOR_NO_PROXIMITY : 0;
|
|
154
155
|
mPowerManagerRelease.invoke(mProximityLock, flags);
|
|
155
|
-
|
|
156
|
+
RTKLogger.d("InCallProximity", "releaseProximityWakeLock()");
|
|
156
157
|
} catch (Exception e) {
|
|
157
|
-
|
|
158
|
+
RTKLogger.e("InCallProximity", "failed to release proximity lock. e: " + e.getMessage());
|
|
158
159
|
}
|
|
159
160
|
}
|
|
160
161
|
}
|
package/android/src/main/java/com/cloudflare/realtimekit/incallmanager/InCallWakeLockUtils.java
CHANGED
|
@@ -20,6 +20,7 @@ import android.content.Context;
|
|
|
20
20
|
import android.os.PowerManager;
|
|
21
21
|
import android.os.PowerManager.WakeLock;
|
|
22
22
|
import android.util.Log;
|
|
23
|
+
import com.cloudflare.realtimekit.RTKLogger;
|
|
23
24
|
|
|
24
25
|
public class InCallWakeLockUtils {
|
|
25
26
|
private static final String TAG = "realtimekit:InCallWakeLock";
|
|
@@ -74,43 +75,43 @@ public class InCallWakeLockUtils {
|
|
|
74
75
|
|
|
75
76
|
public boolean acquireFullWakeLock() {
|
|
76
77
|
boolean sta = _acquireWakeLock(mFullLock);
|
|
77
|
-
|
|
78
|
+
RTKLogger.d("InCallWakeLock", "acquireFullWakeLock(). sta=" + sta);
|
|
78
79
|
return sta;
|
|
79
80
|
}
|
|
80
81
|
|
|
81
82
|
public boolean releaseFullWakeLock() {
|
|
82
83
|
boolean sta = _releaseWakeLock(mFullLock);
|
|
83
|
-
|
|
84
|
+
RTKLogger.d("InCallWakeLock", "releaseFullWakeLock(). sta=" + sta);
|
|
84
85
|
return sta;
|
|
85
86
|
}
|
|
86
87
|
|
|
87
88
|
public boolean acquirePokeFullWakeLock() {
|
|
88
89
|
boolean sta = _acquireWakeLock(mPokeFullLock);
|
|
89
|
-
|
|
90
|
+
RTKLogger.d("InCallWakeLock", "acquirePokeFullWakeLock(). sta=" + sta);
|
|
90
91
|
return sta;
|
|
91
92
|
}
|
|
92
93
|
|
|
93
94
|
public boolean releasePokeFullWakeLock() {
|
|
94
95
|
boolean sta = _releaseWakeLock(mPokeFullLock);
|
|
95
|
-
|
|
96
|
+
RTKLogger.d("InCallWakeLock", "releasePokeFullWakeLock(). sta=" + sta);
|
|
96
97
|
return sta;
|
|
97
98
|
}
|
|
98
99
|
|
|
99
100
|
public boolean acquirePartialWakeLock() {
|
|
100
101
|
boolean sta = _acquireWakeLock(mPartialLock);
|
|
101
|
-
|
|
102
|
+
RTKLogger.d("InCallWakeLock", "acquirePartialWakeLock(). sta=" + sta);
|
|
102
103
|
return sta;
|
|
103
104
|
}
|
|
104
105
|
|
|
105
106
|
public boolean releasePartialWakeLock() {
|
|
106
107
|
boolean sta = _releaseWakeLock(mPartialLock);
|
|
107
|
-
|
|
108
|
+
RTKLogger.d("InCallWakeLock", "releasePartialWakeLock(). sta=" + sta);
|
|
108
109
|
return sta;
|
|
109
110
|
}
|
|
110
111
|
|
|
111
112
|
public boolean acquirePokeFullWakeLockReleaseAfter(long timeout) {
|
|
112
113
|
boolean sta = _acquireWakeLock(mPokeFullLock, timeout);
|
|
113
|
-
|
|
114
|
+
RTKLogger.d("InCallWakeLock", String.format("acquirePokeFullWakeLockReleaseAfter() timeout=%s, sta=%s", timeout, sta));
|
|
114
115
|
return sta;
|
|
115
116
|
}
|
|
116
117
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
#import "BroadcastEventEmitter.h"
|
|
2
|
+
#import "RTKLogger.h"
|
|
2
3
|
#import <React/RCTLog.h>
|
|
3
4
|
|
|
4
5
|
// Define the notification names
|
|
@@ -29,6 +30,7 @@ RCT_EXPORT_MODULE();
|
|
|
29
30
|
- (instancetype)init {
|
|
30
31
|
self = [super init];
|
|
31
32
|
if (self) {
|
|
33
|
+
[RTKLogger debug:@"BroadcastEventEmitter: Initializing and registering Darwin notification observers"];
|
|
32
34
|
// Listen for the broadcast started notification
|
|
33
35
|
CFNotificationCenterAddObserver(
|
|
34
36
|
CFNotificationCenterGetDarwinNotifyCenter(),
|
|
@@ -38,6 +40,7 @@ RCT_EXPORT_MODULE();
|
|
|
38
40
|
NULL,
|
|
39
41
|
CFNotificationSuspensionBehaviorDeliverImmediately
|
|
40
42
|
);
|
|
43
|
+
[RTKLogger debug:@"BroadcastEventEmitter: Registered observer for %@", BroadcastStartedNotification];
|
|
41
44
|
|
|
42
45
|
// Listen for the broadcast stopped notification
|
|
43
46
|
CFNotificationCenterAddObserver(
|
|
@@ -48,6 +51,7 @@ RCT_EXPORT_MODULE();
|
|
|
48
51
|
NULL,
|
|
49
52
|
CFNotificationSuspensionBehaviorDeliverImmediately
|
|
50
53
|
);
|
|
54
|
+
[RTKLogger debug:@"BroadcastEventEmitter: Registered observer for %@", BroadcastStoppedNotification];
|
|
51
55
|
}
|
|
52
56
|
return self;
|
|
53
57
|
}
|
|
@@ -65,8 +69,12 @@ void broadcastEventCallback(CFNotificationCenterRef center,
|
|
|
65
69
|
// Handle incoming notifications and send events to React Native
|
|
66
70
|
- (void)handleNotification:(CFNotificationName)name {
|
|
67
71
|
NSString *eventName = (__bridge NSString *)name;
|
|
72
|
+
[RTKLogger debug:@"BroadcastEventEmitter: Received Darwin notification: %@", eventName];
|
|
68
73
|
if (hasListeners && [self canSendEvents]) {
|
|
74
|
+
[RTKLogger debug:@"BroadcastEventEmitter: Sending event to React Native: %@", eventName];
|
|
69
75
|
[self sendEventWithName:eventName body:nil];
|
|
76
|
+
} else {
|
|
77
|
+
[RTKLogger warning:@"BroadcastEventEmitter: Cannot send event %@ - hasListeners: %d, canSendEvents: %d", eventName, hasListeners, [self canSendEvents]];
|
|
70
78
|
}
|
|
71
79
|
}
|
|
72
80
|
|
|
@@ -82,6 +90,7 @@ void broadcastEventCallback(CFNotificationCenterRef center,
|
|
|
82
90
|
|
|
83
91
|
// Remove observers on deallocation
|
|
84
92
|
- (void)dealloc {
|
|
93
|
+
[RTKLogger debug:@"BroadcastEventEmitter: Removing all Darwin notification observers"];
|
|
85
94
|
CFNotificationCenterRemoveEveryObserver(
|
|
86
95
|
CFNotificationCenterGetDarwinNotifyCenter(),
|
|
87
96
|
(__bridge const void *)(self)
|
package/ios/Core.h
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
#import <React/RCTBridgeModule.h>
|
|
2
2
|
|
|
3
3
|
@interface Core : NSObject <RCTBridgeModule>
|
|
4
|
+
|
|
4
5
|
-(NSString*)getRandomBase64:(NSUInteger)byteLength;
|
|
5
|
-
|
|
6
|
+
|
|
7
|
+
+ (void)enableLogging;
|
|
8
|
+
+ (void)disableLogging;
|
|
9
|
+
+ (void)setLoggingEnabled:(BOOL)enabled;
|
|
10
|
+
+ (void)setLogLevel:(NSInteger)level;
|
|
11
|
+
+ (BOOL)getLoggingEnabled;
|
|
12
|
+
|
|
13
|
+
@end
|
package/ios/Core.m
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
#import "Core.h"
|
|
2
|
+
#import "RTKLogger.h"
|
|
2
3
|
|
|
3
4
|
@implementation Core
|
|
4
5
|
|
|
@@ -25,4 +26,45 @@ RCT_EXPORT_SYNCHRONOUS_TYPED_METHOD(NSString*, getRandomBase64:(NSUInteger)byteL
|
|
|
25
26
|
return [data base64EncodedStringWithOptions:0];
|
|
26
27
|
}
|
|
27
28
|
|
|
29
|
+
#pragma mark - RTKLogger Control
|
|
30
|
+
|
|
31
|
+
RCT_EXPORT_METHOD(enableLogging)
|
|
32
|
+
{
|
|
33
|
+
// Enable Objective-C logger
|
|
34
|
+
[RTKLogger sharedInstance].loggingEnabled = YES;
|
|
35
|
+
|
|
36
|
+
[RTKLogger info:@"RTKLogger logging enabled"];
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
RCT_EXPORT_METHOD(disableLogging)
|
|
40
|
+
{
|
|
41
|
+
[RTKLogger info:@"RTKLogger logging disabled"];
|
|
42
|
+
|
|
43
|
+
// Disable Objective-C logger
|
|
44
|
+
[RTKLogger sharedInstance].loggingEnabled = NO;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
RCT_EXPORT_METHOD(setLoggingEnabled:(BOOL)enabled)
|
|
48
|
+
{
|
|
49
|
+
// Set for Objective-C logger
|
|
50
|
+
[RTKLogger sharedInstance].loggingEnabled = enabled;
|
|
51
|
+
|
|
52
|
+
[RTKLogger info:@"RTKLogger logging %@", enabled ? @"enabled" : @"disabled"];
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
RCT_EXPORT_METHOD(setLogLevel:(NSInteger)level)
|
|
56
|
+
{
|
|
57
|
+
// Set for Objective-C logger
|
|
58
|
+
[RTKLogger sharedInstance].minimumLogLevel = (RTKLogLevel)level;
|
|
59
|
+
|
|
60
|
+
[RTKLogger info:@"RTKLogger minimum log level set to: %ld", (long)level];
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
RCT_EXPORT_METHOD(getLoggingEnabled:(RCTPromiseResolveBlock)resolve
|
|
64
|
+
reject:(RCTPromiseRejectBlock)reject)
|
|
65
|
+
{
|
|
66
|
+
BOOL enabled = [RTKLogger sharedInstance].loggingEnabled;
|
|
67
|
+
resolve(@(enabled));
|
|
68
|
+
}
|
|
69
|
+
|
|
28
70
|
@end
|