summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-05-31 13:33:42 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-05-31 13:33:42 +0000
commit1d56c58117af8910b57f57bf0ffb081e884c9ad2 (patch)
treec51af5fffb2425e483d21b31f25572173be82acc
parentab24d7c1b3975aee49be7eed0d1f9754c9319d81 (diff)
parentbf75a05886e1234ce5edfcf4fc0f53abe95d1087 (diff)
downloadbase-android13-qpr3-s5-release.tar.gz
Merge cherrypicks of ['googleplex-android-review.googlesource.com/23428200', 'googleplex-android-review.googlesource.com/23479325'] into sparse-10217051-L92600000960987363.android-13.0.0_r63android13-qpr3-s5-release
SPARSE_CHANGE: I02ddaa5e823379510e9c81a8d803d5269e6d85ad SPARSE_CHANGE: If1c14cc0a4e3fbdfbed2c105d37ece9a866f18ed Change-Id: Idb5cfe95571ccd635488ebdcbf0de1dff247dca3
-rw-r--r--packages/SystemUI/src/com/android/systemui/controls/management/ControlsProviderSelectorActivity.kt1
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/controls/management/ControlsProviderSelectorActivityTest.kt2
-rw-r--r--services/usb/java/com/android/server/usb/descriptors/UsbDescriptorParser.java42
3 files changed, 35 insertions, 10 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/controls/management/ControlsProviderSelectorActivity.kt b/packages/SystemUI/src/com/android/systemui/controls/management/ControlsProviderSelectorActivity.kt
index 3808e73ca085..5a3d21eacc14 100644
--- a/packages/SystemUI/src/com/android/systemui/controls/management/ControlsProviderSelectorActivity.kt
+++ b/packages/SystemUI/src/com/android/systemui/controls/management/ControlsProviderSelectorActivity.kt
@@ -214,7 +214,6 @@ open class ControlsProviderSelectorActivity @Inject constructor(
putExtra(ControlsFavoritingActivity.EXTRA_FROM_PROVIDER_SELECTOR, true)
}
startActivity(intent, ActivityOptions.makeSceneTransitionAnimation(this).toBundle())
- animateExitAndFinish()
}
}
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/controls/management/ControlsProviderSelectorActivityTest.kt b/packages/SystemUI/tests/src/com/android/systemui/controls/management/ControlsProviderSelectorActivityTest.kt
index 8dfd22378a14..82aaccdbbf0a 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/controls/management/ControlsProviderSelectorActivityTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/controls/management/ControlsProviderSelectorActivityTest.kt
@@ -144,7 +144,7 @@ class ControlsProviderSelectorActivityTest : SysuiTestCase() {
assertThat(activityRule.activity.lastStartedActivity?.component?.className)
.isEqualTo(ControlsFavoritingActivity::class.java.name)
- assertThat(activityRule.activity.triedToFinish).isTrue()
+ assertThat(activityRule.activity.triedToFinish).isFalse()
}
@Test
diff --git a/services/usb/java/com/android/server/usb/descriptors/UsbDescriptorParser.java b/services/usb/java/com/android/server/usb/descriptors/UsbDescriptorParser.java
index 626ce8927158..55419a80b604 100644
--- a/services/usb/java/com/android/server/usb/descriptors/UsbDescriptorParser.java
+++ b/services/usb/java/com/android/server/usb/descriptors/UsbDescriptorParser.java
@@ -584,15 +584,34 @@ public final class UsbDescriptorParser {
}
/**
+ * Returns true only if there is a terminal whose subtype and terminal type are the same as
+ * the given values.
* @hide
*/
- public boolean hasAudioTerminal(int subType) {
+ public boolean hasAudioTerminal(int subType, int terminalType) {
for (UsbDescriptor descriptor : mDescriptors) {
- if (descriptor instanceof UsbACInterface) {
- if (((UsbACInterface) descriptor).getSubclass()
- == UsbDescriptor.AUDIO_AUDIOCONTROL
- && ((UsbACInterface) descriptor).getSubtype()
- == subType) {
+ if (descriptor instanceof UsbACTerminal) {
+ if (((UsbACTerminal) descriptor).getSubclass() == UsbDescriptor.AUDIO_AUDIOCONTROL
+ && ((UsbACTerminal) descriptor).getSubtype() == subType
+ && ((UsbACTerminal) descriptor).getTerminalType() == terminalType) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Returns true only if there is an interface whose subtype is the same as the given one and
+ * terminal type is different from the given one.
+ * @hide
+ */
+ public boolean hasAudioTerminalExcludeType(int subType, int excludedTerminalType) {
+ for (UsbDescriptor descriptor : mDescriptors) {
+ if (descriptor instanceof UsbACTerminal) {
+ if (((UsbACTerminal) descriptor).getSubclass() == UsbDescriptor.AUDIO_AUDIOCONTROL
+ && ((UsbACTerminal) descriptor).getSubtype() == subType
+ && ((UsbACTerminal) descriptor).getTerminalType() != excludedTerminalType) {
return true;
}
}
@@ -604,14 +623,21 @@ public final class UsbDescriptorParser {
* @hide
*/
public boolean hasAudioPlayback() {
- return hasAudioTerminal(UsbACInterface.ACI_OUTPUT_TERMINAL);
+ return hasAudioTerminalExcludeType(
+ UsbACInterface.ACI_OUTPUT_TERMINAL, UsbTerminalTypes.TERMINAL_USB_STREAMING)
+ && hasAudioTerminal(
+ UsbACInterface.ACI_INPUT_TERMINAL, UsbTerminalTypes.TERMINAL_USB_STREAMING);
}
/**
* @hide
*/
public boolean hasAudioCapture() {
- return hasAudioTerminal(UsbACInterface.ACI_INPUT_TERMINAL);
+ return hasAudioTerminalExcludeType(
+ UsbACInterface.ACI_INPUT_TERMINAL, UsbTerminalTypes.TERMINAL_USB_STREAMING)
+ && hasAudioTerminal(
+ UsbACInterface.ACI_OUTPUT_TERMINAL,
+ UsbTerminalTypes.TERMINAL_USB_STREAMING);
}
/**