Loading packages/SettingsLib/src/com/android/settingslib/development/AbstractEnableAdbPreferenceController.java +11 −0 Original line number Diff line number Diff line Loading @@ -16,11 +16,13 @@ package com.android.settingslib.development; import android.app.ActivityManager; import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.os.UserManager; import android.provider.Settings; import android.support.annotation.VisibleForTesting; import android.support.v14.preference.SwitchPreference; import android.support.v4.content.LocalBroadcastManager; import android.support.v7.preference.Preference; Loading Loading @@ -95,6 +97,10 @@ public abstract class AbstractEnableAdbPreferenceController extends @Override public boolean handlePreferenceTreeClick(Preference preference) { if (isUserAMonkey()) { return false; } if (TextUtils.equals(KEY_ENABLE_ADB, preference.getKey())) { if (!isAdbEnabled()) { showConfirmationDialog(preference); Loading @@ -117,4 +123,9 @@ public abstract class AbstractEnableAdbPreferenceController extends LocalBroadcastManager.getInstance(mContext) .sendBroadcast(new Intent(ACTION_ENABLE_ADB_STATE_CHANGED)); } @VisibleForTesting boolean isUserAMonkey() { return ActivityManager.isUserAMonkey(); } } packages/SettingsLib/tests/robotests/src/com/android/settingslib/development/EnableAdbPreferenceControllerTest.java +15 −1 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import static com.google.common.truth.Truth.assertThat; import static org.mockito.Answers.RETURNS_DEEP_STUBS; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; Loading Loading @@ -118,6 +119,18 @@ public class EnableAdbPreferenceControllerTest { Settings.Global.ADB_ENABLED, 0)).isEqualTo(0); } @Test public void handlePreferenceTreeClick_isMonkeyUser_shouldBeFalse() { mController = spy(mController); doReturn(true).when(mController).isUserAMonkey(); when(mUserManager.isAdminUser()).thenReturn(true); mController.displayPreference(mScreen); final boolean handled = mController.handlePreferenceTreeClick(mPreference); assertThat(handled).isFalse(); } @Test public void updateState_settingsOn_shouldCheck() { when(mUserManager.isAdminUser()).thenReturn(true); Loading Loading @@ -161,6 +174,7 @@ public class EnableAdbPreferenceControllerTest { } @Override public void dismissConfirmationDialog() {} public void dismissConfirmationDialog() { } } } Loading
packages/SettingsLib/src/com/android/settingslib/development/AbstractEnableAdbPreferenceController.java +11 −0 Original line number Diff line number Diff line Loading @@ -16,11 +16,13 @@ package com.android.settingslib.development; import android.app.ActivityManager; import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.os.UserManager; import android.provider.Settings; import android.support.annotation.VisibleForTesting; import android.support.v14.preference.SwitchPreference; import android.support.v4.content.LocalBroadcastManager; import android.support.v7.preference.Preference; Loading Loading @@ -95,6 +97,10 @@ public abstract class AbstractEnableAdbPreferenceController extends @Override public boolean handlePreferenceTreeClick(Preference preference) { if (isUserAMonkey()) { return false; } if (TextUtils.equals(KEY_ENABLE_ADB, preference.getKey())) { if (!isAdbEnabled()) { showConfirmationDialog(preference); Loading @@ -117,4 +123,9 @@ public abstract class AbstractEnableAdbPreferenceController extends LocalBroadcastManager.getInstance(mContext) .sendBroadcast(new Intent(ACTION_ENABLE_ADB_STATE_CHANGED)); } @VisibleForTesting boolean isUserAMonkey() { return ActivityManager.isUserAMonkey(); } }
packages/SettingsLib/tests/robotests/src/com/android/settingslib/development/EnableAdbPreferenceControllerTest.java +15 −1 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import static com.google.common.truth.Truth.assertThat; import static org.mockito.Answers.RETURNS_DEEP_STUBS; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; Loading Loading @@ -118,6 +119,18 @@ public class EnableAdbPreferenceControllerTest { Settings.Global.ADB_ENABLED, 0)).isEqualTo(0); } @Test public void handlePreferenceTreeClick_isMonkeyUser_shouldBeFalse() { mController = spy(mController); doReturn(true).when(mController).isUserAMonkey(); when(mUserManager.isAdminUser()).thenReturn(true); mController.displayPreference(mScreen); final boolean handled = mController.handlePreferenceTreeClick(mPreference); assertThat(handled).isFalse(); } @Test public void updateState_settingsOn_shouldCheck() { when(mUserManager.isAdminUser()).thenReturn(true); Loading Loading @@ -161,6 +174,7 @@ public class EnableAdbPreferenceControllerTest { } @Override public void dismissConfirmationDialog() {} public void dismissConfirmationDialog() { } } }