|
@@ -256,7 +256,7 @@ class AudioModeModule extends ReactContextBaseJavaModule {
|
256
|
256
|
if (mode != -1) {
|
257
|
257
|
JitsiMeetLogger.i(TAG + " User selected device set to: " + device);
|
258
|
258
|
userSelectedDevice = device;
|
259
|
|
- updateAudioRoute(mode);
|
|
259
|
+ updateAudioRoute(mode, false);
|
260
|
260
|
}
|
261
|
261
|
}
|
262
|
262
|
});
|
|
@@ -282,7 +282,7 @@ class AudioModeModule extends ReactContextBaseJavaModule {
|
282
|
282
|
boolean success;
|
283
|
283
|
|
284
|
284
|
try {
|
285
|
|
- success = updateAudioRoute(mode);
|
|
285
|
+ success = updateAudioRoute(mode, false);
|
286
|
286
|
} catch (Throwable e) {
|
287
|
287
|
success = false;
|
288
|
288
|
JitsiMeetLogger.e(e, TAG + " Failed to update audio route for mode: " + mode);
|
|
@@ -321,7 +321,7 @@ class AudioModeModule extends ReactContextBaseJavaModule {
|
321
|
321
|
* @return {@code true} if the audio route was updated successfully;
|
322
|
322
|
* {@code false}, otherwise.
|
323
|
323
|
*/
|
324
|
|
- private boolean updateAudioRoute(int mode) {
|
|
324
|
+ private boolean updateAudioRoute(int mode, boolean force) {
|
325
|
325
|
JitsiMeetLogger.i(TAG + " Update audio route for mode: " + mode);
|
326
|
326
|
|
327
|
327
|
if (!audioDeviceHandler.setMode(mode)) {
|
|
@@ -356,7 +356,7 @@ class AudioModeModule extends ReactContextBaseJavaModule {
|
356
|
356
|
|
357
|
357
|
// If the previously selected device and the current default one
|
358
|
358
|
// match, do nothing.
|
359
|
|
- if (selectedDevice != null && selectedDevice.equals(audioDevice)) {
|
|
359
|
+ if (!force && selectedDevice != null && selectedDevice.equals(audioDevice)) {
|
360
|
360
|
return true;
|
361
|
361
|
}
|
362
|
362
|
|
|
@@ -421,7 +421,16 @@ class AudioModeModule extends ReactContextBaseJavaModule {
|
421
|
421
|
*/
|
422
|
422
|
void updateAudioRoute() {
|
423
|
423
|
if (mode != -1) {
|
424
|
|
- updateAudioRoute(mode);
|
|
424
|
+ updateAudioRoute(mode, false);
|
|
425
|
+ }
|
|
426
|
+ }
|
|
427
|
+
|
|
428
|
+ /**
|
|
429
|
+ * Re-sets the current audio route. Needed when focus is lost and regained.
|
|
430
|
+ */
|
|
431
|
+ void resetAudioRoute() {
|
|
432
|
+ if (mode != -1) {
|
|
433
|
+ updateAudioRoute(mode, true);
|
425
|
434
|
}
|
426
|
435
|
}
|
427
|
436
|
|