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:
Hugh Chen
2021-03-02 17:47:22 +08:00
parent 73fe82071d
commit 0091ae6142
6 changed files with 58 additions and 46 deletions

View File

@@ -17,11 +17,12 @@
package com.android.settings.connecteddevice.usb;
import static android.hardware.usb.UsbPortStatus.DATA_ROLE_DEVICE;
import static android.net.ConnectivityManager.TETHERING_USB;
import android.content.Context;
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 androidx.annotation.VisibleForTesting;
@@ -55,7 +56,8 @@ public class UsbDetailsFunctionsController extends UsbDetailsController
}
private PreferenceCategory mProfilesContainer;
private ConnectivityManager mConnectivityManager;
private TetheringManager mTetheringManager;
private Handler mHandler = new Handler();
@VisibleForTesting
OnStartTetheringCallback mOnStartTetheringCallback;
@VisibleForTesting
@@ -64,7 +66,7 @@ public class UsbDetailsFunctionsController extends UsbDetailsController
public UsbDetailsFunctionsController(Context context, UsbDetailsFragment fragment,
UsbBackend backend) {
super(context, fragment, backend);
mConnectivityManager = context.getSystemService(ConnectivityManager.class);
mTetheringManager = context.getSystemService(TetheringManager.class);
mOnStartTetheringCallback = new OnStartTetheringCallback();
mPreviousFunction = mUsbBackend.getCurrentFunctions();
}
@@ -130,7 +132,7 @@ public class UsbDetailsFunctionsController extends UsbDetailsController
+ UsbManager.usbFunctionsToString(previousFunction));
}
if (function != previousFunction && !Utils.isMonkeyRunning()
&& !shouldIgnoreClickEvent(function, previousFunction)) {
&& !isClickEventIgnored(function, previousFunction)) {
mPreviousFunction = previousFunction;
//Update the UI in advance to make it looks smooth
@@ -144,8 +146,9 @@ public class UsbDetailsFunctionsController extends UsbDetailsController
if (function == UsbManager.FUNCTION_RNDIS) {
// We need to have entitlement check for usb tethering, so use API in
// ConnectivityManager.
mConnectivityManager.startTethering(TETHERING_USB, true /* showProvisioningUi */,
// TetheringManager.
mTetheringManager.startTethering(
TetheringManager.TETHERING_USB, new HandlerExecutor(mHandler),
mOnStartTetheringCallback);
} else {
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;
}
@@ -172,12 +175,11 @@ public class UsbDetailsFunctionsController extends UsbDetailsController
}
@VisibleForTesting
final class OnStartTetheringCallback extends
ConnectivityManager.OnStartTetheringCallback {
final class OnStartTetheringCallback implements TetheringManager.StartTetheringCallback {
@Override
public void onTetheringFailed() {
super.onTetheringFailed();
public void onTetheringFailed(int error) {
Log.w(TAG, "onTetheringFailed() error : " + error);
mUsbBackend.setCurrentFunctions(mPreviousFunction);
}
}