Merge "Fix default usb settings will set wrong function when onPause()" into tm-dev am: abad3c4a88

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

Change-Id: Ib816f76a9cdea03f6180dea856da3516eac72cf8
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Hugh Chen
2022-04-19 02:15:30 +00:00
committed by Automerger Merge Worker
3 changed files with 14 additions and 0 deletions

View File

@@ -21,6 +21,7 @@ import android.content.Intent;
import android.content.IntentFilter;
import android.hardware.usb.UsbManager;
import android.hardware.usb.UsbPortStatus;
import android.util.Log;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnPause;
@@ -31,6 +32,9 @@ import com.android.settingslib.core.lifecycle.events.OnResume;
*/
public class UsbConnectionBroadcastReceiver extends BroadcastReceiver implements LifecycleObserver,
OnResume, OnPause {
private static final String TAG = "UsbBroadcastReceiver";
private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
private Context mContext;
private UsbConnectionListener mUsbConnectionListener;
private boolean mListeningToUsbEvents;
@@ -54,6 +58,9 @@ public class UsbConnectionBroadcastReceiver extends BroadcastReceiver implements
@Override
public void onReceive(Context context, Intent intent) {
if (DEBUG) {
Log.d(TAG, "onReceive() action : " + intent.getAction());
}
if (UsbManager.ACTION_USB_STATE.equals(intent.getAction())) {
mConnected = intent.getExtras().getBoolean(UsbManager.USB_CONNECTED)
|| intent.getExtras().getBoolean(UsbManager.USB_HOST_CONNECTED);

View File

@@ -189,6 +189,8 @@ public class UsbDefaultFragment extends RadioButtonPickerFragment {
@Override
public void onPause() {
super.onPause();
mCurrentFunctions = mUsbBackend.getCurrentFunctions();
Log.d(TAG, "onPause() : current functions : " + mCurrentFunctions);
mUsbBackend.setDefaultUsbFunctions(mCurrentFunctions);
}

View File

@@ -205,6 +205,7 @@ public class UsbDefaultFragmentTest {
mFragment.mIsStartTethering = true;
mFragment.mUsbConnectionListener.onUsbConnectionChanged(true /* connected */,
UsbManager.FUNCTION_RNDIS, POWER_ROLE_SINK, DATA_ROLE_DEVICE);
when(mUsbBackend.getCurrentFunctions()).thenReturn(UsbManager.FUNCTION_RNDIS);
mFragment.onPause();
@@ -229,6 +230,7 @@ public class UsbDefaultFragmentTest {
mFragment.mIsStartTethering = true;
mFragment.mUsbConnectionListener.onUsbConnectionChanged(true /* connected */,
UsbManager.FUNCTION_MTP, POWER_ROLE_SINK, DATA_ROLE_DEVICE);
when(mUsbBackend.getCurrentFunctions()).thenReturn(UsbManager.FUNCTION_MTP);
mFragment.onPause();
@@ -241,6 +243,7 @@ public class UsbDefaultFragmentTest {
mFragment.mIsStartTethering = true;
mFragment.mUsbConnectionListener.onUsbConnectionChanged(true /* connected */,
UsbManager.FUNCTION_PTP, POWER_ROLE_SINK, DATA_ROLE_DEVICE);
when(mUsbBackend.getCurrentFunctions()).thenReturn(UsbManager.FUNCTION_PTP);
mFragment.onPause();
@@ -253,6 +256,7 @@ public class UsbDefaultFragmentTest {
mFragment.mIsStartTethering = true;
mFragment.mUsbConnectionListener.onUsbConnectionChanged(true /* connected */,
UsbManager.FUNCTION_MIDI, POWER_ROLE_SINK, DATA_ROLE_DEVICE);
when(mUsbBackend.getCurrentFunctions()).thenReturn(UsbManager.FUNCTION_MIDI);
mFragment.onPause();
@@ -265,6 +269,7 @@ public class UsbDefaultFragmentTest {
mFragment.mIsStartTethering = true;
mFragment.mUsbConnectionListener.onUsbConnectionChanged(/* connected */ true,
UsbManager.FUNCTION_NCM, POWER_ROLE_SINK, DATA_ROLE_DEVICE);
when(mUsbBackend.getCurrentFunctions()).thenReturn(UsbManager.FUNCTION_NCM);
mFragment.onPause();