OSDN Git Service

Absolute volume: Black list device if remote can't change volume
authorLiejun Tao <baibai@motorola.com>
Wed, 9 Mar 2016 05:04:17 +0000 (23:04 -0600)
committerAndre Eisenbach <eisenbach@google.com>
Tue, 26 Apr 2016 16:21:14 +0000 (16:21 +0000)
If remote device failed to change volume too many times, black list it
to avoid using Absolute volume feature.

Bug: 26694114
Change-Id: Idb7a772b0ef936b2351bfc92722ec3c0d748822c

src/com/android/bluetooth/avrcp/Avrcp.java

index 099ab54..808d2bf 100755 (executable)
@@ -146,7 +146,7 @@ public final class Avrcp {
     private static final int SKIP_DOUBLE_INTERVAL = 3000;
     private static final long MAX_MULTIPLIER_VALUE = 128L;
     private static final int CMD_TIMEOUT_DELAY = 2000;
-    private static final int MAX_ERROR_RETRY_TIMES = 3;
+    private static final int MAX_ERROR_RETRY_TIMES = 6;
     private static final int AVRCP_MAX_VOL = 127;
     private static final int AVRCP_BASE_VOLUME_STEP = 1;
 
@@ -533,6 +533,8 @@ public final class Avrcp {
                 mVolCmdSetInProgress = false;
                 if (mAbsVolRetryTimes >= MAX_ERROR_RETRY_TIMES) {
                     mAbsVolRetryTimes = 0;
+                    /* too many volume change failures, black list the device */
+                    blackListCurrentDevice();
                 } else {
                     mAbsVolRetryTimes += 1;
                     if (setVolumeNative(mLastRemoteVolume)) {