Merge "Keep USB disconnected receiver active when ADB activity in bg" into rvc-d1-dev

This commit is contained in:
Michael Groover
2020-07-24 00:18:15 +00:00
committed by Android (Google) Code Review

View File

@@ -70,6 +70,8 @@ public class UsbDebuggingActivity extends AlertActivity
if (SystemProperties.getInt("service.adb.tcp.port", 0) == 0) { if (SystemProperties.getInt("service.adb.tcp.port", 0) == 0) {
mDisconnectedReceiver = new UsbDisconnectedReceiver(this); mDisconnectedReceiver = new UsbDisconnectedReceiver(this);
IntentFilter filter = new IntentFilter(UsbManager.ACTION_USB_STATE);
mBroadcastDispatcher.registerReceiver(mDisconnectedReceiver, filter);
} }
Intent intent = getIntent(); Intent intent = getIntent();
@@ -119,6 +121,7 @@ public class UsbDebuggingActivity extends AlertActivity
} }
boolean connected = intent.getBooleanExtra(UsbManager.USB_CONNECTED, false); boolean connected = intent.getBooleanExtra(UsbManager.USB_CONNECTED, false);
if (!connected) { if (!connected) {
Log.d(TAG, "USB disconnected, notifying service");
notifyService(false); notifyService(false);
mActivity.finish(); mActivity.finish();
} }
@@ -126,29 +129,20 @@ public class UsbDebuggingActivity extends AlertActivity
} }
@Override @Override
public void onStart() { protected void onDestroy() {
super.onStart();
if (mDisconnectedReceiver != null) {
IntentFilter filter = new IntentFilter(UsbManager.ACTION_USB_STATE);
mBroadcastDispatcher.registerReceiver(mDisconnectedReceiver, filter);
}
}
@Override
protected void onStop() {
if (mDisconnectedReceiver != null) { if (mDisconnectedReceiver != null) {
mBroadcastDispatcher.unregisterReceiver(mDisconnectedReceiver); mBroadcastDispatcher.unregisterReceiver(mDisconnectedReceiver);
} }
super.onStop(); // Only notify the service if the activity is finishing; if onDestroy has been called due to
} // a configuration change then allow the user to still authorize the connection the next
// time the activity is in the foreground.
@Override if (isFinishing()) {
protected void onDestroy() { // If the ADB service has not yet been notified due to this dialog being closed in some
// If the ADB service has not yet been notified due to this dialog being closed in some // other way then notify the service to deny the connection to ensure system_server
// other way then notify the service to deny the connection to ensure system_server sends // sends a response to adbd.
// a response to adbd. if (!mServiceNotified) {
if (!mServiceNotified) { notifyService(false);
notifyService(false); }
} }
super.onDestroy(); super.onDestroy();
} }