DO NOT MERGE Enhance AVRCP Absolute Volume control implementation

1. Remember the current local volume level, current remote volume level.
When user adjusts the volume, compare the returned remote volume
level with desired volume level, if they don't match, do retry.

2.Learn and remember the volume mapping between phone volume level and
remote volume level as the user adjusts volume. When user adjusts to one
remembered volume level, use the mapping directly. Otherwise calculate
the remote volume level and try with method described in step one.

3. Blacklist device if remote device does not tell its initial volume.

4. Define optional threshold for initial volume level to avoid headset
being too loud upon re-connection.

Signed-off-by: Liejun Tao <>
Change-Id: I78112f5f401666f5a680561473a5c7f914071fbe
(cherry picked from commit 1a1169dcb2627c9667153232a356984e81f24e82)
4 files changed