Revert "Register with AudioManager only once for AudioServer state"
This reverts commit ee14de06c4522c4284331c178522ee4d64b278f8
Change-Id: I84f39ace276541df7b5158d5952ebd73824e19c4
diff --git a/src/com/android/bluetooth/hfp/HeadsetService.java b/src/com/android/bluetooth/hfp/HeadsetService.java
index 4488dc8..421ec73 100755
--- a/src/com/android/bluetooth/hfp/HeadsetService.java
+++ b/src/com/android/bluetooth/hfp/HeadsetService.java
@@ -129,6 +129,8 @@
private boolean mIsTwsPlusEnabled = false;
private boolean mIsTwsPlusShoEnabled = false;
private vendorhfservice mVendorHf;
+ private Context mContext = null;
+ private AudioServerStateCallback mServerStateCallback = new AudioServerStateCallback();
@Override
public IProfileServiceBinder initBinder() {
@@ -227,6 +229,11 @@
mVendorHf.enableSwb(isSwbEnabled());
}
+ Log.d(TAG, "registering audio server state callback");
+ mContext = getApplicationContext();
+ Executor exec = mContext.getMainExecutor();
+ mSystemInterface.getAudioManager().setAudioServerStateCallback(exec, mServerStateCallback);
+
Log.i(TAG, " HeadsetService Started ");
return true;
}
@@ -425,6 +432,30 @@
}
}
+ private class AudioServerStateCallback extends AudioManager.AudioServerStateCallback {
+ @Override
+ public void onAudioServerDown() {
+ Log.d(TAG, "notifying onAudioServerDown");
+ }
+
+ @Override
+ public void onAudioServerUp() {
+ Log.d(TAG, "notifying onAudioServerUp");
+ if (isAudioOn()) {
+ Log.d(TAG, "onAudioServerUp: Audio is On, Notify HeadsetStateMachine");
+ synchronized (mStateMachines) {
+ for (HeadsetStateMachine stateMachine : mStateMachines.values()) {
+ if (stateMachine.getAudioState()
+ == BluetoothHeadset.STATE_AUDIO_CONNECTED) {
+ stateMachine.onAudioServerUp();
+ break;
+ }
+ }
+ }
+ }
+ }
+ }
+
private final BroadcastReceiver mHeadsetReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
diff --git a/src/com/android/bluetooth/hfp/HeadsetStateMachine.java b/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
index ceef453..9c0e9db 100644
--- a/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
+++ b/src/com/android/bluetooth/hfp/HeadsetStateMachine.java
@@ -1592,16 +1592,13 @@
class MyAudioServerStateCallback extends AudioManager.AudioServerStateCallback {
@Override
public void onAudioServerDown() {
- Log.i(TAG, "onAudioServerDown");
+ logi("onAudioServerDown");
}
@Override
public void onAudioServerUp() {
- Log.i(TAG, "onAudioSeverUp: restoring audio parameters");
- mSystemInterface.getAudioManager().setBluetoothScoOn(false);
- mSystemInterface.getAudioManager().setParameters("A2dpSuspended=true");
+ logi("onAudioServerUp restoring audio parameters");
setAudioParameters();
- mSystemInterface.getAudioManager().setBluetoothScoOn(true);
}
}
@@ -1922,6 +1919,14 @@
return true;
}
+ public void onAudioServerUp() {
+ Log.i(TAG, "onAudioSeverUp: restore audio parameters");
+ mSystemInterface.getAudioManager().setBluetoothScoOn(false);
+ mSystemInterface.getAudioManager().setParameters("A2dpSuspended=true");
+ setAudioParameters();
+ mSystemInterface.getAudioManager().setBluetoothScoOn(true);
+ }
+
/*
* Put the AT command, company ID, arguments, and device in an Intent and broadcast it.
*/