From ffeefd4d117d81908e8bf3b307a6afa577b48ff1 Mon Sep 17 00:00:00 2001 From: Hugh Chen Date: Tue, 3 Aug 2021 17:32:25 +0800 Subject: [PATCH] Fix USB tethering is not turned on with a single tap Before this CL, the USB default settings will set default usb functions to RNDIS when tethering is started. Because in some devices, the NCM is used instead of RNDIS to start tethering. If RNDIS is set in the device that uses NCM to start tethering, it will cause start tethering failed. This CL will use the current functions to set default usb functions to fix this issue. Bug: 195068679 Bug: 197026638 Test: make -j42 RunSettingsRoboTests Change-Id: Ic9353c5ac76c0cd517318a4304fa214d6b2201d2 (cherry picked from commit ba30b04cc3c98a6b08a24fbff92a75bf5f1198e2) --- .../settings/connecteddevice/usb/UsbDefaultFragment.java | 3 ++- .../settings/connecteddevice/usb/UsbDefaultFragmentTest.java | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/com/android/settings/connecteddevice/usb/UsbDefaultFragment.java b/src/com/android/settings/connecteddevice/usb/UsbDefaultFragment.java index 97906703069..0abe04259ed 100644 --- a/src/com/android/settings/connecteddevice/usb/UsbDefaultFragment.java +++ b/src/com/android/settings/connecteddevice/usb/UsbDefaultFragment.java @@ -198,8 +198,9 @@ public class UsbDefaultFragment extends RadioButtonPickerFragment { @Override public void onTetheringStarted() { - Log.d(TAG, "onTetheringStarted()"); // Set default usb functions again to make internal data persistent + mCurrentFunctions = mUsbBackend.getCurrentFunctions(); + Log.d(TAG, "onTetheringStarted() : mCurrentFunctions " + mCurrentFunctions); mUsbBackend.setDefaultUsbFunctions(mCurrentFunctions); } diff --git a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDefaultFragmentTest.java b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDefaultFragmentTest.java index eee63980753..2317c97513b 100644 --- a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDefaultFragmentTest.java +++ b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDefaultFragmentTest.java @@ -183,7 +183,7 @@ public class UsbDefaultFragmentTest { @Test public void onTetheringStarted_currentFunctionsIsRndis_setsRndisAsDefaultUsbFunctions() { - mFragment.mCurrentFunctions = UsbManager.FUNCTION_RNDIS; + when(mUsbBackend.getCurrentFunctions()).thenReturn(UsbManager.FUNCTION_RNDIS); mFragment.mOnStartTetheringCallback.onTetheringStarted(); @@ -192,7 +192,7 @@ public class UsbDefaultFragmentTest { @Test public void onTetheringStarted_currentFunctionsIsNcm_setsNcmAsDefaultUsbFunctions() { - mFragment.mCurrentFunctions = UsbManager.FUNCTION_NCM; + when(mUsbBackend.getCurrentFunctions()).thenReturn(UsbManager.FUNCTION_NCM); mFragment.mOnStartTetheringCallback.onTetheringStarted();