OSDN Git Service

Don't set USB mode if user is a monkey
authorJerry Zhang <zhangjerry@google.com>
Tue, 13 Feb 2018 23:58:14 +0000 (15:58 -0800)
committerJerry Zhang <zhangjerry@google.com>
Wed, 14 Feb 2018 00:51:21 +0000 (16:51 -0800)
Test: tests pass
Fixes: 73246183
Change-Id: I9570c8bd8b11edd6eb0944a4aa766c22b4cc3619

src/com/android/settings/connecteddevice/usb/UsbDetailsProfilesController.java
tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsProfilesControllerTest.java

index 1375b4c..1f662c0 100644 (file)
@@ -17,6 +17,8 @@
 package com.android.settings.connecteddevice.usb;
 
 import com.android.settings.R;
+import com.android.settings.Utils;
+
 import android.content.Context;
 import android.hardware.usb.UsbManager;
 import android.support.v14.preference.PreferenceFragment;
@@ -136,11 +138,18 @@ public class UsbDetailsProfilesController extends UsbDetailsController
         } else {
             mode &= ~thisMode;
         }
-        mUsbBackend.setMode(mode);
+        if (!Utils.isMonkeyRunning()) {
+            mUsbBackend.setMode(mode);
+        }
         return false;
     }
 
     @Override
+    public boolean isAvailable() {
+        return !Utils.isMonkeyRunning();
+    }
+
+    @Override
     public String getPreferenceKey() {
         return mKey;
     }
index 557d836..c733078 100644 (file)
@@ -36,6 +36,7 @@ import com.android.settings.TestConfig;
 import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
 import com.android.settings.testutils.shadow.SettingsShadowResources;
+import com.android.settings.testutils.shadow.ShadowUtils;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import com.google.android.collect.Lists;
@@ -228,6 +229,13 @@ public class UsbDetailsProfilesControllerTest {
         assertThat(!switches.get(0).isChecked());
     }
 
+    @Test
+    @Config(shadows = ShadowUtils.class)
+    public void testIsAvailable_isMonkey_shouldReturnFalse() {
+        ShadowUtils.setIsUserAMonkey(true);
+        assertThat(mDetailsProfilesController.isAvailable()).isFalse();
+    }
+
     private List<SwitchPreference> getProfileSwitches() {
         ArrayList<SwitchPreference> result = new ArrayList<>();
         for (int i = 0; i < mPreference.getPreferenceCount(); i++) {