diff --git a/packages/SettingsLib/src/com/android/settingslib/Utils.java b/packages/SettingsLib/src/com/android/settingslib/Utils.java index 8a30a3bbe784f..888b09fafd3b2 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 68a1e194c15bd..dce1e206e3212 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() { - final List usbPorts = new ArrayList<>(); - usbPorts.add(mUsbPort); - when(mUsbManager.getPorts()).thenReturn(usbPorts); - when(mUsbPort.getStatus()).thenReturn(mUsbPortStatus); - when(mUsbPortStatus.isConnected()).thenReturn(true); + 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}); + } }