mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-03-15 07:29:15 +01:00
OP-825 Only attempt to unregister broadcast receivers if they have been registered
This commit is contained in:
parent
3b5f3c8125
commit
40a157fbad
@ -65,6 +65,8 @@ public class HidUAVTalk extends TelemetryTask {
|
||||
private boolean readPending = false;
|
||||
private boolean writePending = false;
|
||||
private IntentFilter deviceAttachedFilter;
|
||||
private boolean usbReceiverRegistered = false;
|
||||
private boolean usbPermissionReceiverRegistered = false;
|
||||
|
||||
public HidUAVTalk(OPTelemetryService service) {
|
||||
super(service);
|
||||
@ -74,8 +76,14 @@ public class HidUAVTalk extends TelemetryTask {
|
||||
public void disconnect() {
|
||||
|
||||
CleanUpAndClose();
|
||||
telemService.unregisterReceiver(usbReceiver);
|
||||
telemService.unregisterReceiver(usbPermissionReceiver);
|
||||
if(usbReceiverRegistered){
|
||||
telemService.unregisterReceiver(usbReceiver);
|
||||
usbReceiverRegistered = false;
|
||||
}
|
||||
if(usbPermissionReceiverRegistered){
|
||||
telemService.unregisterReceiver(usbPermissionReceiver);
|
||||
usbPermissionReceiverRegistered = false;
|
||||
}
|
||||
|
||||
super.disconnect();
|
||||
|
||||
@ -110,11 +118,13 @@ public class HidUAVTalk extends TelemetryTask {
|
||||
permissionIntent = PendingIntent.getBroadcast(telemService, 0, new Intent(ACTION_USB_PERMISSION), 0);
|
||||
permissionFilter = new IntentFilter(ACTION_USB_PERMISSION);
|
||||
telemService.registerReceiver(usbPermissionReceiver, permissionFilter);
|
||||
usbPermissionReceiverRegistered = true;
|
||||
|
||||
deviceAttachedFilter = new IntentFilter();
|
||||
deviceAttachedFilter.addAction(UsbManager.ACTION_USB_DEVICE_ATTACHED);
|
||||
deviceAttachedFilter.addAction(UsbManager.ACTION_USB_DEVICE_DETACHED);
|
||||
telemService.registerReceiver(usbReceiver, deviceAttachedFilter);
|
||||
usbReceiverRegistered = true;
|
||||
|
||||
// Go through all the devices plugged in
|
||||
HashMap<String, UsbDevice> deviceList = usbManager.getDeviceList();
|
||||
|
Loading…
x
Reference in New Issue
Block a user