Merge "Hide usb mode chooser dialog after disconnected"

This commit is contained in:
Nick Kralevich
2015-12-23 18:55:09 +00:00
committed by Gerrit Code Review

View File

@@ -20,7 +20,12 @@ import android.annotation.Nullable;
import android.app.Activity;
import android.app.ActivityManager;
import android.app.AlertDialog;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
import android.hardware.usb.UsbManager;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
@@ -49,6 +54,19 @@ public class UsbModeChooserActivity extends Activity {
private AlertDialog mDialog;
private LayoutInflater mLayoutInflater;
private BroadcastReceiver mDisconnectedReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (UsbManager.ACTION_USB_STATE.equals(action)) {
boolean connected = intent.getBooleanExtra(UsbManager.USB_CONNECTED, false);
if (!connected) {
mDialog.dismiss();
}
}
}
};
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
@@ -84,6 +102,20 @@ public class UsbModeChooserActivity extends Activity {
}
}
@Override
public void onStart() {
super.onStart();
IntentFilter filter = new IntentFilter(UsbManager.ACTION_USB_STATE);
registerReceiver(mDisconnectedReceiver, filter);
}
@Override
protected void onStop() {
unregisterReceiver(mDisconnectedReceiver);
super.onStop();
}
private void inflateOption(final int mode, boolean selected, LinearLayout container) {
View v = mLayoutInflater.inflate(R.layout.radio_with_summary, container, false);