diff options
author | Harold Tan <harotan@codeaurora.org> | 2021-07-31 00:33:07 -0700 |
---|---|---|
committer | Harold Tan <harotan@codeaurora.org> | 2021-08-04 15:26:06 -0700 |
commit | bbc5d3f6609a918aaee5cfb1518e2f285339b658 (patch) | |
tree | 364488b0dc9d7d1a3d0da0ca18b35cdd4348c088 | |
parent | 74e926387b8bf37848ce7a3d57601a591623fc8a (diff) |
WiredAccessoryManager: Update stream index assignment
DP device node index was mistakenly being used as
stream index in the constructor of UEventInfo class.
Add logic to differentiate stream index assignment
under single and multiple active DP connection scenarios.
CRs-Fixed: 2998257
Change-Id: I96a261237431959c8d7e49b887c91858616de8a7
-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; } |