diff --git a/packages/SettingsLib/src/com/android/settingslib/Utils.java b/packages/SettingsLib/src/com/android/settingslib/Utils.java index 8d4aa9a7b25ee..c967b568042cb 100644 --- a/packages/SettingsLib/src/com/android/settingslib/Utils.java +++ b/packages/SettingsLib/src/com/android/settingslib/Utils.java @@ -688,8 +688,12 @@ public class Utils { continue; } for (int complianceWarningType : complianceWarnings) { - if (complianceWarningType != 0) { - return true; + switch (complianceWarningType) { + case UsbPortStatus.COMPLIANCE_WARNING_OTHER: + case UsbPortStatus.COMPLIANCE_WARNING_DEBUG_ACCESSORY: + return true; + default: + break; } } } 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 0637e5d27f572..4a913c87bddf0 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/UtilsTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/UtilsTest.java @@ -455,11 +455,23 @@ public class UtilsTest { } @Test - public void containsIncompatibleChargers_returnTrue() { - setupIncompatibleCharging(); + public void containsIncompatibleChargers_complianeWarningOther_returnTrue() { + setupIncompatibleCharging(UsbPortStatus.COMPLIANCE_WARNING_OTHER); assertThat(Utils.containsIncompatibleChargers(mContext, TAG)).isTrue(); } + @Test + public void containsIncompatibleChargers_complianeWarningDebug_returnTrue() { + setupIncompatibleCharging(UsbPortStatus.COMPLIANCE_WARNING_DEBUG_ACCESSORY); + assertThat(Utils.containsIncompatibleChargers(mContext, TAG)).isTrue(); + } + + @Test + public void containsIncompatibleChargers_unexpectedWarningType_returnFalse() { + setupIncompatibleCharging(UsbPortStatus.COMPLIANCE_WARNING_BC_1_2); + assertThat(Utils.containsIncompatibleChargers(mContext, TAG)).isFalse(); + } + @Test public void containsIncompatibleChargers_emptyComplianceWarnings_returnFalse() { setupIncompatibleCharging(); @@ -494,12 +506,17 @@ public class UtilsTest { } private void setupIncompatibleCharging() { + setupIncompatibleCharging(UsbPortStatus.COMPLIANCE_WARNING_OTHER); + } + + private void setupIncompatibleCharging(int complianceWarningType) { 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}); + when(mUsbPortStatus.getComplianceWarnings()) + .thenReturn(new int[]{complianceWarningType}); } }