Merge "Fix can't select the [USB Tethering] item in [Developer Options]" into tm-dev am: 756ed72913 am: 680e9f0a0f am: a949b54610 am: b29c95c3eb

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/18087628

Change-Id: Ib8fd54680c7610c185d9a9df66cf9842d6962dca
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
TreeHugger Robot
2022-05-04 06:00:51 +00:00
committed by Automerger Merge Worker
7 changed files with 92 additions and 37 deletions

View File

@@ -97,7 +97,8 @@ public class ConnectedUsbDeviceUpdaterTest {
public void initUsbPreference_usbConnected_preferenceAdded() {
mDeviceUpdater.initUsbPreference(mContext);
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);
}
@@ -106,7 +107,8 @@ public class ConnectedUsbDeviceUpdaterTest {
public void initUsbPreference_usbDisconnected_preferenceRemoved() {
mDeviceUpdater.initUsbPreference(mContext);
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);
}

View File

@@ -65,11 +65,12 @@ public class UsbConnectionBroadcastReceiverTest {
final Intent intent = new Intent();
intent.setAction(UsbManager.ACTION_USB_STATE);
intent.putExtra(UsbManager.USB_CONNECTED, true);
intent.putExtra(UsbManager.USB_CONFIGURED, true);
mReceiver.onReceive(mContext, intent);
verify(mListener).onUsbConnectionChanged(true /* connected */, UsbManager.FUNCTION_NONE,
POWER_ROLE_NONE, DATA_ROLE_NONE);
POWER_ROLE_NONE, DATA_ROLE_NONE, /* isUsbConfigured= */ true);
}
@Test
@@ -77,11 +78,12 @@ public class UsbConnectionBroadcastReceiverTest {
final Intent intent = new Intent();
intent.setAction(UsbManager.ACTION_USB_STATE);
intent.putExtra(UsbManager.USB_CONNECTED, false);
intent.putExtra(UsbManager.USB_CONFIGURED, true);
mReceiver.onReceive(mContext, intent);
verify(mListener).onUsbConnectionChanged(false /* connected */, UsbManager.FUNCTION_NONE,
POWER_ROLE_NONE, DATA_ROLE_NONE);
POWER_ROLE_NONE, DATA_ROLE_NONE, /* isUsbConfigured= */ true);
}
@Test
@@ -91,11 +93,12 @@ public class UsbConnectionBroadcastReceiverTest {
intent.putExtra(UsbManager.USB_CONNECTED, true);
intent.putExtra(UsbManager.USB_FUNCTION_MTP, true);
intent.putExtra(UsbManager.USB_DATA_UNLOCKED, true);
intent.putExtra(UsbManager.USB_CONFIGURED, true);
mReceiver.onReceive(mContext, intent);
verify(mListener).onUsbConnectionChanged(true /* connected */, UsbManager.FUNCTION_MTP,
POWER_ROLE_NONE, DATA_ROLE_NONE);
POWER_ROLE_NONE, DATA_ROLE_NONE, /* isUsbConfigured= */ true);
}
@Test
@@ -105,26 +108,41 @@ public class UsbConnectionBroadcastReceiverTest {
intent.putExtra(UsbManager.USB_CONNECTED, true);
intent.putExtra(UsbManager.USB_FUNCTION_NCM, true);
intent.putExtra(UsbManager.USB_DATA_UNLOCKED, true);
intent.putExtra(UsbManager.USB_CONFIGURED, true);
mReceiver.onReceive(mContext, intent);
verify(mListener).onUsbConnectionChanged(/* connected */ true, UsbManager.FUNCTION_NCM,
POWER_ROLE_NONE, DATA_ROLE_NONE);
POWER_ROLE_NONE, DATA_ROLE_NONE, /* isUsbConfigured= */ true);
}
@Test
public void onReceive_usbPortStatus_invokeCallback() {
public void onReceive_usbPortStatus_invokesCallback() {
final Intent intent = new Intent();
intent.setAction(UsbManager.ACTION_USB_PORT_CHANGED);
final UsbPortStatus status = new UsbPortStatus(0, POWER_ROLE_SINK,
DATA_ROLE_DEVICE, 0, CONTAMINANT_PROTECTION_NONE,
CONTAMINANT_DETECTION_NOT_SUPPORTED);
intent.putExtra(UsbManager.EXTRA_PORT_STATUS, status);
intent.putExtra(UsbManager.USB_CONFIGURED, true);
mReceiver.onReceive(mContext, intent);
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

View File

@@ -27,7 +27,6 @@ import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -204,12 +203,13 @@ public class UsbDefaultFragmentTest {
public void onPause_receivedRndis_shouldSetRndis() {
mFragment.mIsStartTethering = true;
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);
mFragment.onPause();
verify(mUsbBackend, times(2)).setDefaultUsbFunctions(UsbManager.FUNCTION_RNDIS);
verify(mUsbBackend).setDefaultUsbFunctions(UsbManager.FUNCTION_RNDIS);
assertThat(mFragment.mCurrentFunctions).isEqualTo(UsbManager.FUNCTION_RNDIS);
}
@@ -217,11 +217,12 @@ public class UsbDefaultFragmentTest {
public void onPause_receivedNone_shouldSetNone() {
mFragment.mIsStartTethering = true;
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();
verify(mUsbBackend, times(2)).setDefaultUsbFunctions(UsbManager.FUNCTION_NONE);
verify(mUsbBackend).setDefaultUsbFunctions(UsbManager.FUNCTION_NONE);
assertThat(mFragment.mCurrentFunctions).isEqualTo(UsbManager.FUNCTION_NONE);
}
@@ -229,12 +230,13 @@ public class UsbDefaultFragmentTest {
public void onPause_receivedMtp_shouldSetMtp() {
mFragment.mIsStartTethering = true;
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);
mFragment.onPause();
verify(mUsbBackend, times(2)).setDefaultUsbFunctions(UsbManager.FUNCTION_MTP);
verify(mUsbBackend).setDefaultUsbFunctions(UsbManager.FUNCTION_MTP);
assertThat(mFragment.mCurrentFunctions).isEqualTo(UsbManager.FUNCTION_MTP);
}
@@ -242,12 +244,13 @@ public class UsbDefaultFragmentTest {
public void onPause_receivedPtp_shouldSetPtp() {
mFragment.mIsStartTethering = true;
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);
mFragment.onPause();
verify(mUsbBackend, times(2)).setDefaultUsbFunctions(UsbManager.FUNCTION_PTP);
verify(mUsbBackend).setDefaultUsbFunctions(UsbManager.FUNCTION_PTP);
assertThat(mFragment.mCurrentFunctions).isEqualTo(UsbManager.FUNCTION_PTP);
}
@@ -255,12 +258,13 @@ public class UsbDefaultFragmentTest {
public void onPause_receivedMidi_shouldSetMidi() {
mFragment.mIsStartTethering = true;
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);
mFragment.onPause();
verify(mUsbBackend, times(2)).setDefaultUsbFunctions(UsbManager.FUNCTION_MIDI);
verify(mUsbBackend).setDefaultUsbFunctions(UsbManager.FUNCTION_MIDI);
assertThat(mFragment.mCurrentFunctions).isEqualTo(UsbManager.FUNCTION_MIDI);
}
@@ -268,12 +272,13 @@ public class UsbDefaultFragmentTest {
public void onPause_receivedNcm_setsNcm() {
mFragment.mIsStartTethering = 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);
mFragment.onPause();
verify(mUsbBackend, times(2)).setDefaultUsbFunctions(UsbManager.FUNCTION_NCM);
verify(mUsbBackend).setDefaultUsbFunctions(UsbManager.FUNCTION_NCM);
assertThat(mFragment.mCurrentFunctions).isEqualTo(UsbManager.FUNCTION_NCM);
}
@@ -282,9 +287,11 @@ public class UsbDefaultFragmentTest {
when(mUsbBackend.getDefaultUsbFunctions()).thenReturn(UsbManager.FUNCTION_RNDIS);
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 */,
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),
any(),
@@ -296,9 +303,11 @@ public class UsbDefaultFragmentTest {
when(mUsbBackend.getDefaultUsbFunctions()).thenReturn(UsbManager.FUNCTION_NCM);
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,
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),
any(),
@@ -310,7 +319,8 @@ public class UsbDefaultFragmentTest {
when(mUsbBackend.getDefaultUsbFunctions()).thenReturn(UsbManager.FUNCTION_RNDIS);
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),
any(),
@@ -323,15 +333,36 @@ public class UsbDefaultFragmentTest {
when(mUsbBackend.getDefaultUsbFunctions()).thenReturn(UsbManager.FUNCTION_RNDIS);
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 */,
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),
any(),
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 final PreferenceScreen mScreen;