summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author wescande <wescande@google.com> 2021-10-19 14:17:50 +0200
committer wescande <wescande@google.com> 2021-10-19 14:32:50 +0200
commite312b160f4b3c3032109a4b4262f4857d8e56033 (patch)
tree8fc54f8080218e66cccc158aff30329ae534bea8
parent10d9b01f6177e86d49537a814e3bbca8740f571a (diff)
AbsoluteVolume change custom call to official API
BT mainline effort to remove hidden api: `avrcpSupportsAbsoluteVolume` only inform for a new volume behavior and AudioManager already provide such method. Bug: 190422401 Tag: #refactor Test: Manual: Start bluetooth, play music and change volume from speaker/phone Change-Id: I935df5e0f5632cd4144343bdb1bc2b9d7bc61c01
-rw-r--r--media/java/android/media/AudioManager.java15
-rwxr-xr-xmedia/java/android/media/IAudioService.aidl2
-rw-r--r--services/core/java/com/android/server/audio/AudioService.java7
3 files changed, 6 insertions, 18 deletions
diff --git a/media/java/android/media/AudioManager.java b/media/java/android/media/AudioManager.java
index c068963adc92..ed8cdb941792 100644
--- a/media/java/android/media/AudioManager.java
+++ b/media/java/android/media/AudioManager.java
@@ -5203,21 +5203,6 @@ public class AudioManager {
}
}
- /**
- * @hide
- * Notifies AudioService that it is connected to an A2DP device that supports absolute volume,
- * so that AudioService can send volume change events to the A2DP device, rather than handling
- * them.
- */
- public void avrcpSupportsAbsoluteVolume(String address, boolean support) {
- final IAudioService service = getService();
- try {
- service.avrcpSupportsAbsoluteVolume(address, support);
- } catch (RemoteException e) {
- throw e.rethrowFromSystemServer();
- }
- }
-
/**
* {@hide}
*/
diff --git a/media/java/android/media/IAudioService.aidl b/media/java/android/media/IAudioService.aidl
index 71912800e0d7..dd44fdf1e8c4 100755
--- a/media/java/android/media/IAudioService.aidl
+++ b/media/java/android/media/IAudioService.aidl
@@ -171,8 +171,6 @@ interface IAudioService {
int getEncodedSurroundMode(int targetSdkVersion);
- oneway void avrcpSupportsAbsoluteVolume(String address, boolean support);
-
void setSpeakerphoneOn(IBinder cb, boolean on);
boolean isSpeakerphoneOn();
diff --git a/services/core/java/com/android/server/audio/AudioService.java b/services/core/java/com/android/server/audio/AudioService.java
index 8e1b06b8ca09..d75f21c4ef85 100644
--- a/services/core/java/com/android/server/audio/AudioService.java
+++ b/services/core/java/com/android/server/audio/AudioService.java
@@ -6136,6 +6136,11 @@ public class AudioService extends IAudioService.Stub
if (pkgName == null) {
pkgName = "";
}
+ if (device.getType() == AudioDeviceInfo.TYPE_BLUETOOTH_A2DP) {
+ avrcpSupportsAbsoluteVolume(device.getAddress(),
+ deviceVolumeBehavior == AudioManager.DEVICE_VOLUME_BEHAVIOR_ABSOLUTE);
+ return;
+ }
int audioSystemDeviceOut = AudioDeviceInfo.convertDeviceTypeToInternalDevice(
device.getType());
@@ -7792,7 +7797,7 @@ public class AudioService extends IAudioService.Stub
}
}
- public void avrcpSupportsAbsoluteVolume(String address, boolean support) {
+ private void avrcpSupportsAbsoluteVolume(String address, boolean support) {
// address is not used for now, but may be used when multiple a2dp devices are supported
sVolumeLogger.log(new AudioEventLogger.StringEvent("avrcpSupportsAbsoluteVolume addr="
+ address + " support=" + support));