diff options
author | Andrew Comminos <andrew@comminos.com> | 2015-09-23 10:06:06 +0300 |
---|---|---|
committer | Andrew Comminos <andrew@comminos.com> | 2015-09-23 10:06:06 +0300 |
commit | 8cd8bea87c86f9e138630151d86e2ca9be2325aa (patch) | |
tree | 67419dff61f7569eb72c8f6b80a9b2a009e34d06 | |
parent | aa1b84030288573cea8cc072329783a78896866d (diff) |
Work in progress bluetooth toggle.bluetooth-dev
-rw-r--r-- | src/main/java/com/morlunk/jumble/protocol/AudioHandler.java | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/src/main/java/com/morlunk/jumble/protocol/AudioHandler.java b/src/main/java/com/morlunk/jumble/protocol/AudioHandler.java index 6863121..acf359a 100644 --- a/src/main/java/com/morlunk/jumble/protocol/AudioHandler.java +++ b/src/main/java/com/morlunk/jumble/protocol/AudioHandler.java @@ -93,7 +93,7 @@ public class AudioHandler extends JumbleNetworkListener implements AudioInput.Au /** True if the user is muted on the server. */ private boolean mMuted; /** True if a bluetooth SCO connection should be preferred. */ - private boolean mUseBluetooth; + private final boolean mUseBluetooth; /** True if a bluetooth connection is currently active. */ private boolean mBluetoothActive; private boolean mHalfDuplex; @@ -113,20 +113,17 @@ public class AudioHandler extends JumbleNetworkListener implements AudioInput.Au Toast.makeText(mContext, R.string.bluetooth_connected, Toast.LENGTH_LONG).show(); break; case AudioManager.SCO_AUDIO_STATE_DISCONNECTED: - if (mUseBluetooth) - Toast.makeText(mContext, R.string.bluetooth_disconnected, Toast.LENGTH_LONG).show(); + Toast.makeText(mContext, R.string.bluetooth_disconnected, Toast.LENGTH_LONG).show(); break; case AudioManager.SCO_AUDIO_STATE_ERROR: - if (mUseBluetooth) - Toast.makeText(mContext, R.string.bluetooth_error, Toast.LENGTH_LONG).show(); + Toast.makeText(mContext, R.string.bluetooth_error, Toast.LENGTH_LONG).show(); break; default: // No change in bluetooth state. return; } - boolean bluetoothActive = mUseBluetooth && - (audioState == AudioManager.SCO_AUDIO_STATE_CONNECTED); + boolean bluetoothActive = audioState == AudioManager.SCO_AUDIO_STATE_CONNECTED; if (!mOutput.isPlaying() || mBluetoothActive != bluetoothActive) { mBluetoothActive = bluetoothActive; mOutput.stopPlaying(); @@ -186,11 +183,15 @@ public class AudioHandler extends JumbleNetworkListener implements AudioInput.Au setServerMuted(self.isMuted() || self.isLocalMuted() || self.isSuppressed()); if (mTalking && !mMuted) startRecording(); - // This sticky broadcast will initialize the audio output. - mContext.registerReceiver(mBluetoothReceiver, - new IntentFilter(AudioManager.ACTION_SCO_AUDIO_STATE_CHANGED)); - if (mUseBluetooth) + + if (mUseBluetooth) { mAudioManager.startBluetoothSco(); + // This sticky broadcast will initialize the audio output. + mContext.registerReceiver(mBluetoothReceiver, + new IntentFilter(AudioManager.ACTION_SCO_AUDIO_STATE_CHANGED)); + } else { + mOutput.startPlaying(false); + } mInitialized = true; } |