@voltkit-rtc/react-native 0.1.0 → 0.1.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/CHANGELOG.md CHANGED
@@ -1,5 +1,30 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.1
4
+
5
+ 2026-10-27. Two fixes from the testers' report on 0.1.0 (RN010-1, RN010-2). Peer dependency `@voltkit-rtc/client`
6
+ `>=0.9.13 <0.10.0` (0.9.13 fixes C0912-1 and C0912-2 in the client this package runs: a noise-suppressed microphone
7
+ back from the background, and a repeated switch in the same direction); the other peers are unchanged. The native code
8
+ is the same, but build the app again after upgrading: its version check reads this package's version.
9
+
10
+ - **The call service follows the client's own background camera setting** (RN010-1). A client the app made with
11
+ `createClient(wsUrl, token, { background: { pauseCamera: false } })` (a live streamer) and passed as the provider's
12
+ `client` prop was run with the provider's default, `pauseCamera: true`: the service never asked for the `camera`
13
+ foreground service type, and Android cut the camera in the background; the reverse mix asked for a camera type the
14
+ app did not need. The service reads `pauseCameraInBackground` from the client it runs for, since the client is what
15
+ pauses the camera; the provider's `background.pauseCamera` stands in only when the client's options cannot be read.
16
+ A client the provider makes is unchanged.
17
+ - **One `onError` per call-service failure** (RN010-2). A refused start or update was reported twice: the native side
18
+ tells a `failed` event and then rejects the call, and both reached `onError`. A `failed` event while a start or update
19
+ is in flight is its rejection's twin and is reported once; a failure Android reports on its own, with nothing in
20
+ flight, still reaches `onError`.
21
+ - **A client whose state cannot be read never stops the call service** (the verifier's F3 on this release). A client
22
+ wrapped so that reading its options throws (a logging or forbidding `Proxy`) is read like one without options: the
23
+ provider's `background.pauseCamera` stands in, and nothing is reported. A client whose state cannot be read at all
24
+ (a read of `local` that throws) is left out of the service, said once through `onError` as `media-unavailable`
25
+ `{ feature: 'callService' }`, and never keeps the other calls in the app from theirs; before, the throw escaped the
26
+ provider's effect and every later decision for every call failed the same way.
27
+
3
28
  ## 0.1.0
4
29
 
5
30
  2026-10-27. The first release: VoltKit RTC calls, audio rooms and live video in React Native, on Android, with iOS in
package/README.md CHANGED
@@ -78,7 +78,7 @@ library, and under Expo's `tsconfig.base` alike.
78
78
  | React Native | 0.82 or newer, with the New Architecture; tested with 0.88.0 and Hermes |
79
79
  | React | 19.1 or newer |
80
80
  | react-native-webrtc | 155.0.1 or a later 155.x |
81
- | `@voltkit-rtc/client` | 0.9.12 or a later 0.9.x |
81
+ | `@voltkit-rtc/client` | 0.9.13 or a later 0.9.x |
82
82
  | `@voltkit-rtc/react` | 0.1.1 or a later 0.1.x |
83
83
  | Android | minSdk 24 (Android 7.0), react-native-webrtc's minimum |
84
84
  | Expo | SDK 58 or newer, in a development build; not Expo Go |
@@ -828,7 +828,7 @@ what the user has granted and what the call publishes:
828
828
  | --- | --- |
829
829
  | `microphone` | `RECORD_AUDIO` is granted: the call keeps its microphone |
830
830
  | `mediaPlayback` | otherwise: a listener, who keeps hearing the call |
831
- | `camera` | only if you declare it, with `FOREGROUND_SERVICE_CAMERA`, and keep the camera on in the background with `background={{ pauseCamera: false }}` |
831
+ | `camera` | only if you declare it, with `FOREGROUND_SERVICE_CAMERA`, and keep the camera on in the background with `background={{ pauseCamera: false }}` (for a client you made, its own `createClient(..., { background: { pauseCamera: false } })`: the service reads the client's setting) |
832
832
  | `mediaProjection` | only while a screen share is live, if you declare it (with `FOREGROUND_SERVICE_MEDIA_PROJECTION` on Android 14 and later) |
833
833
 
834
834
  `useCallService(): CallServiceState` says whether the app declares the service
@@ -1157,7 +1157,9 @@ Flat-minute (legacy) projects get `usageLimit` instead:
1157
1157
  `createClient(wsUrl, token, options?)` makes a `StreamClient` for React Native,
1158
1158
  not yet connected: pass it to the provider's `client` prop, or call `connect()`
1159
1159
  yourself, and `close()` it when you are done, since the provider never closes a
1160
- client it was given. `CreateClientOptions` is
1160
+ client it was given. The background pause and the call service's types follow
1161
+ that client's own `background` options; the provider's `background` prop only
1162
+ describes a client the provider makes. `CreateClientOptions` is
1161
1163
  `{ background?: BackgroundOptions; clientOptions?: ClientOptions }`. It throws
1162
1164
  `media-unavailable` (`webrtc-missing`) where react-native-webrtc's native module
1163
1165
  is missing. Never make one with `new StreamClient(...)` alone, which would look
@@ -1495,7 +1497,7 @@ Bluetooth routing tested in unit tests, not on hardware.** Tested with:
1495
1497
  | React | 19.3.0 |
1496
1498
  | react-native-webrtc | 155.0.1 (WebRTC `org.jitsi:webrtc` 155.0.1) |
1497
1499
  | Expo | SDK 58 (`expo` 58.0.19), development build, R8-minified release build |
1498
- | `@voltkit-rtc/client` | 0.9.12 |
1500
+ | `@voltkit-rtc/client` | 0.9.13 |
1499
1501
  | `@voltkit-rtc/react` | 0.1.1 |
1500
1502
  | Android | the Android emulator (a Pixel 10 Pro AVD, x86_64, API 37.1, Google Play image); earpiece and Bluetooth routing in unit tests, not on hardware |
1501
1503
  | iOS | not tested: preview |
@@ -40,10 +40,14 @@ const NOT_DECLARED = Object.freeze({
40
40
  types: Object.freeze([])
41
41
  });
42
42
  class CallServices {
43
- /** What each call wants, read afresh at every decision: a call's state is its client's, which emits no event for some changes. */
43
+ /**
44
+ * What each call wants, read afresh at every decision: a call's state is its client's, which emits no event for some
45
+ * changes. With how to tell the call when its state cannot be read at all.
46
+ */
44
47
  wants = new Map();
45
48
  running = false;
46
- busy = false;
49
+ /** The call to the native module under way: a `failed` event during a start or update is its rejection's twin. */
50
+ inFlight = null;
47
51
  again = false;
48
52
  /** The options the service runs with, as sent. */
49
53
  applied = null;
@@ -52,8 +56,11 @@ class CallServices {
52
56
  watching = null;
53
57
  state = null;
54
58
  listeners = new Set();
55
- set(key, want) {
56
- if (want) this.wants.set(key, want);else this.wants.delete(key);
59
+ set(key, want, report = () => undefined) {
60
+ if (want) this.wants.set(key, {
61
+ want,
62
+ report
63
+ });else this.wants.delete(key);
57
64
  this.reconcile();
58
65
  }
59
66
 
@@ -99,14 +106,36 @@ class CallServices {
99
106
  for (const listener of [...this.listeners]) listener();
100
107
  }
101
108
  live() {
102
- return [...this.wants.values()].map(want => want()).filter(w => w.live);
109
+ const live = [];
110
+ for (const [key, {
111
+ want,
112
+ report
113
+ }] of [...this.wants]) {
114
+ let w;
115
+ try {
116
+ w = want();
117
+ } catch (err) {
118
+ // A client whose state cannot be read (a wrapper that throws on a read): this call is left out of the service
119
+ // for good, said once, and never keeps the other calls from theirs (the verifier's F3 on 0.1.1).
120
+ this.wants.delete(key);
121
+ (0, _errors.logError)('a call is left out of the call service: its client\'s state could not be read', err);
122
+ try {
123
+ report((0, _errors.callServiceFailed)(`this call is left out, its client's state could not be read: ${(0, _errors.describeError)(err)}`));
124
+ } catch (reportErr) {
125
+ (0, _errors.logError)('onError threw', reportErr);
126
+ }
127
+ continue;
128
+ }
129
+ if (w.live) live.push(w);
130
+ }
131
+ return live;
103
132
  }
104
133
  reconcile() {
105
134
  const module = (0, _native.nativeModule)();
106
135
  if (!module || !(0, _native.nativeConstants)()?.callServiceDeclared) return;
107
136
  const live = this.live();
108
137
  this.watch(module, live.length > 0 || this.running);
109
- if (this.busy) {
138
+ if (this.inFlight) {
110
139
  this.again = true;
111
140
  return;
112
141
  }
@@ -123,7 +152,7 @@ class CallServices {
123
152
  this.run(module, this.running ? 'update' : 'start', options);
124
153
  }
125
154
  run(module, what, options) {
126
- this.busy = true;
155
+ this.inFlight = what;
127
156
  const key = options ? JSON.stringify(options) : null;
128
157
  const call = what === 'stop' ? module.stopCallService() : what === 'start' ? module.startCallService(options) : module.updateCallService(options);
129
158
  call.then(status => {
@@ -144,7 +173,7 @@ class CallServices {
144
173
  const error = (0, _errors.callServiceFailed)((0, _errors.describeError)(err));
145
174
  for (const want of this.live()) want.report(error);
146
175
  }).finally(() => {
147
- this.busy = false;
176
+ this.inFlight = null;
148
177
  if (this.again) {
149
178
  this.again = false;
150
179
  this.reconcile();
@@ -201,6 +230,8 @@ class CallServices {
201
230
  return;
202
231
  case 'failed':
203
232
  {
233
+ // VoltkitCallService.runWith tells `failed` and then rejects the start or update: the rejection reports it (RN010-2).
234
+ if (this.inFlight === 'start' || this.inFlight === 'update') return;
204
235
  const error = (0, _errors.callServiceFailed)(message || 'Android refused it');
205
236
  for (const want of this.live()) want.report(error);
206
237
  return;
@@ -286,7 +317,8 @@ function NativeSession({
286
317
  (0, _react.useEffect)(() => {
287
318
  if (!client || !wantsService || !(0, _native.nativeModule)()) return;
288
319
  const key = {};
289
- callServices.set(key, () => wantOf(client, latest.current, error => onError.current?.(error)));
320
+ const report = error => onError.current?.(error);
321
+ callServices.set(key, () => wantOf(client, latest.current, report), report);
290
322
  const update = () => callServices.changed();
291
323
  // publish() and a camera switch emit no event of their own: useLocalMedia's calls say so through the local session.
292
324
  const offs = [...['connectionStateChanged', 'localMediaChanged', 'localStreamChanged', 'screenShareStarted', 'screenShareEnded'].map(event => client.on(event, update)), (0, _localMedia.localSessionOf)(client).subscribe(update)];
@@ -305,10 +337,29 @@ function wantOf(client, latest, report) {
305
337
  micPublished: (local?.getAudioTracks().length ?? 0) > 0,
306
338
  cameraPublished: (local?.getVideoTracks().length ?? 0) > 0,
307
339
  sharing: (0, _localMedia.localSessionOf)(client).screen !== null,
308
- pauseCamera: latest.pauseCamera,
340
+ pauseCamera: pausesCameraInBackground(client) ?? latest.pauseCamera,
309
341
  text: latest.text,
310
342
  leave: () => client.close(),
311
343
  report
312
344
  };
313
345
  }
346
+
347
+ /**
348
+ * Whether the client switches its camera off in the background, from its own options: the provider's `background` only
349
+ * describes a client the provider made, and an app-made one (`createClient`, the `client` prop) keeps its camera on with
350
+ * `pauseCamera: false` while the service was asked for no camera type, so Android cut the camera (RN010-1). The client
351
+ * pauses only with `pauseCameraInBackground === true` (left out, the camera runs on). Null when the options cannot be
352
+ * read (missing, not an object, or a read that throws: a wrapped or stubbed client): the provider's setting stands in.
353
+ */
354
+ function pausesCameraInBackground(client) {
355
+ let options;
356
+ try {
357
+ options = client.options;
358
+ } catch {
359
+ // A wrapper that forbids the read (a logging or sealing Proxy): not an error, the provider's setting stands in.
360
+ return null;
361
+ }
362
+ if (!options || typeof options !== 'object') return null;
363
+ return options.pauseCameraInBackground === true;
364
+ }
314
365
  //# sourceMappingURL=native-session.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_react2","_native","_errors","_audio","_localMedia","_visibility","_common","NOT_DECLARED","Object","freeze","declared","running","types","CallServices","wants","Map","busy","again","applied","failed","watching","state","listeners","Set","set","key","want","delete","reconcile","changed","subscribe","listener","add","snapshot","module","nativeModule","nativeConstants","callServiceDeclared","status","getCallServiceStatus","err","logError","publish","now","next","join","live","values","map","filter","w","watch","length","run","options","merged","JSON","stringify","safeVisible","what","call","stopCallService","startCallService","updateCallService","then","error","callServiceFailed","describeError","report","finally","on","visibility","nativeVisibility","stops","visible","listen","onCallServiceEvent","event","onEvent","type","message","stop","leave","isAppVisible","text","reverse","pick","field","find","title","leaveLabel","pauseCamera","some","cameraPublished","micPublished","sharing","callServices","useCallService","useSyncExternalStore","NativeSession","audio","callService","onError","client","useVoltkitClient","manage","speakerphone","undefined","wantsService","useMemo","latest","useRef","useEffect","current","localSessionOf","hold","audioHoldOf","retain","sync","connectionState","acquire","speakerPreference","release","off","unretain","wantOf","update","offs","local","localStream","getAudioTracks","getVideoTracks","screen","close"],"sourceRoot":"../../src","sources":["native-session.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_react2","_native","_errors","_audio","_localMedia","_visibility","_common","NOT_DECLARED","Object","freeze","declared","running","types","CallServices","wants","Map","inFlight","again","applied","failed","watching","state","listeners","Set","set","key","want","report","undefined","delete","reconcile","changed","subscribe","listener","add","snapshot","module","nativeModule","nativeConstants","callServiceDeclared","status","getCallServiceStatus","err","logError","publish","now","next","join","live","w","callServiceFailed","describeError","reportErr","push","watch","length","run","options","merged","JSON","stringify","safeVisible","what","call","stopCallService","startCallService","updateCallService","then","error","finally","on","visibility","nativeVisibility","stops","visible","listen","onCallServiceEvent","event","onEvent","type","message","stop","leave","isAppVisible","text","reverse","pick","field","find","title","leaveLabel","pauseCamera","some","cameraPublished","micPublished","sharing","callServices","useCallService","useSyncExternalStore","NativeSession","audio","callService","onError","client","useVoltkitClient","manage","speakerphone","wantsService","useMemo","latest","useRef","useEffect","current","localSessionOf","hold","audioHoldOf","retain","sync","connectionState","acquire","speakerPreference","release","off","unretain","wantOf","update","offs","map","local","localStream","getAudioTracks","getVideoTracks","screen","pausesCameraInBackground","close","pauseCameraInBackground"],"sourceRoot":"../../src","sources":["native-session.tsx"],"mappings":"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","ignoreList":[]}
@@ -21,7 +21,7 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
21
21
  */
22
22
 
23
23
  /** The version of this package: what getDiagnostics() reports, and what the native side was built from. */
24
- const SDK_VERSION = exports.SDK_VERSION = '0.1.0';
24
+ const SDK_VERSION = exports.SDK_VERSION = '0.1.1';
25
25
 
26
26
  /** The native module, or null where there is none (iOS, Expo Go, an app not rebuilt). */
27
27
  function nativeModule() {
@@ -60,7 +60,7 @@ function localStream(client) {
60
60
  return client.local ?? null;
61
61
  }
62
62
 
63
- /** getDiagnostics().userAgent: `ReactNative android 37; react-native-webrtc 155.0.1; @voltkit-rtc/react-native 0.1.0`. */
63
+ /** getDiagnostics().userAgent: `ReactNative android 37; react-native-webrtc 155.0.1; @voltkit-rtc/react-native 0.1.1`. */
64
64
  function describePlatform() {
65
65
  return `ReactNative ${_reactNative.Platform.OS} ${String(_reactNative.Platform.Version)}; react-native-webrtc ${(0, _globals.webrtcVersion)() ?? 'unknown'}; @voltkit-rtc/react-native ${_native.SDK_VERSION}`;
66
66
  }
@@ -54,7 +54,9 @@ function VoltkitProvider({
54
54
  }) : undefined,
55
55
  // eslint-disable-next-line react-hooks/exhaustive-deps
56
56
  [webrtc, wsUrl, token]);
57
- const pauseCamera = options?.pauseCameraInBackground !== false;
57
+ // The call service reads the setting from the client it runs for (an app-made client has its own); this stands in
58
+ // when the client's options cannot be read.
59
+ const pauseCamera = options?.pauseCameraInBackground === true;
58
60
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_react2.VoltkitProvider, {
59
61
  ...rest,
60
62
  wsUrl: webrtc ? wsUrl : undefined,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNative","_react2","_globals","_native","_errors","_createClient","_nativeSession","_jsxRuntime","VoltkitProvider","audio","background","callService","clientOptions","client","wsUrl","token","onError","children","rest","webrtc","useMemo","registerVoltkitGlobals","errors","useRef","useEffect","current","wanted","Boolean","webrtcMissing","Platform","OS","nativeModule","nativeMissing","options","reactNativeClientOptions","undefined","pauseCamera","pauseCameraInBackground","jsxs","jsx","NativeSession"],"sourceRoot":"../../src","sources":["provider.tsx"],"mappings":";;;;;;AASA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AACA,IAAAM,aAAA,GAAAN,OAAA;AACA,IAAAO,cAAA,GAAAP,OAAA;AAAiG,IAAAQ,WAAA,GAAAR,OAAA;AAhBjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA8BA;AACO,SAASS,eAAeA,CAAC;EAC9BC,KAAK;EACLC,UAAU;EACVC,WAAW;EACXC,aAAa;EACbC,MAAM;EACNC,KAAK;EACLC,KAAK;EACLC,OAAO;EACPC,QAAQ;EACR,GAAGC;AACiB,CAAC,EAAgB;EACrC,MAAMC,MAAM,GAAG,IAAAC,cAAO,EAAC,MAAM,IAAAC,+BAAsB,EAAC,CAAC,EAAE,EAAE,CAAC;EAC1D,MAAMC,MAAM,GAAG,IAAAC,aAAM,EAACP,OAAO,CAAC;EAC9B,IAAAQ,gBAAS,EAAC,MAAM;IACdF,MAAM,CAACG,OAAO,GAAGT,OAAO;EAC1B,CAAC,CAAC;EAEF,MAAMU,MAAM,GAAGC,OAAO,CAACd,MAAM,IAAKC,KAAK,IAAIC,KAAM,CAAC;EAClD,IAAAS,gBAAS,EAAC,MAAM;IACd,IAAI,CAACE,MAAM,EAAE;IACb,IAAI,CAACP,MAAM,EAAEG,MAAM,CAACG,OAAO,GAAG,IAAAG,qBAAa,EAAC,CAAC,CAAC,CAAC,KAC1C,IAAIC,qBAAQ,CAACC,EAAE,KAAK,SAAS,IAAI,CAAC,IAAAC,oBAAY,EAAC,CAAC,EAAET,MAAM,CAACG,OAAO,GAAG,IAAAO,qBAAa,EAAC,mDAAmD,CAAC,CAAC;EAC7I,CAAC,EAAE,CAACb,MAAM,EAAEO,MAAM,CAAC,CAAC;;EAEpB;EACA,MAAMO,OAAO,GAAG,IAAAb,cAAO,EACrB,MAAOD,MAAM,GAAG,IAAAe,sCAAwB,EAAC;IAAExB,UAAU;IAAEE;EAAc,CAAC,CAAC,GAAGuB,SAAU;EACpF;EACA,CAAChB,MAAM,EAAEL,KAAK,EAAEC,KAAK,CACvB,CAAC;EACD,MAAMqB,WAAW,GAAGH,OAAO,EAAEI,uBAAuB,KAAK,KAAK;EAE9D,oBACE,IAAA9B,WAAA,CAAA+B,IAAA,EAACrC,OAAA,CAAAO,eAAoB;IAAA,GACfU,IAAI;IACRJ,KAAK,EAAEK,MAAM,GAAGL,KAAK,GAAGqB,SAAU;IAClCpB,KAAK,EAAEI,MAAM,GAAGJ,KAAK,GAAGoB,SAAU;IAClCtB,MAAM,EAAEM,MAAM,GAAGN,MAAM,GAAG,IAAK;IAC/BD,aAAa,EAAEqB,OAAQ;IACvBjB,OAAO,EAAEA,OAAQ;IAAAC,QAAA,GAEhBE,MAAM,gBAAG,IAAAZ,WAAA,CAAAgC,GAAA,EAACjC,cAAA,CAAAkC,aAAa;MAAC/B,KAAK,EAAEA,KAAM;MAACE,WAAW,EAAEA,WAAY;MAACyB,WAAW,EAAEA,WAAY;MAACpB,OAAO,EAAEM;IAAO,CAAE,CAAC,GAAG,IAAI,EACpHL,QAAQ;EAAA,CACW,CAAC;AAE3B","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactNative","_react2","_globals","_native","_errors","_createClient","_nativeSession","_jsxRuntime","VoltkitProvider","audio","background","callService","clientOptions","client","wsUrl","token","onError","children","rest","webrtc","useMemo","registerVoltkitGlobals","errors","useRef","useEffect","current","wanted","Boolean","webrtcMissing","Platform","OS","nativeModule","nativeMissing","options","reactNativeClientOptions","undefined","pauseCamera","pauseCameraInBackground","jsxs","jsx","NativeSession"],"sourceRoot":"../../src","sources":["provider.tsx"],"mappings":";;;;;;AASA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AACA,IAAAM,aAAA,GAAAN,OAAA;AACA,IAAAO,cAAA,GAAAP,OAAA;AAAiG,IAAAQ,WAAA,GAAAR,OAAA;AAhBjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA8BA;AACO,SAASS,eAAeA,CAAC;EAC9BC,KAAK;EACLC,UAAU;EACVC,WAAW;EACXC,aAAa;EACbC,MAAM;EACNC,KAAK;EACLC,KAAK;EACLC,OAAO;EACPC,QAAQ;EACR,GAAGC;AACiB,CAAC,EAAgB;EACrC,MAAMC,MAAM,GAAG,IAAAC,cAAO,EAAC,MAAM,IAAAC,+BAAsB,EAAC,CAAC,EAAE,EAAE,CAAC;EAC1D,MAAMC,MAAM,GAAG,IAAAC,aAAM,EAACP,OAAO,CAAC;EAC9B,IAAAQ,gBAAS,EAAC,MAAM;IACdF,MAAM,CAACG,OAAO,GAAGT,OAAO;EAC1B,CAAC,CAAC;EAEF,MAAMU,MAAM,GAAGC,OAAO,CAACd,MAAM,IAAKC,KAAK,IAAIC,KAAM,CAAC;EAClD,IAAAS,gBAAS,EAAC,MAAM;IACd,IAAI,CAACE,MAAM,EAAE;IACb,IAAI,CAACP,MAAM,EAAEG,MAAM,CAACG,OAAO,GAAG,IAAAG,qBAAa,EAAC,CAAC,CAAC,CAAC,KAC1C,IAAIC,qBAAQ,CAACC,EAAE,KAAK,SAAS,IAAI,CAAC,IAAAC,oBAAY,EAAC,CAAC,EAAET,MAAM,CAACG,OAAO,GAAG,IAAAO,qBAAa,EAAC,mDAAmD,CAAC,CAAC;EAC7I,CAAC,EAAE,CAACb,MAAM,EAAEO,MAAM,CAAC,CAAC;;EAEpB;EACA,MAAMO,OAAO,GAAG,IAAAb,cAAO,EACrB,MAAOD,MAAM,GAAG,IAAAe,sCAAwB,EAAC;IAAExB,UAAU;IAAEE;EAAc,CAAC,CAAC,GAAGuB,SAAU;EACpF;EACA,CAAChB,MAAM,EAAEL,KAAK,EAAEC,KAAK,CACvB,CAAC;EACD;EACA;EACA,MAAMqB,WAAW,GAAGH,OAAO,EAAEI,uBAAuB,KAAK,IAAI;EAE7D,oBACE,IAAA9B,WAAA,CAAA+B,IAAA,EAACrC,OAAA,CAAAO,eAAoB;IAAA,GACfU,IAAI;IACRJ,KAAK,EAAEK,MAAM,GAAGL,KAAK,GAAGqB,SAAU;IAClCpB,KAAK,EAAEI,MAAM,GAAGJ,KAAK,GAAGoB,SAAU;IAClCtB,MAAM,EAAEM,MAAM,GAAGN,MAAM,GAAG,IAAK;IAC/BD,aAAa,EAAEqB,OAAQ;IACvBjB,OAAO,EAAEA,OAAQ;IAAAC,QAAA,GAEhBE,MAAM,gBAAG,IAAAZ,WAAA,CAAAgC,GAAA,EAACjC,cAAA,CAAAkC,aAAa;MAAC/B,KAAK,EAAEA,KAAM;MAACE,WAAW,EAAEA,WAAY;MAACyB,WAAW,EAAEA,WAAY;MAACpB,OAAO,EAAEM;IAAO,CAAE,CAAC,GAAG,IAAI,EACpHL,QAAQ;EAAA,CACW,CAAC;AAE3B","ignoreList":[]}
@@ -35,10 +35,14 @@ const NOT_DECLARED = Object.freeze({
35
35
  types: Object.freeze([])
36
36
  });
37
37
  class CallServices {
38
- /** What each call wants, read afresh at every decision: a call's state is its client's, which emits no event for some changes. */
38
+ /**
39
+ * What each call wants, read afresh at every decision: a call's state is its client's, which emits no event for some
40
+ * changes. With how to tell the call when its state cannot be read at all.
41
+ */
39
42
  wants = new Map();
40
43
  running = false;
41
- busy = false;
44
+ /** The call to the native module under way: a `failed` event during a start or update is its rejection's twin. */
45
+ inFlight = null;
42
46
  again = false;
43
47
  /** The options the service runs with, as sent. */
44
48
  applied = null;
@@ -47,8 +51,11 @@ class CallServices {
47
51
  watching = null;
48
52
  state = null;
49
53
  listeners = new Set();
50
- set(key, want) {
51
- if (want) this.wants.set(key, want);else this.wants.delete(key);
54
+ set(key, want, report = () => undefined) {
55
+ if (want) this.wants.set(key, {
56
+ want,
57
+ report
58
+ });else this.wants.delete(key);
52
59
  this.reconcile();
53
60
  }
54
61
 
@@ -94,14 +101,36 @@ class CallServices {
94
101
  for (const listener of [...this.listeners]) listener();
95
102
  }
96
103
  live() {
97
- return [...this.wants.values()].map(want => want()).filter(w => w.live);
104
+ const live = [];
105
+ for (const [key, {
106
+ want,
107
+ report
108
+ }] of [...this.wants]) {
109
+ let w;
110
+ try {
111
+ w = want();
112
+ } catch (err) {
113
+ // A client whose state cannot be read (a wrapper that throws on a read): this call is left out of the service
114
+ // for good, said once, and never keeps the other calls from theirs (the verifier's F3 on 0.1.1).
115
+ this.wants.delete(key);
116
+ logError('a call is left out of the call service: its client\'s state could not be read', err);
117
+ try {
118
+ report(callServiceFailed(`this call is left out, its client's state could not be read: ${describeError(err)}`));
119
+ } catch (reportErr) {
120
+ logError('onError threw', reportErr);
121
+ }
122
+ continue;
123
+ }
124
+ if (w.live) live.push(w);
125
+ }
126
+ return live;
98
127
  }
99
128
  reconcile() {
100
129
  const module = nativeModule();
101
130
  if (!module || !nativeConstants()?.callServiceDeclared) return;
102
131
  const live = this.live();
103
132
  this.watch(module, live.length > 0 || this.running);
104
- if (this.busy) {
133
+ if (this.inFlight) {
105
134
  this.again = true;
106
135
  return;
107
136
  }
@@ -118,7 +147,7 @@ class CallServices {
118
147
  this.run(module, this.running ? 'update' : 'start', options);
119
148
  }
120
149
  run(module, what, options) {
121
- this.busy = true;
150
+ this.inFlight = what;
122
151
  const key = options ? JSON.stringify(options) : null;
123
152
  const call = what === 'stop' ? module.stopCallService() : what === 'start' ? module.startCallService(options) : module.updateCallService(options);
124
153
  call.then(status => {
@@ -139,7 +168,7 @@ class CallServices {
139
168
  const error = callServiceFailed(describeError(err));
140
169
  for (const want of this.live()) want.report(error);
141
170
  }).finally(() => {
142
- this.busy = false;
171
+ this.inFlight = null;
143
172
  if (this.again) {
144
173
  this.again = false;
145
174
  this.reconcile();
@@ -196,6 +225,8 @@ class CallServices {
196
225
  return;
197
226
  case 'failed':
198
227
  {
228
+ // VoltkitCallService.runWith tells `failed` and then rejects the start or update: the rejection reports it (RN010-2).
229
+ if (this.inFlight === 'start' || this.inFlight === 'update') return;
199
230
  const error = callServiceFailed(message || 'Android refused it');
200
231
  for (const want of this.live()) want.report(error);
201
232
  return;
@@ -281,7 +312,8 @@ export function NativeSession({
281
312
  useEffect(() => {
282
313
  if (!client || !wantsService || !nativeModule()) return;
283
314
  const key = {};
284
- callServices.set(key, () => wantOf(client, latest.current, error => onError.current?.(error)));
315
+ const report = error => onError.current?.(error);
316
+ callServices.set(key, () => wantOf(client, latest.current, report), report);
285
317
  const update = () => callServices.changed();
286
318
  // publish() and a camera switch emit no event of their own: useLocalMedia's calls say so through the local session.
287
319
  const offs = [...['connectionStateChanged', 'localMediaChanged', 'localStreamChanged', 'screenShareStarted', 'screenShareEnded'].map(event => client.on(event, update)), localSessionOf(client).subscribe(update)];
@@ -300,10 +332,29 @@ function wantOf(client, latest, report) {
300
332
  micPublished: (local?.getAudioTracks().length ?? 0) > 0,
301
333
  cameraPublished: (local?.getVideoTracks().length ?? 0) > 0,
302
334
  sharing: localSessionOf(client).screen !== null,
303
- pauseCamera: latest.pauseCamera,
335
+ pauseCamera: pausesCameraInBackground(client) ?? latest.pauseCamera,
304
336
  text: latest.text,
305
337
  leave: () => client.close(),
306
338
  report
307
339
  };
308
340
  }
341
+
342
+ /**
343
+ * Whether the client switches its camera off in the background, from its own options: the provider's `background` only
344
+ * describes a client the provider made, and an app-made one (`createClient`, the `client` prop) keeps its camera on with
345
+ * `pauseCamera: false` while the service was asked for no camera type, so Android cut the camera (RN010-1). The client
346
+ * pauses only with `pauseCameraInBackground === true` (left out, the camera runs on). Null when the options cannot be
347
+ * read (missing, not an object, or a read that throws: a wrapped or stubbed client): the provider's setting stands in.
348
+ */
349
+ function pausesCameraInBackground(client) {
350
+ let options;
351
+ try {
352
+ options = client.options;
353
+ } catch {
354
+ // A wrapper that forbids the read (a logging or sealing Proxy): not an error, the provider's setting stands in.
355
+ return null;
356
+ }
357
+ if (!options || typeof options !== 'object') return null;
358
+ return options.pauseCameraInBackground === true;
359
+ }
309
360
  //# sourceMappingURL=native-session.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useMemo","useRef","useSyncExternalStore","useVoltkitClient","listen","nativeConstants","nativeModule","callServiceFailed","describeError","logError","audioHoldOf","speakerPreference","localSessionOf","nativeVisibility","localStream","NOT_DECLARED","Object","freeze","declared","running","types","CallServices","wants","Map","busy","again","applied","failed","watching","state","listeners","Set","set","key","want","delete","reconcile","changed","subscribe","listener","add","snapshot","module","callServiceDeclared","status","getCallServiceStatus","err","publish","now","next","join","live","values","map","filter","w","watch","length","run","options","merged","JSON","stringify","safeVisible","what","call","stopCallService","startCallService","updateCallService","then","error","report","finally","on","visibility","stops","visible","onCallServiceEvent","event","onEvent","type","message","stop","leave","isAppVisible","text","reverse","pick","field","find","title","leaveLabel","pauseCamera","some","cameraPublished","micPublished","sharing","callServices","useCallService","NativeSession","audio","callService","onError","client","manage","speakerphone","undefined","wantsService","latest","current","hold","retain","sync","connectionState","acquire","release","off","unretain","wantOf","update","offs","local","getAudioTracks","getVideoTracks","screen","close"],"sourceRoot":"../../src","sources":["native-session.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useMemo","useRef","useSyncExternalStore","useVoltkitClient","listen","nativeConstants","nativeModule","callServiceFailed","describeError","logError","audioHoldOf","speakerPreference","localSessionOf","nativeVisibility","localStream","NOT_DECLARED","Object","freeze","declared","running","types","CallServices","wants","Map","inFlight","again","applied","failed","watching","state","listeners","Set","set","key","want","report","undefined","delete","reconcile","changed","subscribe","listener","add","snapshot","module","callServiceDeclared","status","getCallServiceStatus","err","publish","now","next","join","live","w","reportErr","push","watch","length","run","options","merged","JSON","stringify","safeVisible","what","call","stopCallService","startCallService","updateCallService","then","error","finally","on","visibility","stops","visible","onCallServiceEvent","event","onEvent","type","message","stop","leave","isAppVisible","text","reverse","pick","field","find","title","leaveLabel","pauseCamera","some","cameraPublished","micPublished","sharing","callServices","useCallService","NativeSession","audio","callService","onError","client","manage","speakerphone","wantsService","latest","current","hold","retain","sync","connectionState","acquire","release","off","unretain","wantOf","update","offs","map","local","getAudioTracks","getVideoTracks","screen","pausesCameraInBackground","close","pauseCameraInBackground"],"sourceRoot":"../../src","sources":["native-session.tsx"],"mappings":"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","ignoreList":[]}
@@ -9,7 +9,7 @@ import { Platform } from 'react-native';
9
9
  import NativeVoltkitRtc from "./specs/NativeVoltkitRtc.js";
10
10
  import { iosUnsupported, logError, nativeMissing } from "./errors.js";
11
11
  /** The version of this package: what getDiagnostics() reports, and what the native side was built from. */
12
- export const SDK_VERSION = '0.1.0';
12
+ export const SDK_VERSION = '0.1.1';
13
13
 
14
14
  /** The native module, or null where there is none (iOS, Expo Go, an app not rebuilt). */
15
15
  export function nativeModule() {
@@ -51,7 +51,7 @@ export function localStream(client) {
51
51
  return client.local ?? null;
52
52
  }
53
53
 
54
- /** getDiagnostics().userAgent: `ReactNative android 37; react-native-webrtc 155.0.1; @voltkit-rtc/react-native 0.1.0`. */
54
+ /** getDiagnostics().userAgent: `ReactNative android 37; react-native-webrtc 155.0.1; @voltkit-rtc/react-native 0.1.1`. */
55
55
  export function describePlatform() {
56
56
  return `ReactNative ${Platform.OS} ${String(Platform.Version)}; react-native-webrtc ${webrtcVersion() ?? 'unknown'}; @voltkit-rtc/react-native ${SDK_VERSION}`;
57
57
  }
@@ -49,7 +49,9 @@ export function VoltkitProvider({
49
49
  }) : undefined,
50
50
  // eslint-disable-next-line react-hooks/exhaustive-deps
51
51
  [webrtc, wsUrl, token]);
52
- const pauseCamera = options?.pauseCameraInBackground !== false;
52
+ // The call service reads the setting from the client it runs for (an app-made client has its own); this stands in
53
+ // when the client's options cannot be read.
54
+ const pauseCamera = options?.pauseCameraInBackground === true;
53
55
  return /*#__PURE__*/_jsxs(ReactVoltkitProvider, {
54
56
  ...rest,
55
57
  wsUrl: webrtc ? wsUrl : undefined,
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useMemo","useRef","Platform","VoltkitProvider","ReactVoltkitProvider","registerVoltkitGlobals","nativeModule","nativeMissing","webrtcMissing","reactNativeClientOptions","NativeSession","jsx","_jsx","jsxs","_jsxs","audio","background","callService","clientOptions","client","wsUrl","token","onError","children","rest","webrtc","errors","current","wanted","Boolean","OS","options","undefined","pauseCamera","pauseCameraInBackground"],"sourceRoot":"../../src","sources":["provider.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,SAAS,EAAEC,OAAO,EAAEC,MAAM,QAA2B,OAAO;AACrE,SAASC,QAAQ,QAAQ,cAAc;AACvC,SAASC,eAAe,IAAIC,oBAAoB,QAAgE,oBAAoB;AACpI,SAASC,sBAAsB,QAAQ,cAAW;AAClD,SAASC,YAAY,QAAQ,aAAU;AACvC,SAASC,aAAa,EAAEC,aAAa,QAAQ,aAAU;AACvD,SAASC,wBAAwB,QAAgC,oBAAiB;AAClF,SAASC,aAAa,QAAwD,qBAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAsBjG;AACA,OAAO,SAASX,eAAeA,CAAC;EAC9BY,KAAK;EACLC,UAAU;EACVC,WAAW;EACXC,aAAa;EACbC,MAAM;EACNC,KAAK;EACLC,KAAK;EACLC,OAAO;EACPC,QAAQ;EACR,GAAGC;AACiB,CAAC,EAAgB;EACrC,MAAMC,MAAM,GAAGzB,OAAO,CAAC,MAAMK,sBAAsB,CAAC,CAAC,EAAE,EAAE,CAAC;EAC1D,MAAMqB,MAAM,GAAGzB,MAAM,CAACqB,OAAO,CAAC;EAC9BvB,SAAS,CAAC,MAAM;IACd2B,MAAM,CAACC,OAAO,GAAGL,OAAO;EAC1B,CAAC,CAAC;EAEF,MAAMM,MAAM,GAAGC,OAAO,CAACV,MAAM,IAAKC,KAAK,IAAIC,KAAM,CAAC;EAClDtB,SAAS,CAAC,MAAM;IACd,IAAI,CAAC6B,MAAM,EAAE;IACb,IAAI,CAACH,MAAM,EAAEC,MAAM,CAACC,OAAO,GAAGnB,aAAa,CAAC,CAAC,CAAC,CAAC,KAC1C,IAAIN,QAAQ,CAAC4B,EAAE,KAAK,SAAS,IAAI,CAACxB,YAAY,CAAC,CAAC,EAAEoB,MAAM,CAACC,OAAO,GAAGpB,aAAa,CAAC,mDAAmD,CAAC,CAAC;EAC7I,CAAC,EAAE,CAACkB,MAAM,EAAEG,MAAM,CAAC,CAAC;;EAEpB;EACA,MAAMG,OAAO,GAAG/B,OAAO,CACrB,MAAOyB,MAAM,GAAGhB,wBAAwB,CAAC;IAAEO,UAAU;IAAEE;EAAc,CAAC,CAAC,GAAGc,SAAU;EACpF;EACA,CAACP,MAAM,EAAEL,KAAK,EAAEC,KAAK,CACvB,CAAC;EACD,MAAMY,WAAW,GAAGF,OAAO,EAAEG,uBAAuB,KAAK,KAAK;EAE9D,oBACEpB,KAAA,CAACV,oBAAoB;IAAA,GACfoB,IAAI;IACRJ,KAAK,EAAEK,MAAM,GAAGL,KAAK,GAAGY,SAAU;IAClCX,KAAK,EAAEI,MAAM,GAAGJ,KAAK,GAAGW,SAAU;IAClCb,MAAM,EAAEM,MAAM,GAAGN,MAAM,GAAG,IAAK;IAC/BD,aAAa,EAAEa,OAAQ;IACvBT,OAAO,EAAEA,OAAQ;IAAAC,QAAA,GAEhBE,MAAM,gBAAGb,IAAA,CAACF,aAAa;MAACK,KAAK,EAAEA,KAAM;MAACE,WAAW,EAAEA,WAAY;MAACgB,WAAW,EAAEA,WAAY;MAACX,OAAO,EAAEI;IAAO,CAAE,CAAC,GAAG,IAAI,EACpHH,QAAQ;EAAA,CACW,CAAC;AAE3B","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useMemo","useRef","Platform","VoltkitProvider","ReactVoltkitProvider","registerVoltkitGlobals","nativeModule","nativeMissing","webrtcMissing","reactNativeClientOptions","NativeSession","jsx","_jsx","jsxs","_jsxs","audio","background","callService","clientOptions","client","wsUrl","token","onError","children","rest","webrtc","errors","current","wanted","Boolean","OS","options","undefined","pauseCamera","pauseCameraInBackground"],"sourceRoot":"../../src","sources":["provider.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,SAAS,EAAEC,OAAO,EAAEC,MAAM,QAA2B,OAAO;AACrE,SAASC,QAAQ,QAAQ,cAAc;AACvC,SAASC,eAAe,IAAIC,oBAAoB,QAAgE,oBAAoB;AACpI,SAASC,sBAAsB,QAAQ,cAAW;AAClD,SAASC,YAAY,QAAQ,aAAU;AACvC,SAASC,aAAa,EAAEC,aAAa,QAAQ,aAAU;AACvD,SAASC,wBAAwB,QAAgC,oBAAiB;AAClF,SAASC,aAAa,QAAwD,qBAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAsBjG;AACA,OAAO,SAASX,eAAeA,CAAC;EAC9BY,KAAK;EACLC,UAAU;EACVC,WAAW;EACXC,aAAa;EACbC,MAAM;EACNC,KAAK;EACLC,KAAK;EACLC,OAAO;EACPC,QAAQ;EACR,GAAGC;AACiB,CAAC,EAAgB;EACrC,MAAMC,MAAM,GAAGzB,OAAO,CAAC,MAAMK,sBAAsB,CAAC,CAAC,EAAE,EAAE,CAAC;EAC1D,MAAMqB,MAAM,GAAGzB,MAAM,CAACqB,OAAO,CAAC;EAC9BvB,SAAS,CAAC,MAAM;IACd2B,MAAM,CAACC,OAAO,GAAGL,OAAO;EAC1B,CAAC,CAAC;EAEF,MAAMM,MAAM,GAAGC,OAAO,CAACV,MAAM,IAAKC,KAAK,IAAIC,KAAM,CAAC;EAClDtB,SAAS,CAAC,MAAM;IACd,IAAI,CAAC6B,MAAM,EAAE;IACb,IAAI,CAACH,MAAM,EAAEC,MAAM,CAACC,OAAO,GAAGnB,aAAa,CAAC,CAAC,CAAC,CAAC,KAC1C,IAAIN,QAAQ,CAAC4B,EAAE,KAAK,SAAS,IAAI,CAACxB,YAAY,CAAC,CAAC,EAAEoB,MAAM,CAACC,OAAO,GAAGpB,aAAa,CAAC,mDAAmD,CAAC,CAAC;EAC7I,CAAC,EAAE,CAACkB,MAAM,EAAEG,MAAM,CAAC,CAAC;;EAEpB;EACA,MAAMG,OAAO,GAAG/B,OAAO,CACrB,MAAOyB,MAAM,GAAGhB,wBAAwB,CAAC;IAAEO,UAAU;IAAEE;EAAc,CAAC,CAAC,GAAGc,SAAU;EACpF;EACA,CAACP,MAAM,EAAEL,KAAK,EAAEC,KAAK,CACvB,CAAC;EACD;EACA;EACA,MAAMY,WAAW,GAAGF,OAAO,EAAEG,uBAAuB,KAAK,IAAI;EAE7D,oBACEpB,KAAA,CAACV,oBAAoB;IAAA,GACfoB,IAAI;IACRJ,KAAK,EAAEK,MAAM,GAAGL,KAAK,GAAGY,SAAU;IAClCX,KAAK,EAAEI,MAAM,GAAGJ,KAAK,GAAGW,SAAU;IAClCb,MAAM,EAAEM,MAAM,GAAGN,MAAM,GAAG,IAAK;IAC/BD,aAAa,EAAEa,OAAQ;IACvBT,OAAO,EAAEA,OAAQ;IAAAC,QAAA,GAEhBE,MAAM,gBAAGb,IAAA,CAACF,aAAa;MAACK,KAAK,EAAEA,KAAM;MAACE,WAAW,EAAEA,WAAY;MAACgB,WAAW,EAAEA,WAAY;MAACX,OAAO,EAAEI;IAAO,CAAE,CAAC,GAAG,IAAI,EACpHH,QAAQ;EAAA,CACW,CAAC;AAE3B","ignoreList":[]}
@@ -27,7 +27,7 @@ export declare function useCallService(): CallServiceState;
27
27
  export interface NativeSessionProps {
28
28
  audio: AudioSessionOptions | false | undefined;
29
29
  callService: boolean | CallServiceText | undefined;
30
- /** The client's pauseCameraInBackground, as it was made. */
30
+ /** The provider's background.pauseCamera: for a client whose own options cannot be read (see pausesCameraInBackground). */
31
31
  pauseCamera: boolean;
32
32
  onError: {
33
33
  readonly current: ((error: Error) => void) | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"native-session.d.ts","sourceRoot":"","sources":["../../../src/native-session.tsx"],"names":[],"mappings":"AAyBA,uCAAuC;AACvC,MAAM,WAAW,eAAe;IAC9B,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,+CAA+C;AAC/C,MAAM,WAAW,mBAAmB;IAClC,wHAAwH;IACxH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,4FAA4F;IAC5F,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAeD,MAAM,WAAW,gBAAgB;IAC/B,yEAAyE;IACzE,QAAQ,EAAE,OAAO,CAAC;IAClB,mBAAmB;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,6GAA6G;IAC7G,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAkMD,2FAA2F;AAC3F,wBAAgB,cAAc,IAAI,gBAAgB,CAEjD;AAID,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,mBAAmB,GAAG,KAAK,GAAG,SAAS,CAAC;IAC/C,WAAW,EAAE,OAAO,GAAG,eAAe,GAAG,SAAS,CAAC;IACnD,4DAA4D;IAC5D,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;KAAE,CAAC;CACrE;AAED,+HAA+H;AAC/H,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,kBAAkB,GAAG,IAAI,CAiDpG"}
1
+ {"version":3,"file":"native-session.d.ts","sourceRoot":"","sources":["../../../src/native-session.tsx"],"names":[],"mappings":"AAyBA,uCAAuC;AACvC,MAAM,WAAW,eAAe;IAC9B,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,+CAA+C;AAC/C,MAAM,WAAW,mBAAmB;IAClC,wHAAwH;IACxH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,4FAA4F;IAC5F,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAgBD,MAAM,WAAW,gBAAgB;IAC/B,yEAAyE;IACzE,QAAQ,EAAE,OAAO,CAAC;IAClB,mBAAmB;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,6GAA6G;IAC7G,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AA2ND,2FAA2F;AAC3F,wBAAgB,cAAc,IAAI,gBAAgB,CAEjD;AAID,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,mBAAmB,GAAG,KAAK,GAAG,SAAS,CAAC;IAC/C,WAAW,EAAE,OAAO,GAAG,eAAe,GAAG,SAAS,CAAC;IACnD,2HAA2H;IAC3H,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;KAAE,CAAC;CACrE;AAED,+HAA+H;AAC/H,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,kBAAkB,GAAG,IAAI,CAkDpG"}
@@ -2,7 +2,7 @@ import type { EventSubscription } from 'react-native';
2
2
  import { type AudioDevice, type Constants, type Spec } from './specs/NativeVoltkitRtc';
3
3
  import type { MediaDevice } from '@voltkit-rtc/client';
4
4
  /** The version of this package: what getDiagnostics() reports, and what the native side was built from. */
5
- export declare const SDK_VERSION = "0.1.0";
5
+ export declare const SDK_VERSION = "0.1.1";
6
6
  /** The native module, or null where there is none (iOS, Expo Go, an app not rebuilt). */
7
7
  export declare function nativeModule(): Spec | null;
8
8
  /** The module's constants, read once: the audio mode, screen sharing, the call service as the manifest declares them. */
@@ -72,7 +72,7 @@ export interface MediaStreamLike {
72
72
  export declare function localStream(client: {
73
73
  readonly local: unknown;
74
74
  }): MediaStreamLike | null;
75
- /** getDiagnostics().userAgent: `ReactNative android 37; react-native-webrtc 155.0.1; @voltkit-rtc/react-native 0.1.0`. */
75
+ /** getDiagnostics().userAgent: `ReactNative android 37; react-native-webrtc 155.0.1; @voltkit-rtc/react-native 0.1.1`. */
76
76
  export declare function describePlatform(): string;
77
77
  /**
78
78
  * What the client reads to pick its defaults: a phone or tablet, so two simulcast layers and the H.264 decision
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/provider.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAA8B,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAEtE,OAAO,EAA2C,KAAK,oBAAoB,IAAI,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAIrI,OAAO,EAA4B,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACnF,OAAO,EAAiB,KAAK,mBAAmB,EAAE,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEjG,MAAM,WAAW,oBAAqB,SAAQ,yBAAyB;IACrE;;;;OAIG;IACH,KAAK,CAAC,EAAE,mBAAmB,GAAG,KAAK,CAAC;IACpC;;;OAGG;IACH,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,GAAG,eAAe,CAAC;CACzC;AAED,qHAAqH;AACrH,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,UAAU,EACV,WAAW,EACX,aAAa,EACb,MAAM,EACN,KAAK,EACL,KAAK,EACL,OAAO,EACP,QAAQ,EACR,GAAG,IAAI,EACR,EAAE,oBAAoB,GAAG,YAAY,CAmCrC"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/provider.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAA8B,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAEtE,OAAO,EAA2C,KAAK,oBAAoB,IAAI,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAIrI,OAAO,EAA4B,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACnF,OAAO,EAAiB,KAAK,mBAAmB,EAAE,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEjG,MAAM,WAAW,oBAAqB,SAAQ,yBAAyB;IACrE;;;;OAIG;IACH,KAAK,CAAC,EAAE,mBAAmB,GAAG,KAAK,CAAC;IACpC;;;OAGG;IACH,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,GAAG,eAAe,CAAC;CACzC;AAED,qHAAqH;AACrH,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,UAAU,EACV,WAAW,EACX,aAAa,EACb,MAAM,EACN,KAAK,EACL,KAAK,EACL,OAAO,EACP,QAAQ,EACR,GAAG,IAAI,EACR,EAAE,oBAAoB,GAAG,YAAY,CAqCrC"}
@@ -27,7 +27,7 @@ export declare function useCallService(): CallServiceState;
27
27
  export interface NativeSessionProps {
28
28
  audio: AudioSessionOptions | false | undefined;
29
29
  callService: boolean | CallServiceText | undefined;
30
- /** The client's pauseCameraInBackground, as it was made. */
30
+ /** The provider's background.pauseCamera: for a client whose own options cannot be read (see pausesCameraInBackground). */
31
31
  pauseCamera: boolean;
32
32
  onError: {
33
33
  readonly current: ((error: Error) => void) | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"native-session.d.ts","sourceRoot":"","sources":["../../../src/native-session.tsx"],"names":[],"mappings":"AAyBA,uCAAuC;AACvC,MAAM,WAAW,eAAe;IAC9B,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,+CAA+C;AAC/C,MAAM,WAAW,mBAAmB;IAClC,wHAAwH;IACxH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,4FAA4F;IAC5F,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAeD,MAAM,WAAW,gBAAgB;IAC/B,yEAAyE;IACzE,QAAQ,EAAE,OAAO,CAAC;IAClB,mBAAmB;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,6GAA6G;IAC7G,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAkMD,2FAA2F;AAC3F,wBAAgB,cAAc,IAAI,gBAAgB,CAEjD;AAID,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,mBAAmB,GAAG,KAAK,GAAG,SAAS,CAAC;IAC/C,WAAW,EAAE,OAAO,GAAG,eAAe,GAAG,SAAS,CAAC;IACnD,4DAA4D;IAC5D,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;KAAE,CAAC;CACrE;AAED,+HAA+H;AAC/H,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,kBAAkB,GAAG,IAAI,CAiDpG"}
1
+ {"version":3,"file":"native-session.d.ts","sourceRoot":"","sources":["../../../src/native-session.tsx"],"names":[],"mappings":"AAyBA,uCAAuC;AACvC,MAAM,WAAW,eAAe;IAC9B,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,+CAA+C;AAC/C,MAAM,WAAW,mBAAmB;IAClC,wHAAwH;IACxH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,4FAA4F;IAC5F,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAgBD,MAAM,WAAW,gBAAgB;IAC/B,yEAAyE;IACzE,QAAQ,EAAE,OAAO,CAAC;IAClB,mBAAmB;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,6GAA6G;IAC7G,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AA2ND,2FAA2F;AAC3F,wBAAgB,cAAc,IAAI,gBAAgB,CAEjD;AAID,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,mBAAmB,GAAG,KAAK,GAAG,SAAS,CAAC;IAC/C,WAAW,EAAE,OAAO,GAAG,eAAe,GAAG,SAAS,CAAC;IACnD,2HAA2H;IAC3H,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;KAAE,CAAC;CACrE;AAED,+HAA+H;AAC/H,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,kBAAkB,GAAG,IAAI,CAkDpG"}
@@ -2,7 +2,7 @@ import type { EventSubscription } from 'react-native';
2
2
  import { type AudioDevice, type Constants, type Spec } from './specs/NativeVoltkitRtc.js';
3
3
  import type { MediaDevice } from '@voltkit-rtc/client';
4
4
  /** The version of this package: what getDiagnostics() reports, and what the native side was built from. */
5
- export declare const SDK_VERSION = "0.1.0";
5
+ export declare const SDK_VERSION = "0.1.1";
6
6
  /** The native module, or null where there is none (iOS, Expo Go, an app not rebuilt). */
7
7
  export declare function nativeModule(): Spec | null;
8
8
  /** The module's constants, read once: the audio mode, screen sharing, the call service as the manifest declares them. */
@@ -72,7 +72,7 @@ export interface MediaStreamLike {
72
72
  export declare function localStream(client: {
73
73
  readonly local: unknown;
74
74
  }): MediaStreamLike | null;
75
- /** getDiagnostics().userAgent: `ReactNative android 37; react-native-webrtc 155.0.1; @voltkit-rtc/react-native 0.1.0`. */
75
+ /** getDiagnostics().userAgent: `ReactNative android 37; react-native-webrtc 155.0.1; @voltkit-rtc/react-native 0.1.1`. */
76
76
  export declare function describePlatform(): string;
77
77
  /**
78
78
  * What the client reads to pick its defaults: a phone or tablet, so two simulcast layers and the H.264 decision
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/provider.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAA8B,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAEtE,OAAO,EAA2C,KAAK,oBAAoB,IAAI,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAIrI,OAAO,EAA4B,KAAK,iBAAiB,EAAE,MAAM,oBAAiB,CAAC;AACnF,OAAO,EAAiB,KAAK,mBAAmB,EAAE,KAAK,eAAe,EAAE,MAAM,qBAAkB,CAAC;AAEjG,MAAM,WAAW,oBAAqB,SAAQ,yBAAyB;IACrE;;;;OAIG;IACH,KAAK,CAAC,EAAE,mBAAmB,GAAG,KAAK,CAAC;IACpC;;;OAGG;IACH,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,GAAG,eAAe,CAAC;CACzC;AAED,qHAAqH;AACrH,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,UAAU,EACV,WAAW,EACX,aAAa,EACb,MAAM,EACN,KAAK,EACL,KAAK,EACL,OAAO,EACP,QAAQ,EACR,GAAG,IAAI,EACR,EAAE,oBAAoB,GAAG,YAAY,CAmCrC"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/provider.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAA8B,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAEtE,OAAO,EAA2C,KAAK,oBAAoB,IAAI,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAIrI,OAAO,EAA4B,KAAK,iBAAiB,EAAE,MAAM,oBAAiB,CAAC;AACnF,OAAO,EAAiB,KAAK,mBAAmB,EAAE,KAAK,eAAe,EAAE,MAAM,qBAAkB,CAAC;AAEjG,MAAM,WAAW,oBAAqB,SAAQ,yBAAyB;IACrE;;;;OAIG;IACH,KAAK,CAAC,EAAE,mBAAmB,GAAG,KAAK,CAAC;IACpC;;;OAGG;IACH,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,GAAG,eAAe,CAAC;CACzC;AAED,qHAAqH;AACrH,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,UAAU,EACV,WAAW,EACX,aAAa,EACb,MAAM,EACN,KAAK,EACL,KAAK,EACL,OAAO,EACP,QAAQ,EACR,GAAG,IAAI,EACR,EAAE,oBAAoB,GAAG,YAAY,CAqCrC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@voltkit-rtc/react-native",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "React Native SDK for VoltKit RTC: calls, audio rooms and live video on Android (iOS in preview), with the hooks of @voltkit-rtc/react, background calls, audio routing and an Expo config plugin.",
5
5
  "keywords": [
6
6
  "voltkit",
@@ -111,7 +111,7 @@
111
111
  ]
112
112
  },
113
113
  "peerDependencies": {
114
- "@voltkit-rtc/client": ">=0.9.12 <0.10.0",
114
+ "@voltkit-rtc/client": ">=0.9.13 <0.10.0",
115
115
  "@voltkit-rtc/react": "^0.1.1",
116
116
  "expo": ">=58",
117
117
  "react": ">=19.1.0",
@@ -13,7 +13,7 @@
13
13
  * Failures reach the provider's onError as `media-unavailable` with `{ feature: 'callService' }`.
14
14
  */
15
15
  import { useEffect, useMemo, useRef, useSyncExternalStore } from 'react';
16
- import type { StreamClient } from '@voltkit-rtc/client';
16
+ import type { ClientOptions, StreamClient } from '@voltkit-rtc/client';
17
17
  import { useVoltkitClient } from '@voltkit-rtc/react';
18
18
  import type { CallServiceOptions as NativeCallServiceOptions, CallServiceStatus, Spec } from './specs/NativeVoltkitRtc';
19
19
  import { listen, nativeConstants, nativeModule } from './native';
@@ -48,6 +48,7 @@ interface Want {
48
48
  micPublished: boolean;
49
49
  cameraPublished: boolean;
50
50
  sharing: boolean;
51
+ /** The client switches its camera off in the background, so the service needs no camera type. */
51
52
  pauseCamera: boolean;
52
53
  text: CallServiceText;
53
54
  leave(): void;
@@ -66,10 +67,14 @@ export interface CallServiceState {
66
67
  const NOT_DECLARED: CallServiceState = Object.freeze({ declared: false, running: false, types: Object.freeze([]) as unknown as string[] });
67
68
 
68
69
  class CallServices {
69
- /** What each call wants, read afresh at every decision: a call's state is its client's, which emits no event for some changes. */
70
- private readonly wants = new Map<object, () => Want>();
70
+ /**
71
+ * What each call wants, read afresh at every decision: a call's state is its client's, which emits no event for some
72
+ * changes. With how to tell the call when its state cannot be read at all.
73
+ */
74
+ private readonly wants = new Map<object, { want: () => Want; report: (error: Error) => void }>();
71
75
  private running = false;
72
- private busy = false;
76
+ /** The call to the native module under way: a `failed` event during a start or update is its rejection's twin. */
77
+ private inFlight: 'start' | 'update' | 'stop' | null = null;
73
78
  private again = false;
74
79
  /** The options the service runs with, as sent. */
75
80
  private applied: string | null = null;
@@ -79,8 +84,8 @@ class CallServices {
79
84
  private state: CallServiceState | null = null;
80
85
  private readonly listeners = new Set<() => void>();
81
86
 
82
- set(key: object, want: (() => Want) | null): void {
83
- if (want) this.wants.set(key, want);
87
+ set(key: object, want: (() => Want) | null, report: (error: Error) => void = () => undefined): void {
88
+ if (want) this.wants.set(key, { want, report });
84
89
  else this.wants.delete(key);
85
90
  this.reconcile();
86
91
  }
@@ -120,7 +125,26 @@ class CallServices {
120
125
  }
121
126
 
122
127
  private live(): Want[] {
123
- return [...this.wants.values()].map((want) => want()).filter((w) => w.live);
128
+ const live: Want[] = [];
129
+ for (const [key, { want, report }] of [...this.wants]) {
130
+ let w: Want;
131
+ try {
132
+ w = want();
133
+ } catch (err) {
134
+ // A client whose state cannot be read (a wrapper that throws on a read): this call is left out of the service
135
+ // for good, said once, and never keeps the other calls from theirs (the verifier's F3 on 0.1.1).
136
+ this.wants.delete(key);
137
+ logError('a call is left out of the call service: its client\'s state could not be read', err);
138
+ try {
139
+ report(callServiceFailed(`this call is left out, its client's state could not be read: ${describeError(err)}`));
140
+ } catch (reportErr) {
141
+ logError('onError threw', reportErr);
142
+ }
143
+ continue;
144
+ }
145
+ if (w.live) live.push(w);
146
+ }
147
+ return live;
124
148
  }
125
149
 
126
150
  private reconcile(): void {
@@ -128,7 +152,7 @@ class CallServices {
128
152
  if (!module || !nativeConstants()?.callServiceDeclared) return;
129
153
  const live = this.live();
130
154
  this.watch(module, live.length > 0 || this.running);
131
- if (this.busy) {
155
+ if (this.inFlight) {
132
156
  this.again = true;
133
157
  return;
134
158
  }
@@ -146,7 +170,7 @@ class CallServices {
146
170
  }
147
171
 
148
172
  private run(module: Spec, what: 'start' | 'update' | 'stop', options: NativeCallServiceOptions | null): void {
149
- this.busy = true;
173
+ this.inFlight = what;
150
174
  const key = options ? JSON.stringify(options) : null;
151
175
  const call = what === 'stop' ? module.stopCallService() : what === 'start' ? module.startCallService(options!) : module.updateCallService(options!);
152
176
  call.then(
@@ -166,7 +190,7 @@ class CallServices {
166
190
  for (const want of this.live()) want.report(error);
167
191
  },
168
192
  ).finally(() => {
169
- this.busy = false;
193
+ this.inFlight = null;
170
194
  if (this.again) {
171
195
  this.again = false;
172
196
  this.reconcile();
@@ -220,6 +244,8 @@ class CallServices {
220
244
  for (const want of this.live()) want.leave();
221
245
  return;
222
246
  case 'failed': {
247
+ // VoltkitCallService.runWith tells `failed` and then rejects the start or update: the rejection reports it (RN010-2).
248
+ if (this.inFlight === 'start' || this.inFlight === 'update') return;
223
249
  const error = callServiceFailed(message || 'Android refused it');
224
250
  for (const want of this.live()) want.report(error);
225
251
  return;
@@ -265,7 +291,7 @@ export function useCallService(): CallServiceState {
265
291
  export interface NativeSessionProps {
266
292
  audio: AudioSessionOptions | false | undefined;
267
293
  callService: boolean | CallServiceText | undefined;
268
- /** The client's pauseCameraInBackground, as it was made. */
294
+ /** The provider's background.pauseCamera: for a client whose own options cannot be read (see pausesCameraInBackground). */
269
295
  pauseCamera: boolean;
270
296
  onError: { readonly current: ((error: Error) => void) | undefined };
271
297
  }
@@ -305,7 +331,8 @@ export function NativeSession({ audio, callService, pauseCamera, onError }: Nati
305
331
  useEffect(() => {
306
332
  if (!client || !wantsService || !nativeModule()) return;
307
333
  const key = {};
308
- callServices.set(key, () => wantOf(client, latest.current, (error) => onError.current?.(error)));
334
+ const report = (error: Error) => onError.current?.(error);
335
+ callServices.set(key, () => wantOf(client, latest.current, report), report);
309
336
  const update = () => callServices.changed();
310
337
  // publish() and a camera switch emit no event of their own: useLocalMedia's calls say so through the local session.
311
338
  const offs = [
@@ -330,9 +357,28 @@ function wantOf(client: StreamClient, latest: { text: CallServiceText; pauseCame
330
357
  micPublished: (local?.getAudioTracks().length ?? 0) > 0,
331
358
  cameraPublished: (local?.getVideoTracks().length ?? 0) > 0,
332
359
  sharing: localSessionOf(client).screen !== null,
333
- pauseCamera: latest.pauseCamera,
360
+ pauseCamera: pausesCameraInBackground(client) ?? latest.pauseCamera,
334
361
  text: latest.text,
335
362
  leave: () => client.close(),
336
363
  report,
337
364
  };
338
365
  }
366
+
367
+ /**
368
+ * Whether the client switches its camera off in the background, from its own options: the provider's `background` only
369
+ * describes a client the provider made, and an app-made one (`createClient`, the `client` prop) keeps its camera on with
370
+ * `pauseCamera: false` while the service was asked for no camera type, so Android cut the camera (RN010-1). The client
371
+ * pauses only with `pauseCameraInBackground === true` (left out, the camera runs on). Null when the options cannot be
372
+ * read (missing, not an object, or a read that throws: a wrapped or stubbed client): the provider's setting stands in.
373
+ */
374
+ function pausesCameraInBackground(client: StreamClient): boolean | null {
375
+ let options: unknown;
376
+ try {
377
+ options = (client as unknown as { options?: unknown }).options;
378
+ } catch {
379
+ // A wrapper that forbids the read (a logging or sealing Proxy): not an error, the provider's setting stands in.
380
+ return null;
381
+ }
382
+ if (!options || typeof options !== 'object') return null;
383
+ return (options as ClientOptions).pauseCameraInBackground === true;
384
+ }
package/src/native.ts CHANGED
@@ -10,7 +10,7 @@ import { iosUnsupported, logError, nativeMissing } from './errors';
10
10
  import type { AudioDeviceType, DeviceKind, MediaDevice } from '@voltkit-rtc/client';
11
11
 
12
12
  /** The version of this package: what getDiagnostics() reports, and what the native side was built from. */
13
- export const SDK_VERSION = '0.1.0';
13
+ export const SDK_VERSION = '0.1.1';
14
14
 
15
15
  /** The native module, or null where there is none (iOS, Expo Go, an app not rebuilt). */
16
16
  export function nativeModule(): Spec | null {
@@ -89,7 +89,7 @@ export function localStream(client: { readonly local: unknown }): MediaStreamLik
89
89
  return (client.local as MediaStreamLike | null | undefined) ?? null;
90
90
  }
91
91
 
92
- /** getDiagnostics().userAgent: `ReactNative android 37; react-native-webrtc 155.0.1; @voltkit-rtc/react-native 0.1.0`. */
92
+ /** getDiagnostics().userAgent: `ReactNative android 37; react-native-webrtc 155.0.1; @voltkit-rtc/react-native 0.1.1`. */
93
93
  export function describePlatform(): string {
94
94
  return `ReactNative ${Platform.OS} ${String(Platform.Version)}; react-native-webrtc ${webrtcVersion() ?? 'unknown'}; @voltkit-rtc/react-native ${SDK_VERSION}`;
95
95
  }
package/src/provider.tsx CHANGED
@@ -68,7 +68,9 @@ export function VoltkitProvider({
68
68
  // eslint-disable-next-line react-hooks/exhaustive-deps
69
69
  [webrtc, wsUrl, token],
70
70
  );
71
- const pauseCamera = options?.pauseCameraInBackground !== false;
71
+ // The call service reads the setting from the client it runs for (an app-made client has its own); this stands in
72
+ // when the client's options cannot be read.
73
+ const pauseCamera = options?.pauseCameraInBackground === true;
72
74
 
73
75
  return (
74
76
  <ReactVoltkitProvider