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}