Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 27fd3e76 authored by ykhung's avatar ykhung Committed by YK Hung
Browse files

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
parent 3d137a06
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -688,8 +688,12 @@ public class Utils {
                continue;
            }
            for (int complianceWarningType : complianceWarnings) {
                if (complianceWarningType != 0) {
                switch (complianceWarningType) {
                    case UsbPortStatus.COMPLIANCE_WARNING_OTHER:
                    case UsbPortStatus.COMPLIANCE_WARNING_DEBUG_ACCESSORY:
                        return true;
                    default:
                        break;
                }
            }
        }
+20 −3
Original line number Diff line number Diff line
@@ -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});
    }
}