properly track ContentObservers so they can be unregistered

This commit is contained in:
Hans-Christoph Steiner 2020-11-11 15:17:36 +01:00
parent 8209bf9a0b
commit 6887e09d88
2 changed files with 3 additions and 12 deletions

View File

@ -40,7 +40,6 @@ import android.util.Log;
import org.fdroid.fdroid.views.main.MainActivity; import org.fdroid.fdroid.views.main.MainActivity;
import org.fdroid.fdroid.views.main.NearbyViewBinder; import org.fdroid.fdroid.views.main.NearbyViewBinder;
import java.util.HashMap;
/** /**
* This is just a shim to receive {@link UsbManager#ACTION_USB_ACCESSORY_ATTACHED} * This is just a shim to receive {@link UsbManager#ACTION_USB_ACCESSORY_ATTACHED}
@ -49,7 +48,6 @@ import java.util.HashMap;
public class UsbDeviceAttachedReceiver extends BroadcastReceiver { public class UsbDeviceAttachedReceiver extends BroadcastReceiver {
public static final String TAG = "UsbDeviceAttachedReceiv"; public static final String TAG = "UsbDeviceAttachedReceiv";
private static final HashMap<Uri, ContentObserver> contentObservers = new HashMap<>();
@RequiresApi(api = 19) @RequiresApi(api = 19)
@Override @Override
@ -77,6 +75,7 @@ public class UsbDeviceAttachedReceiver extends BroadcastReceiver {
} }
}; };
contentResolver.registerContentObserver(uri, true, contentObserver); contentResolver.registerContentObserver(uri, true, contentObserver);
UsbDeviceDetachedReceiver.contentObservers.put(uri, contentObserver);
} }
} }
} }

View File

@ -19,25 +19,17 @@
package org.fdroid.fdroid.nearby; package org.fdroid.fdroid.nearby;
import android.app.Activity;
import android.content.BroadcastReceiver; import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.ContentResolver; import android.content.ContentResolver;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.IntentFilter;
import android.content.UriPermission;
import android.database.ContentObserver; import android.database.ContentObserver;
import android.hardware.usb.UsbManager; import android.hardware.usb.UsbManager;
import android.net.Uri; import android.net.Uri;
import android.os.Build; import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import org.fdroid.fdroid.views.main.MainActivity; import androidx.annotation.RequiresApi;
import org.fdroid.fdroid.views.main.NearbyViewBinder; import org.fdroid.fdroid.views.main.NearbyViewBinder;
import java.util.HashMap; import java.util.HashMap;
@ -49,7 +41,7 @@ import java.util.HashMap;
public class UsbDeviceDetachedReceiver extends BroadcastReceiver { public class UsbDeviceDetachedReceiver extends BroadcastReceiver {
public static final String TAG = "UsbDeviceDetachedReceiv"; public static final String TAG = "UsbDeviceDetachedReceiv";
private static final HashMap<Uri, ContentObserver> contentObservers = new HashMap<>(); static final HashMap<Uri, ContentObserver> contentObservers = new HashMap<>();
@RequiresApi(api = 19) @RequiresApi(api = 19)
@Override @Override