mirror of
https://github.com/nextcloud/talk-android
synced 2025-07-11 06:44:09 +01:00
add a default audio device option in audio manager. stops auto-switch to bluetooth being disabled by 'user selected audio device' being set in code
Signed-off-by: gavine99 <github@xymail.tk>
This commit is contained in:
parent
6af46160b4
commit
7e267ab761
@ -805,9 +805,9 @@ class CallActivity : CallBaseActivity() {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
if (isVoiceOnlyCall) {
|
if (isVoiceOnlyCall) {
|
||||||
setAudioOutputChannel(AudioDevice.EARPIECE)
|
setDefaultAudioOutputChannel(AudioDevice.EARPIECE)
|
||||||
} else {
|
} else {
|
||||||
setAudioOutputChannel(AudioDevice.SPEAKER_PHONE)
|
setDefaultAudioOutputChannel(AudioDevice.SPEAKER_PHONE)
|
||||||
}
|
}
|
||||||
iceServers = ArrayList()
|
iceServers = ArrayList()
|
||||||
|
|
||||||
@ -834,6 +834,13 @@ class CallActivity : CallBaseActivity() {
|
|||||||
microphoneInitialization()
|
microphoneInitialization()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun setDefaultAudioOutputChannel(selectedAudioDevice: AudioDevice?) {
|
||||||
|
if (audioManager != null) {
|
||||||
|
audioManager!!.selectDefaultAudioDevice(selectedAudioDevice)
|
||||||
|
updateAudioOutputButton(audioManager!!.currentAudioDevice)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fun setAudioOutputChannel(selectedAudioDevice: AudioDevice?) {
|
fun setAudioOutputChannel(selectedAudioDevice: AudioDevice?) {
|
||||||
if (audioManager != null) {
|
if (audioManager != null) {
|
||||||
audioManager!!.selectAudioDevice(selectedAudioDevice)
|
audioManager!!.selectAudioDevice(selectedAudioDevice)
|
||||||
|
@ -55,6 +55,7 @@ public class WebRtcAudioManager {
|
|||||||
|
|
||||||
private AudioDevice userSelectedAudioDevice;
|
private AudioDevice userSelectedAudioDevice;
|
||||||
private AudioDevice currentAudioDevice;
|
private AudioDevice currentAudioDevice;
|
||||||
|
private AudioDevice defaultAudioDevice;
|
||||||
|
|
||||||
private ProximitySensor proximitySensor = null;
|
private ProximitySensor proximitySensor = null;
|
||||||
|
|
||||||
@ -215,6 +216,7 @@ public class WebRtcAudioManager {
|
|||||||
// Set initial device states.
|
// Set initial device states.
|
||||||
userSelectedAudioDevice = AudioDevice.NONE;
|
userSelectedAudioDevice = AudioDevice.NONE;
|
||||||
currentAudioDevice = AudioDevice.NONE;
|
currentAudioDevice = AudioDevice.NONE;
|
||||||
|
defaultAudioDevice = AudioDevice.NONE;
|
||||||
audioDevices.clear();
|
audioDevices.clear();
|
||||||
|
|
||||||
startBluetoothManager();
|
startBluetoothManager();
|
||||||
@ -297,6 +299,15 @@ public class WebRtcAudioManager {
|
|||||||
/**
|
/**
|
||||||
* Changes selection of the currently active audio device.
|
* Changes selection of the currently active audio device.
|
||||||
*/
|
*/
|
||||||
|
public void selectDefaultAudioDevice(AudioDevice device) {
|
||||||
|
ThreadUtils.checkIsOnMainThread();
|
||||||
|
if (!audioDevices.contains(device)) {
|
||||||
|
Log.e(TAG, "Can not select default " + device + " from available " + audioDevices);
|
||||||
|
}
|
||||||
|
defaultAudioDevice = device;
|
||||||
|
updateAudioDeviceState();
|
||||||
|
}
|
||||||
|
|
||||||
public void selectAudioDevice(AudioDevice device) {
|
public void selectAudioDevice(AudioDevice device) {
|
||||||
ThreadUtils.checkIsOnMainThread();
|
ThreadUtils.checkIsOnMainThread();
|
||||||
if (!audioDevices.contains(device)) {
|
if (!audioDevices.contains(device)) {
|
||||||
@ -493,7 +504,10 @@ public class WebRtcAudioManager {
|
|||||||
// phone (on a tablet), or speaker phone and earpiece (on mobile phone).
|
// phone (on a tablet), or speaker phone and earpiece (on mobile phone).
|
||||||
// |defaultAudioDevice| contains either AudioDevice.SPEAKER_PHONE or AudioDevice.EARPIECE
|
// |defaultAudioDevice| contains either AudioDevice.SPEAKER_PHONE or AudioDevice.EARPIECE
|
||||||
// depending on the user's selection.
|
// depending on the user's selection.
|
||||||
newCurrentAudioDevice = userSelectedAudioDevice;
|
if ((userSelectedAudioDevice == AudioDevice.NONE) && (defaultAudioDevice != AudioDevice.NONE))
|
||||||
|
newCurrentAudioDevice = defaultAudioDevice;
|
||||||
|
else
|
||||||
|
newCurrentAudioDevice = userSelectedAudioDevice;
|
||||||
}
|
}
|
||||||
// Switch to new device but only if there has been any changes.
|
// Switch to new device but only if there has been any changes.
|
||||||
if (newCurrentAudioDevice != currentAudioDevice || audioDeviceSetUpdated) {
|
if (newCurrentAudioDevice != currentAudioDevice || audioDeviceSetUpdated) {
|
||||||
|
Loading…
Reference in New Issue
Block a user