Merge "Fix default usb settings will set wrong function when onPause()" into tm-dev
This commit is contained in:
@@ -21,6 +21,7 @@ import android.content.Intent;
|
|||||||
import android.content.IntentFilter;
|
import android.content.IntentFilter;
|
||||||
import android.hardware.usb.UsbManager;
|
import android.hardware.usb.UsbManager;
|
||||||
import android.hardware.usb.UsbPortStatus;
|
import android.hardware.usb.UsbPortStatus;
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
import com.android.settingslib.core.lifecycle.LifecycleObserver;
|
import com.android.settingslib.core.lifecycle.LifecycleObserver;
|
||||||
import com.android.settingslib.core.lifecycle.events.OnPause;
|
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,
|
public class UsbConnectionBroadcastReceiver extends BroadcastReceiver implements LifecycleObserver,
|
||||||
OnResume, OnPause {
|
OnResume, OnPause {
|
||||||
|
private static final String TAG = "UsbBroadcastReceiver";
|
||||||
|
private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
|
||||||
|
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
private UsbConnectionListener mUsbConnectionListener;
|
private UsbConnectionListener mUsbConnectionListener;
|
||||||
private boolean mListeningToUsbEvents;
|
private boolean mListeningToUsbEvents;
|
||||||
@@ -54,6 +58,9 @@ public class UsbConnectionBroadcastReceiver extends BroadcastReceiver implements
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onReceive(Context context, Intent intent) {
|
public void onReceive(Context context, Intent intent) {
|
||||||
|
if (DEBUG) {
|
||||||
|
Log.d(TAG, "onReceive() action : " + intent.getAction());
|
||||||
|
}
|
||||||
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);
|
||||||
|
@@ -189,6 +189,8 @@ public class UsbDefaultFragment extends RadioButtonPickerFragment {
|
|||||||
@Override
|
@Override
|
||||||
public void onPause() {
|
public void onPause() {
|
||||||
super.onPause();
|
super.onPause();
|
||||||
|
mCurrentFunctions = mUsbBackend.getCurrentFunctions();
|
||||||
|
Log.d(TAG, "onPause() : current functions : " + mCurrentFunctions);
|
||||||
mUsbBackend.setDefaultUsbFunctions(mCurrentFunctions);
|
mUsbBackend.setDefaultUsbFunctions(mCurrentFunctions);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -205,6 +205,7 @@ public class UsbDefaultFragmentTest {
|
|||||||
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);
|
||||||
|
when(mUsbBackend.getCurrentFunctions()).thenReturn(UsbManager.FUNCTION_RNDIS);
|
||||||
|
|
||||||
mFragment.onPause();
|
mFragment.onPause();
|
||||||
|
|
||||||
@@ -229,6 +230,7 @@ public class UsbDefaultFragmentTest {
|
|||||||
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);
|
||||||
|
when(mUsbBackend.getCurrentFunctions()).thenReturn(UsbManager.FUNCTION_MTP);
|
||||||
|
|
||||||
mFragment.onPause();
|
mFragment.onPause();
|
||||||
|
|
||||||
@@ -241,6 +243,7 @@ public class UsbDefaultFragmentTest {
|
|||||||
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);
|
||||||
|
when(mUsbBackend.getCurrentFunctions()).thenReturn(UsbManager.FUNCTION_PTP);
|
||||||
|
|
||||||
mFragment.onPause();
|
mFragment.onPause();
|
||||||
|
|
||||||
@@ -253,6 +256,7 @@ public class UsbDefaultFragmentTest {
|
|||||||
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);
|
||||||
|
when(mUsbBackend.getCurrentFunctions()).thenReturn(UsbManager.FUNCTION_MIDI);
|
||||||
|
|
||||||
mFragment.onPause();
|
mFragment.onPause();
|
||||||
|
|
||||||
@@ -265,6 +269,7 @@ public class UsbDefaultFragmentTest {
|
|||||||
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);
|
||||||
|
when(mUsbBackend.getCurrentFunctions()).thenReturn(UsbManager.FUNCTION_NCM);
|
||||||
|
|
||||||
mFragment.onPause();
|
mFragment.onPause();
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user