summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHarold Tan <harotan@codeaurora.org>2021-07-31 00:33:07 -0700
committerHarold Tan <harotan@codeaurora.org>2021-08-04 15:26:06 -0700
commitbbc5d3f6609a918aaee5cfb1518e2f285339b658 (patch)
tree364488b0dc9d7d1a3d0da0ca18b35cdd4348c088
parent74e926387b8bf37848ce7a3d57601a591623fc8a (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.java12
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;
}