Refactor Usb settings
1. Rename ShouldIgnoreClickEvent() to isClickEventIgnored(). 2. Use TetheringManager instead of ConnectivityManager. Bug: 175651578 Test: make -j42 RunSettingsRoboTests Change-Id: I37c49694257b7575550b5a905e293b5d056ba1bf
This commit is contained in:
@@ -28,7 +28,7 @@ import android.content.pm.PackageManager;
|
|||||||
import android.hardware.usb.UsbManager;
|
import android.hardware.usb.UsbManager;
|
||||||
import android.hardware.usb.UsbPort;
|
import android.hardware.usb.UsbPort;
|
||||||
import android.hardware.usb.UsbPortStatus;
|
import android.hardware.usb.UsbPortStatus;
|
||||||
import android.net.ConnectivityManager;
|
import android.net.TetheringManager;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
import android.os.UserManager;
|
import android.os.UserManager;
|
||||||
|
|
||||||
@@ -74,9 +74,8 @@ public class UsbBackend {
|
|||||||
mIsAdminUser = userManager.isAdminUser();
|
mIsAdminUser = userManager.isAdminUser();
|
||||||
|
|
||||||
mMidiSupported = context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_MIDI);
|
mMidiSupported = context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_MIDI);
|
||||||
ConnectivityManager cm =
|
final TetheringManager tm = context.getSystemService(TetheringManager.class);
|
||||||
(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
|
mTetheringSupported = tm.isTetheringSupported();
|
||||||
mTetheringSupported = cm.isTetheringSupported();
|
|
||||||
|
|
||||||
updatePorts();
|
updatePorts();
|
||||||
}
|
}
|
||||||
|
@@ -16,14 +16,17 @@
|
|||||||
|
|
||||||
package com.android.settings.connecteddevice.usb;
|
package com.android.settings.connecteddevice.usb;
|
||||||
|
|
||||||
import static android.net.ConnectivityManager.TETHERING_USB;
|
import static android.net.TetheringManager.TETHERING_USB;
|
||||||
|
|
||||||
import android.app.settings.SettingsEnums;
|
import android.app.settings.SettingsEnums;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.hardware.usb.UsbManager;
|
import android.hardware.usb.UsbManager;
|
||||||
import android.net.ConnectivityManager;
|
import android.net.TetheringManager;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.os.Handler;
|
||||||
|
import android.os.HandlerExecutor;
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
import androidx.annotation.VisibleForTesting;
|
import androidx.annotation.VisibleForTesting;
|
||||||
import androidx.preference.PreferenceScreen;
|
import androidx.preference.PreferenceScreen;
|
||||||
@@ -43,10 +46,13 @@ import java.util.List;
|
|||||||
* Provides options for selecting the default USB mode.
|
* Provides options for selecting the default USB mode.
|
||||||
*/
|
*/
|
||||||
public class UsbDefaultFragment extends RadioButtonPickerFragment {
|
public class UsbDefaultFragment extends RadioButtonPickerFragment {
|
||||||
|
|
||||||
|
private static final String TAG = "UsbDefaultFragment";
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
UsbBackend mUsbBackend;
|
UsbBackend mUsbBackend;
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
ConnectivityManager mConnectivityManager;
|
TetheringManager mTetheringManager;
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
OnStartTetheringCallback mOnStartTetheringCallback = new OnStartTetheringCallback();
|
OnStartTetheringCallback mOnStartTetheringCallback = new OnStartTetheringCallback();
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
@@ -57,6 +63,7 @@ public class UsbDefaultFragment extends RadioButtonPickerFragment {
|
|||||||
boolean mIsStartTethering = false;
|
boolean mIsStartTethering = false;
|
||||||
|
|
||||||
private UsbConnectionBroadcastReceiver mUsbReceiver;
|
private UsbConnectionBroadcastReceiver mUsbReceiver;
|
||||||
|
private Handler mHandler = new Handler();
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
UsbConnectionBroadcastReceiver.UsbConnectionListener mUsbConnectionListener =
|
UsbConnectionBroadcastReceiver.UsbConnectionListener mUsbConnectionListener =
|
||||||
@@ -71,7 +78,7 @@ public class UsbDefaultFragment extends RadioButtonPickerFragment {
|
|||||||
public void onAttach(Context context) {
|
public void onAttach(Context context) {
|
||||||
super.onAttach(context);
|
super.onAttach(context);
|
||||||
mUsbBackend = new UsbBackend(context);
|
mUsbBackend = new UsbBackend(context);
|
||||||
mConnectivityManager = context.getSystemService(ConnectivityManager.class);
|
mTetheringManager = context.getSystemService(TetheringManager.class);
|
||||||
mUsbReceiver = new UsbConnectionBroadcastReceiver(context, mUsbConnectionListener,
|
mUsbReceiver = new UsbConnectionBroadcastReceiver(context, mUsbConnectionListener,
|
||||||
mUsbBackend);
|
mUsbBackend);
|
||||||
getSettingsLifecycle().addObserver(mUsbReceiver);
|
getSettingsLifecycle().addObserver(mUsbReceiver);
|
||||||
@@ -138,9 +145,9 @@ public class UsbDefaultFragment extends RadioButtonPickerFragment {
|
|||||||
if (!Utils.isMonkeyRunning()) {
|
if (!Utils.isMonkeyRunning()) {
|
||||||
if (functions == UsbManager.FUNCTION_RNDIS) {
|
if (functions == UsbManager.FUNCTION_RNDIS) {
|
||||||
// We need to have entitlement check for usb tethering, so use API in
|
// We need to have entitlement check for usb tethering, so use API in
|
||||||
// ConnectivityManager.
|
// TetheringManager.
|
||||||
mIsStartTethering = true;
|
mIsStartTethering = true;
|
||||||
mConnectivityManager.startTethering(TETHERING_USB, true /* showProvisioningUi */,
|
mTetheringManager.startTethering(TETHERING_USB, new HandlerExecutor(mHandler),
|
||||||
mOnStartTetheringCallback);
|
mOnStartTetheringCallback);
|
||||||
} else {
|
} else {
|
||||||
mIsStartTethering = false;
|
mIsStartTethering = false;
|
||||||
@@ -159,20 +166,19 @@ public class UsbDefaultFragment extends RadioButtonPickerFragment {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
final class OnStartTetheringCallback extends
|
final class OnStartTetheringCallback implements
|
||||||
ConnectivityManager.OnStartTetheringCallback {
|
TetheringManager.StartTetheringCallback {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onTetheringStarted() {
|
public void onTetheringStarted() {
|
||||||
super.onTetheringStarted();
|
|
||||||
// Set default usb functions again to make internal data persistent
|
// Set default usb functions again to make internal data persistent
|
||||||
mCurrentFunctions = UsbManager.FUNCTION_RNDIS;
|
mCurrentFunctions = UsbManager.FUNCTION_RNDIS;
|
||||||
mUsbBackend.setDefaultUsbFunctions(UsbManager.FUNCTION_RNDIS);
|
mUsbBackend.setDefaultUsbFunctions(UsbManager.FUNCTION_RNDIS);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onTetheringFailed() {
|
public void onTetheringFailed(int error) {
|
||||||
super.onTetheringFailed();
|
Log.w(TAG, "onTetheringFailed() error : " + error);
|
||||||
mUsbBackend.setDefaultUsbFunctions(mPreviousFunctions);
|
mUsbBackend.setDefaultUsbFunctions(mPreviousFunctions);
|
||||||
updateCandidates();
|
updateCandidates();
|
||||||
}
|
}
|
||||||
|
@@ -17,11 +17,12 @@
|
|||||||
package com.android.settings.connecteddevice.usb;
|
package com.android.settings.connecteddevice.usb;
|
||||||
|
|
||||||
import static android.hardware.usb.UsbPortStatus.DATA_ROLE_DEVICE;
|
import static android.hardware.usb.UsbPortStatus.DATA_ROLE_DEVICE;
|
||||||
import static android.net.ConnectivityManager.TETHERING_USB;
|
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.hardware.usb.UsbManager;
|
import android.hardware.usb.UsbManager;
|
||||||
import android.net.ConnectivityManager;
|
import android.net.TetheringManager;
|
||||||
|
import android.os.Handler;
|
||||||
|
import android.os.HandlerExecutor;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import androidx.annotation.VisibleForTesting;
|
import androidx.annotation.VisibleForTesting;
|
||||||
@@ -55,7 +56,8 @@ public class UsbDetailsFunctionsController extends UsbDetailsController
|
|||||||
}
|
}
|
||||||
|
|
||||||
private PreferenceCategory mProfilesContainer;
|
private PreferenceCategory mProfilesContainer;
|
||||||
private ConnectivityManager mConnectivityManager;
|
private TetheringManager mTetheringManager;
|
||||||
|
private Handler mHandler = new Handler();
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
OnStartTetheringCallback mOnStartTetheringCallback;
|
OnStartTetheringCallback mOnStartTetheringCallback;
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
@@ -64,7 +66,7 @@ public class UsbDetailsFunctionsController extends UsbDetailsController
|
|||||||
public UsbDetailsFunctionsController(Context context, UsbDetailsFragment fragment,
|
public UsbDetailsFunctionsController(Context context, UsbDetailsFragment fragment,
|
||||||
UsbBackend backend) {
|
UsbBackend backend) {
|
||||||
super(context, fragment, backend);
|
super(context, fragment, backend);
|
||||||
mConnectivityManager = context.getSystemService(ConnectivityManager.class);
|
mTetheringManager = context.getSystemService(TetheringManager.class);
|
||||||
mOnStartTetheringCallback = new OnStartTetheringCallback();
|
mOnStartTetheringCallback = new OnStartTetheringCallback();
|
||||||
mPreviousFunction = mUsbBackend.getCurrentFunctions();
|
mPreviousFunction = mUsbBackend.getCurrentFunctions();
|
||||||
}
|
}
|
||||||
@@ -130,7 +132,7 @@ public class UsbDetailsFunctionsController extends UsbDetailsController
|
|||||||
+ UsbManager.usbFunctionsToString(previousFunction));
|
+ UsbManager.usbFunctionsToString(previousFunction));
|
||||||
}
|
}
|
||||||
if (function != previousFunction && !Utils.isMonkeyRunning()
|
if (function != previousFunction && !Utils.isMonkeyRunning()
|
||||||
&& !shouldIgnoreClickEvent(function, previousFunction)) {
|
&& !isClickEventIgnored(function, previousFunction)) {
|
||||||
mPreviousFunction = previousFunction;
|
mPreviousFunction = previousFunction;
|
||||||
|
|
||||||
//Update the UI in advance to make it looks smooth
|
//Update the UI in advance to make it looks smooth
|
||||||
@@ -144,8 +146,9 @@ public class UsbDetailsFunctionsController extends UsbDetailsController
|
|||||||
|
|
||||||
if (function == UsbManager.FUNCTION_RNDIS) {
|
if (function == UsbManager.FUNCTION_RNDIS) {
|
||||||
// We need to have entitlement check for usb tethering, so use API in
|
// We need to have entitlement check for usb tethering, so use API in
|
||||||
// ConnectivityManager.
|
// TetheringManager.
|
||||||
mConnectivityManager.startTethering(TETHERING_USB, true /* showProvisioningUi */,
|
mTetheringManager.startTethering(
|
||||||
|
TetheringManager.TETHERING_USB, new HandlerExecutor(mHandler),
|
||||||
mOnStartTetheringCallback);
|
mOnStartTetheringCallback);
|
||||||
} else {
|
} else {
|
||||||
mUsbBackend.setCurrentFunctions(function);
|
mUsbBackend.setCurrentFunctions(function);
|
||||||
@@ -153,7 +156,7 @@ public class UsbDetailsFunctionsController extends UsbDetailsController
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean shouldIgnoreClickEvent(long function, long previousFunction) {
|
private boolean isClickEventIgnored(long function, long previousFunction) {
|
||||||
return isAccessoryMode(previousFunction) && function == UsbManager.FUNCTION_MTP;
|
return isAccessoryMode(previousFunction) && function == UsbManager.FUNCTION_MTP;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -172,12 +175,11 @@ public class UsbDetailsFunctionsController extends UsbDetailsController
|
|||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
final class OnStartTetheringCallback extends
|
final class OnStartTetheringCallback implements TetheringManager.StartTetheringCallback {
|
||||||
ConnectivityManager.OnStartTetheringCallback {
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onTetheringFailed() {
|
public void onTetheringFailed(int error) {
|
||||||
super.onTetheringFailed();
|
Log.w(TAG, "onTetheringFailed() error : " + error);
|
||||||
mUsbBackend.setCurrentFunctions(mPreviousFunction);
|
mUsbBackend.setCurrentFunctions(mPreviousFunction);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -34,7 +34,7 @@ import android.content.pm.PackageManager;
|
|||||||
import android.hardware.usb.UsbManager;
|
import android.hardware.usb.UsbManager;
|
||||||
import android.hardware.usb.UsbPort;
|
import android.hardware.usb.UsbPort;
|
||||||
import android.hardware.usb.UsbPortStatus;
|
import android.hardware.usb.UsbPortStatus;
|
||||||
import android.net.ConnectivityManager;
|
import android.net.TetheringManager;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
import android.os.UserManager;
|
import android.os.UserManager;
|
||||||
|
|
||||||
@@ -57,7 +57,7 @@ public class UsbBackendTest {
|
|||||||
@Mock
|
@Mock
|
||||||
private UserManager mUserManager;
|
private UserManager mUserManager;
|
||||||
@Mock
|
@Mock
|
||||||
private ConnectivityManager mConnectivityManager;
|
private TetheringManager mTetheringManager;
|
||||||
@Mock
|
@Mock
|
||||||
private UsbPort mUsbPort;
|
private UsbPort mUsbPort;
|
||||||
@Mock
|
@Mock
|
||||||
@@ -69,8 +69,8 @@ public class UsbBackendTest {
|
|||||||
when(mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_MIDI))
|
when(mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_MIDI))
|
||||||
.thenReturn(true);
|
.thenReturn(true);
|
||||||
when((Object) mContext.getSystemService(UsbManager.class)).thenReturn(mUsbManager);
|
when((Object) mContext.getSystemService(UsbManager.class)).thenReturn(mUsbManager);
|
||||||
when(mContext.getSystemService(Context.CONNECTIVITY_SERVICE))
|
when((Object) mContext.getSystemService(
|
||||||
.thenReturn(mConnectivityManager);
|
TetheringManager.class)).thenReturn(mTetheringManager);
|
||||||
when(mUsbManager.getPorts()).thenReturn(Collections.singletonList(mUsbPort));
|
when(mUsbManager.getPorts()).thenReturn(Collections.singletonList(mUsbPort));
|
||||||
when(mUsbPortStatus.isConnected()).thenReturn(true);
|
when(mUsbPortStatus.isConnected()).thenReturn(true);
|
||||||
when(mUsbPort.getStatus()).thenReturn(mUsbPortStatus);
|
when(mUsbPort.getStatus()).thenReturn(mUsbPortStatus);
|
||||||
|
@@ -18,11 +18,12 @@ package com.android.settings.connecteddevice.usb;
|
|||||||
|
|
||||||
import static android.hardware.usb.UsbPortStatus.DATA_ROLE_DEVICE;
|
import static android.hardware.usb.UsbPortStatus.DATA_ROLE_DEVICE;
|
||||||
import static android.hardware.usb.UsbPortStatus.POWER_ROLE_SINK;
|
import static android.hardware.usb.UsbPortStatus.POWER_ROLE_SINK;
|
||||||
import static android.net.ConnectivityManager.TETHERING_USB;
|
|
||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
|
|
||||||
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
import static org.mockito.ArgumentMatchers.anyLong;
|
import static org.mockito.ArgumentMatchers.anyLong;
|
||||||
|
import static org.mockito.ArgumentMatchers.eq;
|
||||||
import static org.mockito.Mockito.doReturn;
|
import static org.mockito.Mockito.doReturn;
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.never;
|
import static org.mockito.Mockito.never;
|
||||||
@@ -30,7 +31,7 @@ import static org.mockito.Mockito.verify;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
import android.hardware.usb.UsbManager;
|
import android.hardware.usb.UsbManager;
|
||||||
import android.net.ConnectivityManager;
|
import android.net.TetheringManager;
|
||||||
|
|
||||||
import androidx.preference.PreferenceScreen;
|
import androidx.preference.PreferenceScreen;
|
||||||
|
|
||||||
@@ -50,7 +51,7 @@ public class UsbDefaultFragmentTest {
|
|||||||
@Mock
|
@Mock
|
||||||
private UsbBackend mUsbBackend;
|
private UsbBackend mUsbBackend;
|
||||||
@Mock
|
@Mock
|
||||||
private ConnectivityManager mConnectivityManager;
|
private TetheringManager mTetheringManager;
|
||||||
|
|
||||||
private UsbDefaultFragment mFragment;
|
private UsbDefaultFragment mFragment;
|
||||||
|
|
||||||
@@ -59,7 +60,7 @@ public class UsbDefaultFragmentTest {
|
|||||||
MockitoAnnotations.initMocks(this);
|
MockitoAnnotations.initMocks(this);
|
||||||
mFragment = new TestFragment();
|
mFragment = new TestFragment();
|
||||||
mFragment.mUsbBackend = mUsbBackend;
|
mFragment.mUsbBackend = mUsbBackend;
|
||||||
mFragment.mConnectivityManager = mConnectivityManager;
|
mFragment.mTetheringManager = mTetheringManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -136,8 +137,9 @@ public class UsbDefaultFragmentTest {
|
|||||||
|
|
||||||
mFragment.setDefaultKey(UsbBackend.usbFunctionsToString(UsbManager.FUNCTION_RNDIS));
|
mFragment.setDefaultKey(UsbBackend.usbFunctionsToString(UsbManager.FUNCTION_RNDIS));
|
||||||
|
|
||||||
verify(mConnectivityManager).startTethering(TETHERING_USB, true,
|
verify(mTetheringManager).startTethering(eq(TetheringManager.TETHERING_USB),
|
||||||
mFragment.mOnStartTetheringCallback);
|
any(),
|
||||||
|
eq(mFragment.mOnStartTetheringCallback));
|
||||||
assertThat(mFragment.mPreviousFunctions).isEqualTo(
|
assertThat(mFragment.mPreviousFunctions).isEqualTo(
|
||||||
UsbManager.FUNCTION_MTP);
|
UsbManager.FUNCTION_MTP);
|
||||||
}
|
}
|
||||||
|
@@ -18,11 +18,12 @@ package com.android.settings.connecteddevice.usb;
|
|||||||
|
|
||||||
import static android.hardware.usb.UsbPortStatus.DATA_ROLE_DEVICE;
|
import static android.hardware.usb.UsbPortStatus.DATA_ROLE_DEVICE;
|
||||||
import static android.hardware.usb.UsbPortStatus.POWER_ROLE_SINK;
|
import static android.hardware.usb.UsbPortStatus.POWER_ROLE_SINK;
|
||||||
import static android.net.ConnectivityManager.TETHERING_USB;
|
|
||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
|
|
||||||
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
import static org.mockito.ArgumentMatchers.anyLong;
|
import static org.mockito.ArgumentMatchers.anyLong;
|
||||||
|
import static org.mockito.ArgumentMatchers.eq;
|
||||||
import static org.mockito.Mockito.doReturn;
|
import static org.mockito.Mockito.doReturn;
|
||||||
import static org.mockito.Mockito.never;
|
import static org.mockito.Mockito.never;
|
||||||
import static org.mockito.Mockito.spy;
|
import static org.mockito.Mockito.spy;
|
||||||
@@ -31,7 +32,7 @@ import static org.mockito.Mockito.when;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.hardware.usb.UsbManager;
|
import android.hardware.usb.UsbManager;
|
||||||
import android.net.ConnectivityManager;
|
import android.net.TetheringManager;
|
||||||
|
|
||||||
import androidx.fragment.app.FragmentActivity;
|
import androidx.fragment.app.FragmentActivity;
|
||||||
import androidx.preference.PreferenceCategory;
|
import androidx.preference.PreferenceCategory;
|
||||||
@@ -73,7 +74,7 @@ public class UsbDetailsFunctionsControllerTest {
|
|||||||
@Mock
|
@Mock
|
||||||
private FragmentActivity mActivity;
|
private FragmentActivity mActivity;
|
||||||
@Mock
|
@Mock
|
||||||
private ConnectivityManager mConnectivityManager;
|
private TetheringManager mTetheringManager;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
@@ -89,7 +90,7 @@ public class UsbDetailsFunctionsControllerTest {
|
|||||||
when(mFragment.getContext()).thenReturn(mContext);
|
when(mFragment.getContext()).thenReturn(mContext);
|
||||||
when(mFragment.getPreferenceManager()).thenReturn(mPreferenceManager);
|
when(mFragment.getPreferenceManager()).thenReturn(mPreferenceManager);
|
||||||
when(mFragment.getPreferenceScreen()).thenReturn(mScreen);
|
when(mFragment.getPreferenceScreen()).thenReturn(mScreen);
|
||||||
when(mContext.getSystemService(ConnectivityManager.class)).thenReturn(mConnectivityManager);
|
when(mContext.getSystemService(TetheringManager.class)).thenReturn(mTetheringManager);
|
||||||
|
|
||||||
mDetailsFunctionsController = new UsbDetailsFunctionsController(mContext, mFragment,
|
mDetailsFunctionsController = new UsbDetailsFunctionsController(mContext, mFragment,
|
||||||
mUsbBackend);
|
mUsbBackend);
|
||||||
@@ -245,8 +246,9 @@ public class UsbDetailsFunctionsControllerTest {
|
|||||||
|
|
||||||
mDetailsFunctionsController.onRadioButtonClicked(mRadioButtonPreference);
|
mDetailsFunctionsController.onRadioButtonClicked(mRadioButtonPreference);
|
||||||
|
|
||||||
verify(mConnectivityManager).startTethering(TETHERING_USB, true,
|
verify(mTetheringManager).startTethering(eq(TetheringManager.TETHERING_USB),
|
||||||
mDetailsFunctionsController.mOnStartTetheringCallback);
|
any(),
|
||||||
|
eq(mDetailsFunctionsController.mOnStartTetheringCallback));
|
||||||
assertThat(mDetailsFunctionsController.mPreviousFunction).isEqualTo(
|
assertThat(mDetailsFunctionsController.mPreviousFunction).isEqualTo(
|
||||||
UsbManager.FUNCTION_MTP);
|
UsbManager.FUNCTION_MTP);
|
||||||
}
|
}
|
||||||
@@ -295,15 +297,16 @@ public class UsbDetailsFunctionsControllerTest {
|
|||||||
mDetailsFunctionsController.onRadioButtonClicked(mRadioButtonPreference);
|
mDetailsFunctionsController.onRadioButtonClicked(mRadioButtonPreference);
|
||||||
|
|
||||||
verify(mUsbBackend, never()).setCurrentFunctions(UsbManager.FUNCTION_PTP);
|
verify(mUsbBackend, never()).setCurrentFunctions(UsbManager.FUNCTION_PTP);
|
||||||
verify(mConnectivityManager, never()).startTethering(TETHERING_USB, true,
|
verify(mTetheringManager, never()).startTethering(eq(TetheringManager.TETHERING_USB),
|
||||||
mDetailsFunctionsController.mOnStartTetheringCallback);
|
any(),
|
||||||
|
eq(mDetailsFunctionsController.mOnStartTetheringCallback));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void onTetheringFailed_resetPreviousFunctions() {
|
public void onTetheringFailed_resetPreviousFunctions() {
|
||||||
mDetailsFunctionsController.mPreviousFunction = UsbManager.FUNCTION_PTP;
|
mDetailsFunctionsController.mPreviousFunction = UsbManager.FUNCTION_PTP;
|
||||||
|
|
||||||
mDetailsFunctionsController.mOnStartTetheringCallback.onTetheringFailed();
|
mDetailsFunctionsController.mOnStartTetheringCallback.onTetheringFailed(0);
|
||||||
|
|
||||||
verify(mUsbBackend).setCurrentFunctions(UsbManager.FUNCTION_PTP);
|
verify(mUsbBackend).setCurrentFunctions(UsbManager.FUNCTION_PTP);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user