@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.
Files changed (43) hide show
  1. package/android/src/main/java/com/cloudflare/realtimekit/CoreModule.java +19 -0
  2. package/android/src/main/java/com/cloudflare/realtimekit/ForegroundService.java +2 -4
  3. package/android/src/main/java/com/cloudflare/realtimekit/RTKHelperModule.java +1 -2
  4. package/android/src/main/java/com/cloudflare/realtimekit/RTKLogger.java +116 -0
  5. package/android/src/main/java/com/cloudflare/realtimekit/incallmanager/AppRTCBluetoothManager.java +75 -74
  6. package/android/src/main/java/com/cloudflare/realtimekit/incallmanager/AppRTCUtils.java +10 -9
  7. package/android/src/main/java/com/cloudflare/realtimekit/incallmanager/InCallManagerModule.java +175 -872
  8. package/android/src/main/java/com/cloudflare/realtimekit/incallmanager/InCallProximityManager.java +9 -8
  9. package/android/src/main/java/com/cloudflare/realtimekit/incallmanager/InCallWakeLockUtils.java +8 -7
  10. package/ios/BroadcastEventEmitter.m +9 -0
  11. package/ios/Core.h +9 -1
  12. package/ios/Core.m +42 -0
  13. package/ios/RNInCallManager.m +639 -700
  14. package/ios/RTKLogger.h +51 -0
  15. package/ios/RTKLogger.m +107 -0
  16. package/ios/RTKRNBackgroundTimer.m +8 -7
  17. package/ios/RTKRNPermissionHandlerNotifications.m +12 -0
  18. package/ios/RTKRNPermissions.m +24 -1
  19. package/ios/RTKScreensharePickerView.m +6 -0
  20. package/ios/screenshare/RTKScreenshareHandler.swift +1 -1
  21. package/ios/screenshare/RTKScreenshareUploader.swift +3 -3
  22. package/ios/screenshare/RTKSocketConnection.swift +8 -8
  23. package/lib/commonjs/LocalMediaHandler.js +82 -24
  24. package/lib/commonjs/LocalMediaHandler.js.map +1 -1
  25. package/lib/commonjs/LocalMediaUtils.js +60 -5
  26. package/lib/commonjs/LocalMediaUtils.js.map +1 -1
  27. package/lib/commonjs/NativeAudioManager.js +7 -3
  28. package/lib/commonjs/NativeAudioManager.js.map +1 -1
  29. package/lib/commonjs/utils/version.js +1 -1
  30. package/lib/commonjs/utils/version.js.map +1 -1
  31. package/lib/module/LocalMediaHandler.js +82 -24
  32. package/lib/module/LocalMediaHandler.js.map +1 -1
  33. package/lib/module/LocalMediaUtils.js +60 -5
  34. package/lib/module/LocalMediaUtils.js.map +1 -1
  35. package/lib/module/NativeAudioManager.js +7 -3
  36. package/lib/module/NativeAudioManager.js.map +1 -1
  37. package/lib/module/utils/version.js +1 -1
  38. package/lib/module/utils/version.js.map +1 -1
  39. package/lib/typescript/LocalMediaHandler.d.ts +1 -0
  40. package/lib/typescript/LocalMediaUtils.d.ts +1 -0
  41. package/lib/typescript/NativeAudioManager.d.ts +1 -0
  42. package/lib/typescript/utils/version.d.ts +1 -1
  43. package/package.json +2 -4
@@ -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
- // Log.d(TAG, "InCallProximityManager");
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
- // Log.d(TAG, "Failed to get proximity screen locker. exception: ", e);
92
+ RTKLogger.d("InCallProximity", "Failed to get proximity screen locker. exception: " + e.getMessage());
92
93
  }
93
94
 
94
95
  if (mProximityLock != null) {
95
- // Log.d(TAG, "use native screen locker...");
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
- // Log.d(TAG, "failed to get proximity screen locker: `release()`. exception: ", e);
100
+ RTKLogger.d("InCallProximity", "failed to get proximity screen locker: `release()`. exception: " + e.getMessage());
100
101
  }
101
102
  } else {
102
- // Log.d(TAG, "fallback to old school screen locker...");
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
- // Log.d(TAG, "acquireProximityWakeLock()");
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
- // Log.d(TAG, "releaseProximityWakeLock()");
156
+ RTKLogger.d("InCallProximity", "releaseProximityWakeLock()");
156
157
  } catch (Exception e) {
157
- // Log.e(TAG, "failed to release proximity lock. e: ", e);
158
+ RTKLogger.e("InCallProximity", "failed to release proximity lock. e: " + e.getMessage());
158
159
  }
159
160
  }
160
161
  }
@@ -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
- // Log.d(TAG, "acquireFullWakeLock(). sta=" + sta);
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
- // Log.d(TAG, "releaseFullWakeLock(). sta=" + sta);
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
- // Log.d(TAG, "acquirePokeFullWakeLock(). sta=" + sta);
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
- // Log.d(TAG, "releasePokeFullWakeLock(). sta=" + sta);
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
- // Log.d(TAG, "acquirePartialWakeLock(). sta=" + sta);
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
- // Log.d(TAG, "releasePartialWakeLock(). sta=" + sta);
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
- // Log.d(TAG, String.format("acquirePokeFullWakeLockReleaseAfter() timeout=%s, sta=%s", timeout, sta));
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
- @end
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