Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit abad3c4a authored by Hugh Chen's avatar Hugh Chen Committed by Android (Google) Code Review
Browse files

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

parents b9dd1a3a aadc44ae
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -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);
+2 −0
Original line number Diff line number Diff line
@@ -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);
    }

+5 −0
Original line number Diff line number Diff line
@@ -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();