From c203010bd32f37e6ac350c821fbd83f6f4e6afaf Mon Sep 17 00:00:00 2001 From: ykhung Date: Wed, 21 Dec 2022 11:44:36 +0800 Subject: Add supportsComplianceWarnings() new checking condition Add supportsComplianceWarnings() new checking condition based on the https://b.corp.google.com/issues/246960554#comment19 (updated from the Usb firmware) ADB command: ``` adb shell dumpsys usb add-port "matrix" dual --compliance-warnings; adb shell dumpsys usb connect-port "matrix" ufp? sink? device?; adb shell dumpsys usb set-compliance-reasons "matrix" 4 ``` Bug: 246960554 Test: make test RunSettingsLibRoboTests -j40 Change-Id: Idea8f2ba2d79fbb8838e9a1abeee0ddd78d01ba8 --- .../src/com/android/settingslib/Utils.java | 3 ++ .../src/com/android/settingslib/UtilsTest.java | 36 ++++++++++++++++------ 2 files changed, 29 insertions(+), 10 deletions(-) diff --git a/packages/SettingsLib/src/com/android/settingslib/Utils.java b/packages/SettingsLib/src/com/android/settingslib/Utils.java index 8a30a3bbe784..888b09fafd3b 100644 --- a/packages/SettingsLib/src/com/android/settingslib/Utils.java +++ b/packages/SettingsLib/src/com/android/settingslib/Utils.java @@ -653,6 +653,9 @@ public class Utils { } for (UsbPort usbPort : usbPortList) { Log.d(tag, "usbPort: " + usbPort); + if (!usbPort.supportsComplianceWarnings()) { + continue; + } final UsbPortStatus usbStatus = usbPort.getStatus(); if (usbStatus == null || !usbStatus.isConnected()) { continue; diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/UtilsTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/UtilsTest.java index 68a1e194c15b..dce1e206e321 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/UtilsTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/UtilsTest.java @@ -448,25 +448,41 @@ public class UtilsTest { @Test public void containsIncompatibleChargers_returnTrue() { - final List usbPorts = new ArrayList<>(); - usbPorts.add(mUsbPort); - when(mUsbManager.getPorts()).thenReturn(usbPorts); - when(mUsbPort.getStatus()).thenReturn(mUsbPortStatus); - when(mUsbPortStatus.isConnected()).thenReturn(true); - when(mUsbPortStatus.getComplianceWarnings()).thenReturn(new int[]{1}); - + setupIncompatibleCharging(); assertThat(Utils.containsIncompatibleChargers(mContext, "tag")).isTrue(); } @Test public void containsIncompatibleChargers_emptyComplianceWarnings_returnFalse() { + setupIncompatibleCharging(); + when(mUsbPortStatus.getComplianceWarnings()).thenReturn(new int[1]); + + assertThat(Utils.containsIncompatibleChargers(mContext, "tag")).isFalse(); + } + + @Test + public void containsIncompatibleChargers_notSupportComplianceWarnings_returnFalse() { + setupIncompatibleCharging(); + when(mUsbPort.supportsComplianceWarnings()).thenReturn(false); + + assertThat(Utils.containsIncompatibleChargers(mContext, "tag")).isFalse(); + } + + @Test + public void containsIncompatibleChargers_usbNotConnected_returnFalse() { + setupIncompatibleCharging(); + when(mUsbPortStatus.isConnected()).thenReturn(false); + + assertThat(Utils.containsIncompatibleChargers(mContext, "tag")).isFalse(); + } + + private void setupIncompatibleCharging() { final List usbPorts = new ArrayList<>(); usbPorts.add(mUsbPort); when(mUsbManager.getPorts()).thenReturn(usbPorts); when(mUsbPort.getStatus()).thenReturn(mUsbPortStatus); + when(mUsbPort.supportsComplianceWarnings()).thenReturn(true); when(mUsbPortStatus.isConnected()).thenReturn(true); - when(mUsbPortStatus.getComplianceWarnings()).thenReturn(new int[1]); - - assertThat(Utils.containsIncompatibleChargers(mContext, "tag")).isFalse(); + when(mUsbPortStatus.getComplianceWarnings()).thenReturn(new int[]{1}); } } -- cgit v1.2.3-59-g8ed1b