Loading src/com/android/settings/deviceinfo/UsbBackend.java +10 −7 Original line number Diff line number Diff line Loading @@ -46,7 +46,7 @@ public class UsbBackend { private UsbPort mPort; private UsbPortStatus mPortStatus; private boolean mIsUnlocked; private Context mContext; public UsbBackend(Context context) { this(context, new UserRestrictionUtil(context)); Loading @@ -54,11 +54,7 @@ public class UsbBackend { @VisibleForTesting UsbBackend(Context context, UserRestrictionUtil userRestrictionUtil) { Intent intent = context.registerReceiver(null, new IntentFilter(UsbManager.ACTION_USB_STATE)); mIsUnlocked = intent == null ? false : intent.getBooleanExtra(UsbManager.USB_DATA_UNLOCKED, false); mContext = context; mUsbManager = context.getSystemService(UsbManager.class); mRestricted = userRestrictionUtil.isUsbFileTransferRestricted(); Loading Loading @@ -92,7 +88,7 @@ public class UsbBackend { } public int getUsbDataMode() { if (!mIsUnlocked) { if (!isUsbDataUnlocked()) { return MODE_DATA_NONE; } else if (mUsbManager.isFunctionEnabled(UsbManager.USB_FUNCTION_MTP)) { return MODE_DATA_MTP; Loading @@ -104,6 +100,13 @@ public class UsbBackend { return MODE_DATA_NONE; // ... } private boolean isUsbDataUnlocked() { Intent intent = mContext.registerReceiver(null, new IntentFilter(UsbManager.ACTION_USB_STATE)); return intent == null ? false : intent.getBooleanExtra(UsbManager.USB_DATA_UNLOCKED, false); } private void setUsbFunction(int mode) { switch (mode) { case MODE_DATA_MTP: Loading tests/robotests/src/com/android/settings/deviceinfo/UsbBackendTest.java +22 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.settings.deviceinfo; import android.content.Context; import android.content.IntentFilter; import android.content.pm.PackageManager; import android.hardware.usb.UsbManager; Loading @@ -26,11 +27,15 @@ import com.android.settings.TestConfig; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentMatcher; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.annotation.Config; import static org.mockito.Answers.RETURNS_DEEP_STUBS; import static org.mockito.Matchers.argThat; import static org.mockito.Mockito.eq; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @RunWith(SettingsRobolectricTestRunner.class) Loading @@ -57,4 +62,21 @@ public class UsbBackendTest { UsbBackend usbBackend = new UsbBackend(mContext, mUserRestrictionUtil); // Should not crash } @Test public void getCurrentMode_shouldRegisterReceiverToGetUsbState() { UsbBackend usbBackend = new UsbBackend(mContext, mUserRestrictionUtil); usbBackend.getCurrentMode(); verify(mContext).registerReceiver(eq(null), argThat(new ArgumentMatcher<IntentFilter>() { @Override public boolean matches(Object i) { final IntentFilter intentFilter = (IntentFilter) i; return intentFilter != null && UsbManager.ACTION_USB_STATE.equals(intentFilter.getAction(0)); } })); } } Loading
src/com/android/settings/deviceinfo/UsbBackend.java +10 −7 Original line number Diff line number Diff line Loading @@ -46,7 +46,7 @@ public class UsbBackend { private UsbPort mPort; private UsbPortStatus mPortStatus; private boolean mIsUnlocked; private Context mContext; public UsbBackend(Context context) { this(context, new UserRestrictionUtil(context)); Loading @@ -54,11 +54,7 @@ public class UsbBackend { @VisibleForTesting UsbBackend(Context context, UserRestrictionUtil userRestrictionUtil) { Intent intent = context.registerReceiver(null, new IntentFilter(UsbManager.ACTION_USB_STATE)); mIsUnlocked = intent == null ? false : intent.getBooleanExtra(UsbManager.USB_DATA_UNLOCKED, false); mContext = context; mUsbManager = context.getSystemService(UsbManager.class); mRestricted = userRestrictionUtil.isUsbFileTransferRestricted(); Loading Loading @@ -92,7 +88,7 @@ public class UsbBackend { } public int getUsbDataMode() { if (!mIsUnlocked) { if (!isUsbDataUnlocked()) { return MODE_DATA_NONE; } else if (mUsbManager.isFunctionEnabled(UsbManager.USB_FUNCTION_MTP)) { return MODE_DATA_MTP; Loading @@ -104,6 +100,13 @@ public class UsbBackend { return MODE_DATA_NONE; // ... } private boolean isUsbDataUnlocked() { Intent intent = mContext.registerReceiver(null, new IntentFilter(UsbManager.ACTION_USB_STATE)); return intent == null ? false : intent.getBooleanExtra(UsbManager.USB_DATA_UNLOCKED, false); } private void setUsbFunction(int mode) { switch (mode) { case MODE_DATA_MTP: Loading
tests/robotests/src/com/android/settings/deviceinfo/UsbBackendTest.java +22 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.settings.deviceinfo; import android.content.Context; import android.content.IntentFilter; import android.content.pm.PackageManager; import android.hardware.usb.UsbManager; Loading @@ -26,11 +27,15 @@ import com.android.settings.TestConfig; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentMatcher; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.annotation.Config; import static org.mockito.Answers.RETURNS_DEEP_STUBS; import static org.mockito.Matchers.argThat; import static org.mockito.Mockito.eq; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @RunWith(SettingsRobolectricTestRunner.class) Loading @@ -57,4 +62,21 @@ public class UsbBackendTest { UsbBackend usbBackend = new UsbBackend(mContext, mUserRestrictionUtil); // Should not crash } @Test public void getCurrentMode_shouldRegisterReceiverToGetUsbState() { UsbBackend usbBackend = new UsbBackend(mContext, mUserRestrictionUtil); usbBackend.getCurrentMode(); verify(mContext).registerReceiver(eq(null), argThat(new ArgumentMatcher<IntentFilter>() { @Override public boolean matches(Object i) { final IntentFilter intentFilter = (IntentFilter) i; return intentFilter != null && UsbManager.ACTION_USB_STATE.equals(intentFilter.getAction(0)); } })); } }