diff options
author | Treehugger Robot <android-build-prod@system.gserviceaccount.com> | 2021-08-14 02:50:35 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2021-08-14 02:50:35 +0000 |
commit | 74f0512dfcde5dbdc87ad2cace399080c35bd7e3 (patch) | |
tree | 519da5c72f0bd9188d27aef6589ca447d8fde012 | |
parent | 60028b87406933627161e14764bbb8fa8ab543a8 (diff) | |
parent | bbc5d3f6609a918aaee5cfb1518e2f285339b658 (diff) |
Merge "WiredAccessoryManager: Update stream index assignment" into s-keystone-qcom-dev
-rw-r--r-- | services/core/java/com/android/server/WiredAccessoryManager.java | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/WiredAccessoryManager.java b/services/core/java/com/android/server/WiredAccessoryManager.java index 5562275570e0..b3a45079ed5e 100644 --- a/services/core/java/com/android/server/WiredAccessoryManager.java +++ b/services/core/java/com/android/server/WiredAccessoryManager.java @@ -574,6 +574,9 @@ final class WiredAccessoryManager implements WiredAccessoryCallbacks { } if (devPath.equals(uei.getDevPath())) { + if (state == 1 && mDpCount > 0) { + uei.setStreamIndex(mDpCount); + } updateLocked(name, uei.getDevAddress(), uei.computeNewHeadsetState(mHeadsetState, state)); @@ -608,7 +611,6 @@ final class WiredAccessoryManager implements WiredAccessoryCallbacks { assert(idx2 != -1); int dev = Integer.parseInt(mDevName.substring(idx+1, idx2)); int cable = Integer.parseInt(mDevName.substring(idx2+1)); - mDevAddress = "controller=" + cable + ";stream=" + dev; if (LOG) { Slog.v(TAG, "UEvent dev address " + mDevAddress); } @@ -693,6 +695,14 @@ final class WiredAccessoryManager implements WiredAccessoryCallbacks { } } + public void setStreamIndex(int streamIndex) { + int index1 = mDevAddress.indexOf("="); + int index2 = mDevAddress.indexOf("=", index1 + 1); + + String allExceptStreamIdx = mDevAddress.substring(0, index2 + 1); + mDevAddress = allExceptStreamIdx + String.valueOf(streamIndex); + } + public String getDevName() { return mDevName; } |