diff --git a/src/com/android/settings/development/DefaultUsbConfigurationPreferenceController.java b/src/com/android/settings/development/DefaultUsbConfigurationPreferenceController.java index 905c552e02f..be7704fd735 100644 --- a/src/com/android/settings/development/DefaultUsbConfigurationPreferenceController.java +++ b/src/com/android/settings/development/DefaultUsbConfigurationPreferenceController.java @@ -54,4 +54,11 @@ public class DefaultUsbConfigurationPreferenceController extends mPreference.setDisabledByAdmin( checkIfUsbDataSignalingIsDisabled(mContext, UserHandle.myUserId())); } + + @Override + protected void onDeveloperOptionsSwitchEnabled() { + super.onDeveloperOptionsSwitchEnabled(); + mPreference.setDisabledByAdmin( + checkIfUsbDataSignalingIsDisabled(mContext, UserHandle.myUserId())); + } } diff --git a/src/com/android/settings/development/UsbAudioRoutingPreferenceController.java b/src/com/android/settings/development/UsbAudioRoutingPreferenceController.java index 8aa4f3c3be5..e130b2b653b 100644 --- a/src/com/android/settings/development/UsbAudioRoutingPreferenceController.java +++ b/src/com/android/settings/development/UsbAudioRoutingPreferenceController.java @@ -83,4 +83,11 @@ public class UsbAudioRoutingPreferenceController extends DeveloperOptionsPrefere Settings.Secure.USB_AUDIO_AUTOMATIC_ROUTING_DISABLED, SETTING_VALUE_OFF); ((SwitchPreference) mPreference).setChecked(false); } + + @Override + protected void onDeveloperOptionsSwitchEnabled() { + super.onDeveloperOptionsSwitchEnabled(); + mPreference.setDisabledByAdmin( + checkIfUsbDataSignalingIsDisabled(mContext, UserHandle.myUserId())); + } } diff --git a/tests/robotests/src/com/android/settings/development/DefaultUsbConfigurationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/DefaultUsbConfigurationPreferenceControllerTest.java index 15f4eb9e7c2..c9b13e27a0c 100644 --- a/tests/robotests/src/com/android/settings/development/DefaultUsbConfigurationPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/development/DefaultUsbConfigurationPreferenceControllerTest.java @@ -91,4 +91,27 @@ public class DefaultUsbConfigurationPreferenceControllerTest { verify(mPreference).setDisabledByAdmin(eq(new RestrictedLockUtils.EnforcedAdmin( TEST_COMPONENT_NAME, null, UserHandle.SYSTEM))); } + + @Test + public void onDeveloperOptionsSwitchEnabled_usbEnabled_shouldNotDisablePreference() { + when(mDevicePolicyManager.isUsbDataSignalingEnabledForUser( + UserHandle.myUserId())).thenReturn(true); + when(mDevicePolicyManager.getProfileOwner()).thenReturn(TEST_COMPONENT_NAME); + + mController.onDeveloperOptionsSwitchEnabled(); + + verify(mPreference).setDisabledByAdmin(null); + } + + @Test + public void onDeveloperOptionsSwitchEnabled_usbDisabled_shouldDisablePreference() { + when(mDevicePolicyManager.isUsbDataSignalingEnabledForUser( + UserHandle.myUserId())).thenReturn(false); + when(mDevicePolicyManager.getProfileOwner()).thenReturn(TEST_COMPONENT_NAME); + + mController.onDeveloperOptionsSwitchEnabled(); + + verify(mPreference).setDisabledByAdmin(eq(new RestrictedLockUtils.EnforcedAdmin( + TEST_COMPONENT_NAME, null, UserHandle.SYSTEM))); + } } diff --git a/tests/robotests/src/com/android/settings/development/UsbAudioRoutingPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/UsbAudioRoutingPreferenceControllerTest.java index 1d45c1b4dc7..69d2c99c0ab 100644 --- a/tests/robotests/src/com/android/settings/development/UsbAudioRoutingPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/development/UsbAudioRoutingPreferenceControllerTest.java @@ -147,4 +147,27 @@ public class UsbAudioRoutingPreferenceControllerTest { verify(mPreference).setEnabled(false); verify(mPreference).setChecked(false); } + + @Test + public void onDeveloperOptionsSwitchEnabled_usbEnabled_shouldNotDisablePreference() { + when(mDevicePolicyManager.isUsbDataSignalingEnabledForUser( + UserHandle.myUserId())).thenReturn(true); + when(mDevicePolicyManager.getProfileOwner()).thenReturn(TEST_COMPONENT_NAME); + + mController.onDeveloperOptionsSwitchEnabled(); + + verify(mPreference).setDisabledByAdmin(null); + } + + @Test + public void onDeveloperOptionsSwitchEnabled_usbDisabled_shouldDisablePreference() { + when(mDevicePolicyManager.isUsbDataSignalingEnabledForUser( + UserHandle.myUserId())).thenReturn(false); + when(mDevicePolicyManager.getProfileOwner()).thenReturn(TEST_COMPONENT_NAME); + + mController.onDeveloperOptionsSwitchEnabled(); + + verify(mPreference).setDisabledByAdmin(eq(new RestrictedLockUtils.EnforcedAdmin( + TEST_COMPONENT_NAME, null, UserHandle.SYSTEM))); + } }