Loading core/java/android/hardware/usb/flags/system_sw_usb_flags.aconfig +7 −0 Original line number Diff line number Diff line Loading @@ -6,3 +6,10 @@ flag { description: "Enable USB data compliance warnings when set" bug: "296119135" } flag { name: "enable_input_power_limited_warning" namespace: "system_sw_usb" description: "Flag incompatible charging on COMPLIANCE_WARNING_INPUT_POWER_LIMITED instead of COMPLIANCE_WARNING_OTHER when enabled" bug: "308700954" } packages/SettingsLib/src/com/android/settingslib/Utils.java +18 −6 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.graphics.ColorFilter; import android.graphics.ColorMatrix; import android.graphics.ColorMatrixColorFilter; import android.graphics.drawable.Drawable; import android.hardware.usb.flags.Flags; import android.hardware.usb.UsbManager; import android.hardware.usb.UsbPort; import android.hardware.usb.UsbPortStatus; Loading Loading @@ -704,6 +705,16 @@ public class Utils { continue; } for (int complianceWarningType : complianceWarnings) { if (Flags.enableUsbDataComplianceWarning() && Flags.enableInputPowerLimitedWarning()) { switch (complianceWarningType) { case UsbPortStatus.COMPLIANCE_WARNING_INPUT_POWER_LIMITED: case UsbPortStatus.COMPLIANCE_WARNING_DEBUG_ACCESSORY: return true; default: break; } } else { switch (complianceWarningType) { case UsbPortStatus.COMPLIANCE_WARNING_OTHER: case UsbPortStatus.COMPLIANCE_WARNING_DEBUG_ACCESSORY: Loading @@ -713,6 +724,7 @@ public class Utils { } } } } return false; } Loading packages/SettingsLib/tests/robotests/src/com/android/settingslib/UtilsTest.java +37 −3 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ import android.app.ActivityManager; import android.content.Context; import android.content.Intent; import android.content.res.Resources; import android.hardware.usb.flags.Flags; import android.hardware.usb.UsbManager; import android.hardware.usb.UsbPort; import android.hardware.usb.UsbPortStatus; Loading @@ -36,6 +37,7 @@ import android.media.AudioManager; import android.os.BatteryManager; import android.os.SystemProperties; import android.os.UserHandle; import android.platform.test.flag.junit.SetFlagsRule; import android.provider.Settings; import android.telephony.AccessNetworkConstants; import android.telephony.NetworkRegistrationInfo; Loading @@ -44,6 +46,7 @@ import android.text.TextUtils; import org.junit.After; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentMatcher; Loading Loading @@ -85,6 +88,8 @@ public class UtilsTest { @Mock private UsbPortStatus mUsbPortStatus; @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(); @Before public void setUp() { MockitoAnnotations.initMocks(this); Loading Loading @@ -425,8 +430,38 @@ public class UtilsTest { } @Test public void containsIncompatibleChargers_complianeWarningOther_returnTrue() { public void containsIncompatibleChargers_complianeWarningOther_returnTrue_flagDisabled() { mSetFlagsRule.disableFlags(Flags.FLAG_ENABLE_USB_DATA_COMPLIANCE_WARNING); mSetFlagsRule.disableFlags(Flags.FLAG_ENABLE_INPUT_POWER_LIMITED_WARNING); setupIncompatibleCharging(UsbPortStatus.COMPLIANCE_WARNING_OTHER); assertThat(Utils.containsIncompatibleChargers(mContext, TAG)).isTrue(); } @Test public void containsIncompatibleChargers_complianeWarningPower_returnFalse_flagDisabled() { mSetFlagsRule.disableFlags(Flags.FLAG_ENABLE_USB_DATA_COMPLIANCE_WARNING); mSetFlagsRule.disableFlags(Flags.FLAG_ENABLE_INPUT_POWER_LIMITED_WARNING); setupIncompatibleCharging(UsbPortStatus.COMPLIANCE_WARNING_INPUT_POWER_LIMITED); assertThat(Utils.containsIncompatibleChargers(mContext, TAG)).isFalse(); } @Test public void containsIncompatibleChargers_complianeWarningOther_returnFalse_flagEnabled() { mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_USB_DATA_COMPLIANCE_WARNING); mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_INPUT_POWER_LIMITED_WARNING); setupIncompatibleCharging(UsbPortStatus.COMPLIANCE_WARNING_OTHER); assertThat(Utils.containsIncompatibleChargers(mContext, TAG)).isFalse(); } @Test public void containsIncompatibleChargers_complianeWarningPower_returnTrue_flagEnabled() { mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_USB_DATA_COMPLIANCE_WARNING); mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_INPUT_POWER_LIMITED_WARNING); setupIncompatibleCharging(UsbPortStatus.COMPLIANCE_WARNING_INPUT_POWER_LIMITED); assertThat(Utils.containsIncompatibleChargers(mContext, TAG)).isTrue(); } Loading @@ -446,7 +481,6 @@ public class UtilsTest { public void containsIncompatibleChargers_emptyComplianceWarnings_returnFalse() { setupIncompatibleCharging(); when(mUsbPortStatus.getComplianceWarnings()).thenReturn(new int[1]); assertThat(Utils.containsIncompatibleChargers(mContext, TAG)).isFalse(); } Loading Loading @@ -476,7 +510,7 @@ public class UtilsTest { } private void setupIncompatibleCharging() { setupIncompatibleCharging(UsbPortStatus.COMPLIANCE_WARNING_OTHER); setupIncompatibleCharging(UsbPortStatus.COMPLIANCE_WARNING_DEBUG_ACCESSORY); } private void setupIncompatibleCharging(int complianceWarningType) { Loading packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/BatteryControllerTest.java +1 −1 Original line number Diff line number Diff line Loading @@ -294,6 +294,6 @@ public class BatteryControllerTest extends SysuiTestCase { when(mUsbPort.supportsComplianceWarnings()).thenReturn(true); when(mUsbPortStatus.isConnected()).thenReturn(true); when(mUsbPortStatus.getComplianceWarnings()) .thenReturn(new int[]{UsbPortStatus.COMPLIANCE_WARNING_OTHER}); .thenReturn(new int[]{UsbPortStatus.COMPLIANCE_WARNING_DEBUG_ACCESSORY}); } } Loading
core/java/android/hardware/usb/flags/system_sw_usb_flags.aconfig +7 −0 Original line number Diff line number Diff line Loading @@ -6,3 +6,10 @@ flag { description: "Enable USB data compliance warnings when set" bug: "296119135" } flag { name: "enable_input_power_limited_warning" namespace: "system_sw_usb" description: "Flag incompatible charging on COMPLIANCE_WARNING_INPUT_POWER_LIMITED instead of COMPLIANCE_WARNING_OTHER when enabled" bug: "308700954" }
packages/SettingsLib/src/com/android/settingslib/Utils.java +18 −6 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.graphics.ColorFilter; import android.graphics.ColorMatrix; import android.graphics.ColorMatrixColorFilter; import android.graphics.drawable.Drawable; import android.hardware.usb.flags.Flags; import android.hardware.usb.UsbManager; import android.hardware.usb.UsbPort; import android.hardware.usb.UsbPortStatus; Loading Loading @@ -704,6 +705,16 @@ public class Utils { continue; } for (int complianceWarningType : complianceWarnings) { if (Flags.enableUsbDataComplianceWarning() && Flags.enableInputPowerLimitedWarning()) { switch (complianceWarningType) { case UsbPortStatus.COMPLIANCE_WARNING_INPUT_POWER_LIMITED: case UsbPortStatus.COMPLIANCE_WARNING_DEBUG_ACCESSORY: return true; default: break; } } else { switch (complianceWarningType) { case UsbPortStatus.COMPLIANCE_WARNING_OTHER: case UsbPortStatus.COMPLIANCE_WARNING_DEBUG_ACCESSORY: Loading @@ -713,6 +724,7 @@ public class Utils { } } } } return false; } Loading
packages/SettingsLib/tests/robotests/src/com/android/settingslib/UtilsTest.java +37 −3 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ import android.app.ActivityManager; import android.content.Context; import android.content.Intent; import android.content.res.Resources; import android.hardware.usb.flags.Flags; import android.hardware.usb.UsbManager; import android.hardware.usb.UsbPort; import android.hardware.usb.UsbPortStatus; Loading @@ -36,6 +37,7 @@ import android.media.AudioManager; import android.os.BatteryManager; import android.os.SystemProperties; import android.os.UserHandle; import android.platform.test.flag.junit.SetFlagsRule; import android.provider.Settings; import android.telephony.AccessNetworkConstants; import android.telephony.NetworkRegistrationInfo; Loading @@ -44,6 +46,7 @@ import android.text.TextUtils; import org.junit.After; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentMatcher; Loading Loading @@ -85,6 +88,8 @@ public class UtilsTest { @Mock private UsbPortStatus mUsbPortStatus; @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(); @Before public void setUp() { MockitoAnnotations.initMocks(this); Loading Loading @@ -425,8 +430,38 @@ public class UtilsTest { } @Test public void containsIncompatibleChargers_complianeWarningOther_returnTrue() { public void containsIncompatibleChargers_complianeWarningOther_returnTrue_flagDisabled() { mSetFlagsRule.disableFlags(Flags.FLAG_ENABLE_USB_DATA_COMPLIANCE_WARNING); mSetFlagsRule.disableFlags(Flags.FLAG_ENABLE_INPUT_POWER_LIMITED_WARNING); setupIncompatibleCharging(UsbPortStatus.COMPLIANCE_WARNING_OTHER); assertThat(Utils.containsIncompatibleChargers(mContext, TAG)).isTrue(); } @Test public void containsIncompatibleChargers_complianeWarningPower_returnFalse_flagDisabled() { mSetFlagsRule.disableFlags(Flags.FLAG_ENABLE_USB_DATA_COMPLIANCE_WARNING); mSetFlagsRule.disableFlags(Flags.FLAG_ENABLE_INPUT_POWER_LIMITED_WARNING); setupIncompatibleCharging(UsbPortStatus.COMPLIANCE_WARNING_INPUT_POWER_LIMITED); assertThat(Utils.containsIncompatibleChargers(mContext, TAG)).isFalse(); } @Test public void containsIncompatibleChargers_complianeWarningOther_returnFalse_flagEnabled() { mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_USB_DATA_COMPLIANCE_WARNING); mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_INPUT_POWER_LIMITED_WARNING); setupIncompatibleCharging(UsbPortStatus.COMPLIANCE_WARNING_OTHER); assertThat(Utils.containsIncompatibleChargers(mContext, TAG)).isFalse(); } @Test public void containsIncompatibleChargers_complianeWarningPower_returnTrue_flagEnabled() { mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_USB_DATA_COMPLIANCE_WARNING); mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_INPUT_POWER_LIMITED_WARNING); setupIncompatibleCharging(UsbPortStatus.COMPLIANCE_WARNING_INPUT_POWER_LIMITED); assertThat(Utils.containsIncompatibleChargers(mContext, TAG)).isTrue(); } Loading @@ -446,7 +481,6 @@ public class UtilsTest { public void containsIncompatibleChargers_emptyComplianceWarnings_returnFalse() { setupIncompatibleCharging(); when(mUsbPortStatus.getComplianceWarnings()).thenReturn(new int[1]); assertThat(Utils.containsIncompatibleChargers(mContext, TAG)).isFalse(); } Loading Loading @@ -476,7 +510,7 @@ public class UtilsTest { } private void setupIncompatibleCharging() { setupIncompatibleCharging(UsbPortStatus.COMPLIANCE_WARNING_OTHER); setupIncompatibleCharging(UsbPortStatus.COMPLIANCE_WARNING_DEBUG_ACCESSORY); } private void setupIncompatibleCharging(int complianceWarningType) { Loading
packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/BatteryControllerTest.java +1 −1 Original line number Diff line number Diff line Loading @@ -294,6 +294,6 @@ public class BatteryControllerTest extends SysuiTestCase { when(mUsbPort.supportsComplianceWarnings()).thenReturn(true); when(mUsbPortStatus.isConnected()).thenReturn(true); when(mUsbPortStatus.getComplianceWarnings()) .thenReturn(new int[]{UsbPortStatus.COMPLIANCE_WARNING_OTHER}); .thenReturn(new int[]{UsbPortStatus.COMPLIANCE_WARNING_DEBUG_ACCESSORY}); } }