Update incompatible charger checking rule

Update the incompatible charger checking rule based on the UsbManager owner feedback to avoid the false alarm condition

Fix: 278316711
Test: make test RunSettingsLibRoboTests ROBOTEST_FILTER=com.android.settingslib.UtilsTest
Change-Id: I1b6b1f042a3a743f095637b50865ae77b9a09442
This commit is contained in:
ykhung
2023-06-01 11:37:00 +08:00
committed by YK Hung
parent 3d137a068c
commit 27fd3e7608
2 changed files with 26 additions and 5 deletions

View File

@@ -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;
}
}
}

View File

@@ -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<UsbPort> 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});
}
}