120bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwood/* 220bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwood * Copyright (C) 2010 The Android Open Source Project 320bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwood * 420bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwood * Licensed under the Apache License, Version 2.0 (the "License"); 520bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwood * you may not use this file except in compliance with the License. 620bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwood * You may obtain a copy of the License at 720bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwood * 820bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwood * http://www.apache.org/licenses/LICENSE-2.0 920bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwood * 1020bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwood * Unless required by applicable law or agreed to in writing, software 1120bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwood * distributed under the License is distributed on an "AS IS" BASIS, 1220bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwood * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1320bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwood * See the License for the specific language governing permissions and 1420bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwood * limitations under the License. 1520bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwood */ 1620bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwood 1720bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwoodpackage com.android.camerabrowser; 1820bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwood 1920bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwoodimport android.app.Activity; 2020bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwoodimport android.content.BroadcastReceiver; 2120bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwoodimport android.content.Context; 2220bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwoodimport android.content.Intent; 2320bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwoodimport android.content.IntentFilter; 24c4308f01c965571dc2354107c3574df113e397eeMike Lockwoodimport android.hardware.usb.UsbDevice; 25c4308f01c965571dc2354107c3574df113e397eeMike Lockwoodimport android.hardware.usb.UsbManager; 2620bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwoodimport android.util.Log; 2720bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwood 2820bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwoodpublic class DeviceDisconnectedReceiver extends BroadcastReceiver { 2920bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwood 3020bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwood private static final String TAG = "DeviceDisconnectedReceiver"; 3120bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwood 3220bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwood private final Activity mActivity; 3320bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwood private final String mDeviceName; 3420bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwood 3520bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwood public DeviceDisconnectedReceiver(Activity activity, String deviceName) { 3620bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwood mActivity = activity; 3720bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwood mDeviceName = deviceName; 3820bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwood 3920bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwood IntentFilter filter = new IntentFilter(UsbManager.ACTION_USB_DEVICE_DETACHED); 4020bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwood activity.registerReceiver(this, filter); 4120bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwood } 4220bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwood 4320bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwood @Override 4420bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwood public void onReceive(Context context, Intent intent) { 45188d00b07ef0b8968868b3489e80dd9f53d3bafaMike Lockwood UsbDevice device = (UsbDevice)intent.getParcelableExtra(UsbManager.EXTRA_DEVICE); 46188d00b07ef0b8968868b3489e80dd9f53d3bafaMike Lockwood String deviceName = device.getDeviceName(); 4720bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwood Log.d(TAG, "ACTION_USB_DEVICE_DETACHED " + deviceName); 4820bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwood 4920bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwood // close our activity if the device it is displaying is disconnected 5020bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwood if (deviceName.equals(mDeviceName)) { 5120bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwood mActivity.finish(); 5220bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwood } 5320bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwood } 5420bc97fc541610a296d12e25570ac3eb6d599673Mike Lockwood}