Merge "Fix can't select the [USB Tethering] item in [Developer Options]" into tm-dev am: 756ed72913
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/18087628 Change-Id: I80db9f0bda301b4f1b8d9e309e970ca7ba05f93b Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -55,7 +55,7 @@ public class ConnectedUsbDeviceUpdater {
|
|||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
UsbConnectionBroadcastReceiver.UsbConnectionListener mUsbConnectionListener =
|
UsbConnectionBroadcastReceiver.UsbConnectionListener mUsbConnectionListener =
|
||||||
(connected, functions, powerRole, dataRole) -> {
|
(connected, functions, powerRole, dataRole, isUsbConfigured) -> {
|
||||||
if (connected) {
|
if (connected) {
|
||||||
mUsbPreference.setSummary(getSummary(dataRole == DATA_ROLE_DEVICE
|
mUsbPreference.setSummary(getSummary(dataRole == DATA_ROLE_DEVICE
|
||||||
? functions : UsbManager.FUNCTION_NONE, powerRole));
|
? functions : UsbManager.FUNCTION_NONE, powerRole));
|
||||||
|
@@ -61,6 +61,8 @@ public class UsbConnectionBroadcastReceiver extends BroadcastReceiver implements
|
|||||||
if (DEBUG) {
|
if (DEBUG) {
|
||||||
Log.d(TAG, "onReceive() action : " + intent.getAction());
|
Log.d(TAG, "onReceive() action : " + intent.getAction());
|
||||||
}
|
}
|
||||||
|
boolean isUsbConfigured = intent.getExtras() != null
|
||||||
|
? intent.getExtras().getBoolean(UsbManager.USB_CONFIGURED) : false;
|
||||||
if (UsbManager.ACTION_USB_STATE.equals(intent.getAction())) {
|
if (UsbManager.ACTION_USB_STATE.equals(intent.getAction())) {
|
||||||
mConnected = intent.getExtras().getBoolean(UsbManager.USB_CONNECTED)
|
mConnected = intent.getExtras().getBoolean(UsbManager.USB_CONNECTED)
|
||||||
|| intent.getExtras().getBoolean(UsbManager.USB_HOST_CONNECTED);
|
|| intent.getExtras().getBoolean(UsbManager.USB_HOST_CONNECTED);
|
||||||
@@ -98,7 +100,7 @@ public class UsbConnectionBroadcastReceiver extends BroadcastReceiver implements
|
|||||||
}
|
}
|
||||||
if (mUsbConnectionListener != null) {
|
if (mUsbConnectionListener != null) {
|
||||||
mUsbConnectionListener.onUsbConnectionChanged(mConnected, mFunctions, mPowerRole,
|
mUsbConnectionListener.onUsbConnectionChanged(mConnected, mFunctions, mPowerRole,
|
||||||
mDataRole);
|
mDataRole, isUsbConfigured);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -142,6 +144,7 @@ public class UsbConnectionBroadcastReceiver extends BroadcastReceiver implements
|
|||||||
* Interface definition for a callback to be invoked when usb connection is changed.
|
* Interface definition for a callback to be invoked when usb connection is changed.
|
||||||
*/
|
*/
|
||||||
interface UsbConnectionListener {
|
interface UsbConnectionListener {
|
||||||
void onUsbConnectionChanged(boolean connected, long functions, int powerRole, int dataRole);
|
void onUsbConnectionChanged(boolean connected, long functions, int powerRole, int dataRole,
|
||||||
|
boolean isUsbConfigured);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -69,22 +69,23 @@ public class UsbDefaultFragment extends RadioButtonPickerFragment {
|
|||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
UsbConnectionBroadcastReceiver.UsbConnectionListener mUsbConnectionListener =
|
UsbConnectionBroadcastReceiver.UsbConnectionListener mUsbConnectionListener =
|
||||||
(connected, functions, powerRole, dataRole) -> {
|
(connected, functions, powerRole, dataRole, isUsbConfigured) -> {
|
||||||
final long defaultFunctions = mUsbBackend.getDefaultUsbFunctions();
|
final long defaultFunctions = mUsbBackend.getDefaultUsbFunctions();
|
||||||
Log.d(TAG, "UsbConnectionListener() connected : " + connected + ", functions : "
|
Log.d(TAG, "UsbConnectionListener() connected : " + connected + ", functions : "
|
||||||
+ functions + ", defaultFunctions : " + defaultFunctions
|
+ functions + ", defaultFunctions : " + defaultFunctions
|
||||||
+ ", mIsStartTethering : " + mIsStartTethering);
|
+ ", mIsStartTethering : " + mIsStartTethering
|
||||||
if (connected && !mIsConnected && (defaultFunctions == UsbManager.FUNCTION_RNDIS
|
+ ", isUsbConfigured : " + isUsbConfigured);
|
||||||
|
if (connected && !mIsConnected && ((defaultFunctions == UsbManager.FUNCTION_RNDIS
|
||||||
|| defaultFunctions == UsbManager.FUNCTION_NCM)
|
|| defaultFunctions == UsbManager.FUNCTION_NCM)
|
||||||
|
&& defaultFunctions == functions)
|
||||||
&& !mIsStartTethering) {
|
&& !mIsStartTethering) {
|
||||||
mCurrentFunctions = defaultFunctions;
|
mCurrentFunctions = defaultFunctions;
|
||||||
startTethering();
|
startTethering();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mIsStartTethering && connected) {
|
if ((mIsStartTethering || isUsbConfigured) && connected) {
|
||||||
mCurrentFunctions = functions;
|
mCurrentFunctions = functions;
|
||||||
refresh(functions);
|
refresh(functions);
|
||||||
mUsbBackend.setDefaultUsbFunctions(functions);
|
|
||||||
mIsStartTethering = false;
|
mIsStartTethering = false;
|
||||||
}
|
}
|
||||||
mIsConnected = connected;
|
mIsConnected = connected;
|
||||||
|
@@ -50,7 +50,7 @@ public class UsbDetailsFragment extends DashboardFragment {
|
|||||||
UsbConnectionBroadcastReceiver mUsbReceiver;
|
UsbConnectionBroadcastReceiver mUsbReceiver;
|
||||||
|
|
||||||
private UsbConnectionBroadcastReceiver.UsbConnectionListener mUsbConnectionListener =
|
private UsbConnectionBroadcastReceiver.UsbConnectionListener mUsbConnectionListener =
|
||||||
(connected, functions, powerRole, dataRole) -> {
|
(connected, functions, powerRole, dataRole, isUsbFigured) -> {
|
||||||
for (UsbDetailsController controller : mControllers) {
|
for (UsbDetailsController controller : mControllers) {
|
||||||
controller.refresh(connected, functions, powerRole, dataRole);
|
controller.refresh(connected, functions, powerRole, dataRole);
|
||||||
}
|
}
|
||||||
|
@@ -97,7 +97,8 @@ public class ConnectedUsbDeviceUpdaterTest {
|
|||||||
public void initUsbPreference_usbConnected_preferenceAdded() {
|
public void initUsbPreference_usbConnected_preferenceAdded() {
|
||||||
mDeviceUpdater.initUsbPreference(mContext);
|
mDeviceUpdater.initUsbPreference(mContext);
|
||||||
mDeviceUpdater.mUsbConnectionListener.onUsbConnectionChanged(true /* connected */,
|
mDeviceUpdater.mUsbConnectionListener.onUsbConnectionChanged(true /* connected */,
|
||||||
UsbManager.FUNCTION_NONE, POWER_ROLE_SINK, DATA_ROLE_DEVICE);
|
UsbManager.FUNCTION_NONE, POWER_ROLE_SINK, DATA_ROLE_DEVICE,
|
||||||
|
/* isUsbConfigured= */ true);
|
||||||
|
|
||||||
verify(mDevicePreferenceCallback).onDeviceAdded(mDeviceUpdater.mUsbPreference);
|
verify(mDevicePreferenceCallback).onDeviceAdded(mDeviceUpdater.mUsbPreference);
|
||||||
}
|
}
|
||||||
@@ -106,7 +107,8 @@ public class ConnectedUsbDeviceUpdaterTest {
|
|||||||
public void initUsbPreference_usbDisconnected_preferenceRemoved() {
|
public void initUsbPreference_usbDisconnected_preferenceRemoved() {
|
||||||
mDeviceUpdater.initUsbPreference(mContext);
|
mDeviceUpdater.initUsbPreference(mContext);
|
||||||
mDeviceUpdater.mUsbConnectionListener.onUsbConnectionChanged(false /* connected */,
|
mDeviceUpdater.mUsbConnectionListener.onUsbConnectionChanged(false /* connected */,
|
||||||
UsbManager.FUNCTION_NONE, POWER_ROLE_NONE, DATA_ROLE_NONE);
|
UsbManager.FUNCTION_NONE, POWER_ROLE_NONE, DATA_ROLE_NONE,
|
||||||
|
/* isUsbConfigured= */ true);
|
||||||
|
|
||||||
verify(mDevicePreferenceCallback).onDeviceRemoved(mDeviceUpdater.mUsbPreference);
|
verify(mDevicePreferenceCallback).onDeviceRemoved(mDeviceUpdater.mUsbPreference);
|
||||||
}
|
}
|
||||||
|
@@ -65,11 +65,12 @@ public class UsbConnectionBroadcastReceiverTest {
|
|||||||
final Intent intent = new Intent();
|
final Intent intent = new Intent();
|
||||||
intent.setAction(UsbManager.ACTION_USB_STATE);
|
intent.setAction(UsbManager.ACTION_USB_STATE);
|
||||||
intent.putExtra(UsbManager.USB_CONNECTED, true);
|
intent.putExtra(UsbManager.USB_CONNECTED, true);
|
||||||
|
intent.putExtra(UsbManager.USB_CONFIGURED, true);
|
||||||
|
|
||||||
mReceiver.onReceive(mContext, intent);
|
mReceiver.onReceive(mContext, intent);
|
||||||
|
|
||||||
verify(mListener).onUsbConnectionChanged(true /* connected */, UsbManager.FUNCTION_NONE,
|
verify(mListener).onUsbConnectionChanged(true /* connected */, UsbManager.FUNCTION_NONE,
|
||||||
POWER_ROLE_NONE, DATA_ROLE_NONE);
|
POWER_ROLE_NONE, DATA_ROLE_NONE, /* isUsbConfigured= */ true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -77,11 +78,12 @@ public class UsbConnectionBroadcastReceiverTest {
|
|||||||
final Intent intent = new Intent();
|
final Intent intent = new Intent();
|
||||||
intent.setAction(UsbManager.ACTION_USB_STATE);
|
intent.setAction(UsbManager.ACTION_USB_STATE);
|
||||||
intent.putExtra(UsbManager.USB_CONNECTED, false);
|
intent.putExtra(UsbManager.USB_CONNECTED, false);
|
||||||
|
intent.putExtra(UsbManager.USB_CONFIGURED, true);
|
||||||
|
|
||||||
mReceiver.onReceive(mContext, intent);
|
mReceiver.onReceive(mContext, intent);
|
||||||
|
|
||||||
verify(mListener).onUsbConnectionChanged(false /* connected */, UsbManager.FUNCTION_NONE,
|
verify(mListener).onUsbConnectionChanged(false /* connected */, UsbManager.FUNCTION_NONE,
|
||||||
POWER_ROLE_NONE, DATA_ROLE_NONE);
|
POWER_ROLE_NONE, DATA_ROLE_NONE, /* isUsbConfigured= */ true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -91,11 +93,12 @@ public class UsbConnectionBroadcastReceiverTest {
|
|||||||
intent.putExtra(UsbManager.USB_CONNECTED, true);
|
intent.putExtra(UsbManager.USB_CONNECTED, true);
|
||||||
intent.putExtra(UsbManager.USB_FUNCTION_MTP, true);
|
intent.putExtra(UsbManager.USB_FUNCTION_MTP, true);
|
||||||
intent.putExtra(UsbManager.USB_DATA_UNLOCKED, true);
|
intent.putExtra(UsbManager.USB_DATA_UNLOCKED, true);
|
||||||
|
intent.putExtra(UsbManager.USB_CONFIGURED, true);
|
||||||
|
|
||||||
mReceiver.onReceive(mContext, intent);
|
mReceiver.onReceive(mContext, intent);
|
||||||
|
|
||||||
verify(mListener).onUsbConnectionChanged(true /* connected */, UsbManager.FUNCTION_MTP,
|
verify(mListener).onUsbConnectionChanged(true /* connected */, UsbManager.FUNCTION_MTP,
|
||||||
POWER_ROLE_NONE, DATA_ROLE_NONE);
|
POWER_ROLE_NONE, DATA_ROLE_NONE, /* isUsbConfigured= */ true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -105,26 +108,41 @@ public class UsbConnectionBroadcastReceiverTest {
|
|||||||
intent.putExtra(UsbManager.USB_CONNECTED, true);
|
intent.putExtra(UsbManager.USB_CONNECTED, true);
|
||||||
intent.putExtra(UsbManager.USB_FUNCTION_NCM, true);
|
intent.putExtra(UsbManager.USB_FUNCTION_NCM, true);
|
||||||
intent.putExtra(UsbManager.USB_DATA_UNLOCKED, true);
|
intent.putExtra(UsbManager.USB_DATA_UNLOCKED, true);
|
||||||
|
intent.putExtra(UsbManager.USB_CONFIGURED, true);
|
||||||
|
|
||||||
mReceiver.onReceive(mContext, intent);
|
mReceiver.onReceive(mContext, intent);
|
||||||
|
|
||||||
verify(mListener).onUsbConnectionChanged(/* connected */ true, UsbManager.FUNCTION_NCM,
|
verify(mListener).onUsbConnectionChanged(/* connected */ true, UsbManager.FUNCTION_NCM,
|
||||||
POWER_ROLE_NONE, DATA_ROLE_NONE);
|
POWER_ROLE_NONE, DATA_ROLE_NONE, /* isUsbConfigured= */ true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void onReceive_usbPortStatus_invokeCallback() {
|
public void onReceive_usbPortStatus_invokesCallback() {
|
||||||
final Intent intent = new Intent();
|
final Intent intent = new Intent();
|
||||||
intent.setAction(UsbManager.ACTION_USB_PORT_CHANGED);
|
intent.setAction(UsbManager.ACTION_USB_PORT_CHANGED);
|
||||||
final UsbPortStatus status = new UsbPortStatus(0, POWER_ROLE_SINK,
|
final UsbPortStatus status = new UsbPortStatus(0, POWER_ROLE_SINK,
|
||||||
DATA_ROLE_DEVICE, 0, CONTAMINANT_PROTECTION_NONE,
|
DATA_ROLE_DEVICE, 0, CONTAMINANT_PROTECTION_NONE,
|
||||||
CONTAMINANT_DETECTION_NOT_SUPPORTED);
|
CONTAMINANT_DETECTION_NOT_SUPPORTED);
|
||||||
intent.putExtra(UsbManager.EXTRA_PORT_STATUS, status);
|
intent.putExtra(UsbManager.EXTRA_PORT_STATUS, status);
|
||||||
|
intent.putExtra(UsbManager.USB_CONFIGURED, true);
|
||||||
|
|
||||||
mReceiver.onReceive(mContext, intent);
|
mReceiver.onReceive(mContext, intent);
|
||||||
|
|
||||||
verify(mListener).onUsbConnectionChanged(false /* connected */, UsbManager.FUNCTION_NONE,
|
verify(mListener).onUsbConnectionChanged(false /* connected */, UsbManager.FUNCTION_NONE,
|
||||||
POWER_ROLE_SINK, DATA_ROLE_DEVICE);
|
POWER_ROLE_SINK, DATA_ROLE_DEVICE, /* isUsbConfigured= */ true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void onReceive_usbConfiguredIsFalse_invokesCallback() {
|
||||||
|
final Intent intent = new Intent();
|
||||||
|
intent.setAction(UsbManager.ACTION_USB_STATE);
|
||||||
|
intent.putExtra(UsbManager.USB_CONNECTED, true);
|
||||||
|
intent.putExtra(UsbManager.USB_CONFIGURED, false);
|
||||||
|
|
||||||
|
mReceiver.onReceive(mContext, intent);
|
||||||
|
|
||||||
|
verify(mListener).onUsbConnectionChanged(true /* connected */, UsbManager.FUNCTION_NONE,
|
||||||
|
POWER_ROLE_NONE, DATA_ROLE_NONE, /* isUsbConfigured= */ false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@@ -27,7 +27,6 @@ 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;
|
||||||
import static org.mockito.Mockito.times;
|
|
||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
@@ -204,12 +203,13 @@ public class UsbDefaultFragmentTest {
|
|||||||
public void onPause_receivedRndis_shouldSetRndis() {
|
public void onPause_receivedRndis_shouldSetRndis() {
|
||||||
mFragment.mIsStartTethering = true;
|
mFragment.mIsStartTethering = true;
|
||||||
mFragment.mUsbConnectionListener.onUsbConnectionChanged(true /* connected */,
|
mFragment.mUsbConnectionListener.onUsbConnectionChanged(true /* connected */,
|
||||||
UsbManager.FUNCTION_RNDIS, POWER_ROLE_SINK, DATA_ROLE_DEVICE);
|
UsbManager.FUNCTION_RNDIS, POWER_ROLE_SINK, DATA_ROLE_DEVICE,
|
||||||
|
/* isUsbConfigured= */ true);
|
||||||
when(mUsbBackend.getCurrentFunctions()).thenReturn(UsbManager.FUNCTION_RNDIS);
|
when(mUsbBackend.getCurrentFunctions()).thenReturn(UsbManager.FUNCTION_RNDIS);
|
||||||
|
|
||||||
mFragment.onPause();
|
mFragment.onPause();
|
||||||
|
|
||||||
verify(mUsbBackend, times(2)).setDefaultUsbFunctions(UsbManager.FUNCTION_RNDIS);
|
verify(mUsbBackend).setDefaultUsbFunctions(UsbManager.FUNCTION_RNDIS);
|
||||||
assertThat(mFragment.mCurrentFunctions).isEqualTo(UsbManager.FUNCTION_RNDIS);
|
assertThat(mFragment.mCurrentFunctions).isEqualTo(UsbManager.FUNCTION_RNDIS);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -217,11 +217,12 @@ public class UsbDefaultFragmentTest {
|
|||||||
public void onPause_receivedNone_shouldSetNone() {
|
public void onPause_receivedNone_shouldSetNone() {
|
||||||
mFragment.mIsStartTethering = true;
|
mFragment.mIsStartTethering = true;
|
||||||
mFragment.mUsbConnectionListener.onUsbConnectionChanged(true /* connected */,
|
mFragment.mUsbConnectionListener.onUsbConnectionChanged(true /* connected */,
|
||||||
UsbManager.FUNCTION_NONE, POWER_ROLE_SINK, DATA_ROLE_DEVICE);
|
UsbManager.FUNCTION_NONE, POWER_ROLE_SINK, DATA_ROLE_DEVICE,
|
||||||
|
/* isUsbConfigured= */ true);
|
||||||
|
|
||||||
mFragment.onPause();
|
mFragment.onPause();
|
||||||
|
|
||||||
verify(mUsbBackend, times(2)).setDefaultUsbFunctions(UsbManager.FUNCTION_NONE);
|
verify(mUsbBackend).setDefaultUsbFunctions(UsbManager.FUNCTION_NONE);
|
||||||
assertThat(mFragment.mCurrentFunctions).isEqualTo(UsbManager.FUNCTION_NONE);
|
assertThat(mFragment.mCurrentFunctions).isEqualTo(UsbManager.FUNCTION_NONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -229,12 +230,13 @@ public class UsbDefaultFragmentTest {
|
|||||||
public void onPause_receivedMtp_shouldSetMtp() {
|
public void onPause_receivedMtp_shouldSetMtp() {
|
||||||
mFragment.mIsStartTethering = true;
|
mFragment.mIsStartTethering = true;
|
||||||
mFragment.mUsbConnectionListener.onUsbConnectionChanged(true /* connected */,
|
mFragment.mUsbConnectionListener.onUsbConnectionChanged(true /* connected */,
|
||||||
UsbManager.FUNCTION_MTP, POWER_ROLE_SINK, DATA_ROLE_DEVICE);
|
UsbManager.FUNCTION_MTP, POWER_ROLE_SINK, DATA_ROLE_DEVICE,
|
||||||
|
/* isUsbConfigured= */ true);
|
||||||
when(mUsbBackend.getCurrentFunctions()).thenReturn(UsbManager.FUNCTION_MTP);
|
when(mUsbBackend.getCurrentFunctions()).thenReturn(UsbManager.FUNCTION_MTP);
|
||||||
|
|
||||||
mFragment.onPause();
|
mFragment.onPause();
|
||||||
|
|
||||||
verify(mUsbBackend, times(2)).setDefaultUsbFunctions(UsbManager.FUNCTION_MTP);
|
verify(mUsbBackend).setDefaultUsbFunctions(UsbManager.FUNCTION_MTP);
|
||||||
assertThat(mFragment.mCurrentFunctions).isEqualTo(UsbManager.FUNCTION_MTP);
|
assertThat(mFragment.mCurrentFunctions).isEqualTo(UsbManager.FUNCTION_MTP);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -242,12 +244,13 @@ public class UsbDefaultFragmentTest {
|
|||||||
public void onPause_receivedPtp_shouldSetPtp() {
|
public void onPause_receivedPtp_shouldSetPtp() {
|
||||||
mFragment.mIsStartTethering = true;
|
mFragment.mIsStartTethering = true;
|
||||||
mFragment.mUsbConnectionListener.onUsbConnectionChanged(true /* connected */,
|
mFragment.mUsbConnectionListener.onUsbConnectionChanged(true /* connected */,
|
||||||
UsbManager.FUNCTION_PTP, POWER_ROLE_SINK, DATA_ROLE_DEVICE);
|
UsbManager.FUNCTION_PTP, POWER_ROLE_SINK, DATA_ROLE_DEVICE,
|
||||||
|
/* isUsbConfigured= */ true);
|
||||||
when(mUsbBackend.getCurrentFunctions()).thenReturn(UsbManager.FUNCTION_PTP);
|
when(mUsbBackend.getCurrentFunctions()).thenReturn(UsbManager.FUNCTION_PTP);
|
||||||
|
|
||||||
mFragment.onPause();
|
mFragment.onPause();
|
||||||
|
|
||||||
verify(mUsbBackend, times(2)).setDefaultUsbFunctions(UsbManager.FUNCTION_PTP);
|
verify(mUsbBackend).setDefaultUsbFunctions(UsbManager.FUNCTION_PTP);
|
||||||
assertThat(mFragment.mCurrentFunctions).isEqualTo(UsbManager.FUNCTION_PTP);
|
assertThat(mFragment.mCurrentFunctions).isEqualTo(UsbManager.FUNCTION_PTP);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -255,12 +258,13 @@ public class UsbDefaultFragmentTest {
|
|||||||
public void onPause_receivedMidi_shouldSetMidi() {
|
public void onPause_receivedMidi_shouldSetMidi() {
|
||||||
mFragment.mIsStartTethering = true;
|
mFragment.mIsStartTethering = true;
|
||||||
mFragment.mUsbConnectionListener.onUsbConnectionChanged(true /* connected */,
|
mFragment.mUsbConnectionListener.onUsbConnectionChanged(true /* connected */,
|
||||||
UsbManager.FUNCTION_MIDI, POWER_ROLE_SINK, DATA_ROLE_DEVICE);
|
UsbManager.FUNCTION_MIDI, POWER_ROLE_SINK, DATA_ROLE_DEVICE,
|
||||||
|
/* isUsbConfigured= */ true);
|
||||||
when(mUsbBackend.getCurrentFunctions()).thenReturn(UsbManager.FUNCTION_MIDI);
|
when(mUsbBackend.getCurrentFunctions()).thenReturn(UsbManager.FUNCTION_MIDI);
|
||||||
|
|
||||||
mFragment.onPause();
|
mFragment.onPause();
|
||||||
|
|
||||||
verify(mUsbBackend, times(2)).setDefaultUsbFunctions(UsbManager.FUNCTION_MIDI);
|
verify(mUsbBackend).setDefaultUsbFunctions(UsbManager.FUNCTION_MIDI);
|
||||||
assertThat(mFragment.mCurrentFunctions).isEqualTo(UsbManager.FUNCTION_MIDI);
|
assertThat(mFragment.mCurrentFunctions).isEqualTo(UsbManager.FUNCTION_MIDI);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -268,12 +272,13 @@ public class UsbDefaultFragmentTest {
|
|||||||
public void onPause_receivedNcm_setsNcm() {
|
public void onPause_receivedNcm_setsNcm() {
|
||||||
mFragment.mIsStartTethering = true;
|
mFragment.mIsStartTethering = true;
|
||||||
mFragment.mUsbConnectionListener.onUsbConnectionChanged(/* connected */ true,
|
mFragment.mUsbConnectionListener.onUsbConnectionChanged(/* connected */ true,
|
||||||
UsbManager.FUNCTION_NCM, POWER_ROLE_SINK, DATA_ROLE_DEVICE);
|
UsbManager.FUNCTION_NCM, POWER_ROLE_SINK, DATA_ROLE_DEVICE,
|
||||||
|
/* isUsbConfigured= */ true);
|
||||||
when(mUsbBackend.getCurrentFunctions()).thenReturn(UsbManager.FUNCTION_NCM);
|
when(mUsbBackend.getCurrentFunctions()).thenReturn(UsbManager.FUNCTION_NCM);
|
||||||
|
|
||||||
mFragment.onPause();
|
mFragment.onPause();
|
||||||
|
|
||||||
verify(mUsbBackend, times(2)).setDefaultUsbFunctions(UsbManager.FUNCTION_NCM);
|
verify(mUsbBackend).setDefaultUsbFunctions(UsbManager.FUNCTION_NCM);
|
||||||
assertThat(mFragment.mCurrentFunctions).isEqualTo(UsbManager.FUNCTION_NCM);
|
assertThat(mFragment.mCurrentFunctions).isEqualTo(UsbManager.FUNCTION_NCM);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -282,9 +287,11 @@ public class UsbDefaultFragmentTest {
|
|||||||
when(mUsbBackend.getDefaultUsbFunctions()).thenReturn(UsbManager.FUNCTION_RNDIS);
|
when(mUsbBackend.getDefaultUsbFunctions()).thenReturn(UsbManager.FUNCTION_RNDIS);
|
||||||
|
|
||||||
mFragment.mUsbConnectionListener.onUsbConnectionChanged(false /* connected */,
|
mFragment.mUsbConnectionListener.onUsbConnectionChanged(false /* connected */,
|
||||||
UsbManager.FUNCTION_RNDIS, POWER_ROLE_SINK, DATA_ROLE_DEVICE);
|
UsbManager.FUNCTION_RNDIS, POWER_ROLE_SINK, DATA_ROLE_DEVICE,
|
||||||
|
/* isUsbConfigured= */ true);
|
||||||
mFragment.mUsbConnectionListener.onUsbConnectionChanged(true /* connected */,
|
mFragment.mUsbConnectionListener.onUsbConnectionChanged(true /* connected */,
|
||||||
UsbManager.FUNCTION_RNDIS, POWER_ROLE_SINK, DATA_ROLE_DEVICE);
|
UsbManager.FUNCTION_RNDIS, POWER_ROLE_SINK, DATA_ROLE_DEVICE,
|
||||||
|
/* isUsbConfigured= */ true);
|
||||||
|
|
||||||
verify(mTetheringManager).startTethering(eq(TetheringManager.TETHERING_USB),
|
verify(mTetheringManager).startTethering(eq(TetheringManager.TETHERING_USB),
|
||||||
any(),
|
any(),
|
||||||
@@ -296,9 +303,11 @@ public class UsbDefaultFragmentTest {
|
|||||||
when(mUsbBackend.getDefaultUsbFunctions()).thenReturn(UsbManager.FUNCTION_NCM);
|
when(mUsbBackend.getDefaultUsbFunctions()).thenReturn(UsbManager.FUNCTION_NCM);
|
||||||
|
|
||||||
mFragment.mUsbConnectionListener.onUsbConnectionChanged(/* connected */ false,
|
mFragment.mUsbConnectionListener.onUsbConnectionChanged(/* connected */ false,
|
||||||
UsbManager.FUNCTION_NCM, POWER_ROLE_SINK, DATA_ROLE_DEVICE);
|
UsbManager.FUNCTION_NCM, POWER_ROLE_SINK, DATA_ROLE_DEVICE,
|
||||||
|
/* isUsbConfigured= */ true);
|
||||||
mFragment.mUsbConnectionListener.onUsbConnectionChanged(/* connected */ true,
|
mFragment.mUsbConnectionListener.onUsbConnectionChanged(/* connected */ true,
|
||||||
UsbManager.FUNCTION_NCM, POWER_ROLE_SINK, DATA_ROLE_DEVICE);
|
UsbManager.FUNCTION_NCM, POWER_ROLE_SINK, DATA_ROLE_DEVICE,
|
||||||
|
/* isUsbConfigured= */ true);
|
||||||
|
|
||||||
verify(mTetheringManager).startTethering(eq(TetheringManager.TETHERING_USB),
|
verify(mTetheringManager).startTethering(eq(TetheringManager.TETHERING_USB),
|
||||||
any(),
|
any(),
|
||||||
@@ -310,7 +319,8 @@ public class UsbDefaultFragmentTest {
|
|||||||
when(mUsbBackend.getDefaultUsbFunctions()).thenReturn(UsbManager.FUNCTION_RNDIS);
|
when(mUsbBackend.getDefaultUsbFunctions()).thenReturn(UsbManager.FUNCTION_RNDIS);
|
||||||
|
|
||||||
mFragment.mUsbConnectionListener.onUsbConnectionChanged(false /* connected */,
|
mFragment.mUsbConnectionListener.onUsbConnectionChanged(false /* connected */,
|
||||||
UsbManager.FUNCTION_RNDIS, POWER_ROLE_SINK, DATA_ROLE_DEVICE);
|
UsbManager.FUNCTION_RNDIS, POWER_ROLE_SINK, DATA_ROLE_DEVICE,
|
||||||
|
/* isUsbConfigured= */ true);
|
||||||
|
|
||||||
verify(mTetheringManager, never()).startTethering(eq(TetheringManager.TETHERING_USB),
|
verify(mTetheringManager, never()).startTethering(eq(TetheringManager.TETHERING_USB),
|
||||||
any(),
|
any(),
|
||||||
@@ -323,15 +333,36 @@ public class UsbDefaultFragmentTest {
|
|||||||
when(mUsbBackend.getDefaultUsbFunctions()).thenReturn(UsbManager.FUNCTION_RNDIS);
|
when(mUsbBackend.getDefaultUsbFunctions()).thenReturn(UsbManager.FUNCTION_RNDIS);
|
||||||
|
|
||||||
mFragment.mUsbConnectionListener.onUsbConnectionChanged(false /* connected */,
|
mFragment.mUsbConnectionListener.onUsbConnectionChanged(false /* connected */,
|
||||||
UsbManager.FUNCTION_RNDIS, POWER_ROLE_SINK, DATA_ROLE_DEVICE);
|
UsbManager.FUNCTION_RNDIS, POWER_ROLE_SINK, DATA_ROLE_DEVICE,
|
||||||
|
/* isUsbConfigured= */ true);
|
||||||
mFragment.mUsbConnectionListener.onUsbConnectionChanged(true /* connected */,
|
mFragment.mUsbConnectionListener.onUsbConnectionChanged(true /* connected */,
|
||||||
UsbManager.FUNCTION_RNDIS, POWER_ROLE_SINK, DATA_ROLE_DEVICE);
|
UsbManager.FUNCTION_RNDIS, POWER_ROLE_SINK, DATA_ROLE_DEVICE,
|
||||||
|
/* isUsbConfigured= */ true);
|
||||||
|
|
||||||
verify(mTetheringManager, never()).startTethering(eq(TetheringManager.TETHERING_USB),
|
verify(mTetheringManager, never()).startTethering(eq(TetheringManager.TETHERING_USB),
|
||||||
any(),
|
any(),
|
||||||
eq(mFragment.mOnStartTetheringCallback));
|
eq(mFragment.mOnStartTetheringCallback));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void onUsbConnectionChanged_usbConfiguredIsTrue_updatesCurrentFunctions() {
|
||||||
|
mFragment.mCurrentFunctions = UsbManager.FUNCTION_NONE;
|
||||||
|
mFragment.mUsbConnectionListener.onUsbConnectionChanged(/* connected= */ true,
|
||||||
|
UsbManager.FUNCTION_NCM, POWER_ROLE_SINK, DATA_ROLE_DEVICE,
|
||||||
|
/* isUsbConfigured= */ true);
|
||||||
|
assertThat(mFragment.mCurrentFunctions).isEqualTo(UsbManager.FUNCTION_NCM);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void onUsbConnectionChanged_usbConfiguredIsFalse_doesNotUpdateCurrentFunctions() {
|
||||||
|
mFragment.mCurrentFunctions = UsbManager.FUNCTION_NONE;
|
||||||
|
mFragment.mUsbConnectionListener.onUsbConnectionChanged(/* connected= */ true,
|
||||||
|
UsbManager.FUNCTION_NCM, POWER_ROLE_SINK, DATA_ROLE_DEVICE,
|
||||||
|
/* isUsbConfigured= */ false);
|
||||||
|
assertThat(mFragment.mCurrentFunctions).isEqualTo(UsbManager.FUNCTION_NONE);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public static class TestFragment extends UsbDefaultFragment {
|
public static class TestFragment extends UsbDefaultFragment {
|
||||||
public final PreferenceScreen mScreen;
|
public final PreferenceScreen mScreen;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user