diff options
author | Du, Changbin <changbin.du@intel.com> | 2015-12-17 10:26:26 +0800 |
---|---|---|
committer | Gerrit Code Review <gerrit@cyanogenmod.org> | 2015-12-26 08:22:48 -0800 |
commit | 09b4c0c98133888587279b032fece15fc74efb74 (patch) | |
tree | 9b15a083e4265e4a8c55955c55804d73ab40a533 | |
parent | 59f77c503bfe7ae53c85e43971951d821ee3f649 (diff) | |
download | packages_apps_Settings-09b4c0c98133888587279b032fece15fc74efb74.zip packages_apps_Settings-09b4c0c98133888587279b032fece15fc74efb74.tar.gz packages_apps_Settings-09b4c0c98133888587279b032fece15fc74efb74.tar.bz2 |
Hide usb mode chooser dialog after disconnected
Add a UsbDisconnectedReceiver to listen usb state event, and hide
the usb mode chooser dialog if usb disconnected.
Change-Id: I871f56cb5a310e20950926180d9747dd9fad9754
Signed-off-by: Du, Changbin <changbin.du@intel.com>
Signed-off-by: Zhiquan Liu <zhiquan.liu@intel.com>
-rw-r--r-- | src/com/android/settings/deviceinfo/UsbModeChooserActivity.java | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/com/android/settings/deviceinfo/UsbModeChooserActivity.java b/src/com/android/settings/deviceinfo/UsbModeChooserActivity.java index 77fc388..1105718 100644 --- a/src/com/android/settings/deviceinfo/UsbModeChooserActivity.java +++ b/src/com/android/settings/deviceinfo/UsbModeChooserActivity.java @@ -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); |