diff --git a/packages/apps/Settings/src/com/android/settings/connecteddevice/usb/UsbDetailsFragment.java b/packages/apps/Settings/src/com/android/settings/connecteddevice/usb/UsbDetailsFragment.java
index be37d003492..7e5fabb0939 100644
--- a/packages/apps/Settings/src/com/android/settings/connecteddevice/usb/UsbDetailsFragment.java
+++ b/packages/apps/Settings/src/com/android/settings/connecteddevice/usb/UsbDetailsFragment.java
@@ -36,12 +36,19 @@ import com.android.settingslib.search.SearchIndexable;
import java.util.ArrayList;
import java.util.List;
+import android.util.Log;
+import android.content.BroadcastReceiver;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.os.BatteryManager;
+
/**
* Controls the USB device details and provides updates to individual controllers.
*/
@SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
public class UsbDetailsFragment extends DashboardFragment {
private static final String TAG = UsbDetailsFragment.class.getSimpleName();
+ private BroadcastReceiver mPowerDisconnectReceiver = null;
private List<UsbDetailsController> mControllers;
private UsbBackend mUsbBackend;
@@ -58,6 +65,8 @@ public class UsbDetailsFragment extends DashboardFragment {
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
+ mPowerDisconnectReceiver = new PowerDisconnectReceiver();
+ getActivity().registerReceiver(mPowerDisconnectReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
super.onViewCreated(view, savedInstanceState);
Utils.setActionBarShadowAnimation(getActivity(), getSettingsLifecycle(), getListView());
}
@@ -98,6 +107,21 @@ public class UsbDetailsFragment extends DashboardFragment {
// ret.add(new UsbDetailsTranscodeMtpController(context, fragment, usbBackend));
return ret;
}
+
+ private class PowerDisconnectReceiver extends BroadcastReceiver {
+ public void onReceive(Context content, Intent intent) {
+ int plugType = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, 0);
+ if (plugType == 0) {
+ getActivity().finish();
+ }
+ }
+ }
+
+ @Override
+ public void onDestroy() {
+ super.onDestroy();
+ getActivity().unregisterReceiver(mPowerDisconnectReceiver);
+ }
/**
* For Search.