diff --git a/briar-android/src/main/java/org/briarproject/briar/android/AppModule.java b/briar-android/src/main/java/org/briarproject/briar/android/AppModule.java index 565a2c6d3582dabacfd526c498961845f174aeaf..5a2ad896c626dbf0e26d282e9d730f117115090a 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/AppModule.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/AppModule.java @@ -31,7 +31,6 @@ import org.briarproject.bramble.util.AndroidUtils; import org.briarproject.bramble.util.StringUtils; import org.briarproject.briar.api.android.AndroidNotificationManager; import org.briarproject.briar.api.android.DozeWatchdog; -import org.briarproject.briar.api.android.ReferenceManager; import org.briarproject.briar.api.android.ScreenFilterMonitor; import java.io.File; @@ -166,12 +165,6 @@ public class AppModule { return app.getSharedPreferences("db", MODE_PRIVATE); } - @Provides - @Singleton - ReferenceManager provideReferenceManager() { - return new ReferenceManagerImpl(); - } - @Provides @Singleton AndroidNotificationManager provideAndroidNotificationManager( diff --git a/briar-android/src/main/java/org/briarproject/briar/android/ReferenceManagerImpl.java b/briar-android/src/main/java/org/briarproject/briar/android/ReferenceManagerImpl.java deleted file mode 100644 index 99fa824980fbb40351e4b9181cd9ec4517df66b6..0000000000000000000000000000000000000000 --- a/briar-android/src/main/java/org/briarproject/briar/android/ReferenceManagerImpl.java +++ /dev/null @@ -1,83 +0,0 @@ -package org.briarproject.briar.android; - -import org.briarproject.briar.api.android.ReferenceManager; - -import java.util.HashMap; -import java.util.Map; -import java.util.concurrent.locks.Lock; -import java.util.concurrent.locks.ReentrantLock; -import java.util.logging.Logger; - -import static java.util.logging.Level.INFO; - -class ReferenceManagerImpl implements ReferenceManager { - - private static final Logger LOG = - Logger.getLogger(ReferenceManagerImpl.class.getName()); - - private final Lock lock = new ReentrantLock(); - - // The following are locking: lock - private final Map<Class<?>, Map<Long, Object>> outerMap = new HashMap<>(); - private long nextHandle = 0; - - @Override - public <T> T getReference(long handle, Class<T> c) { - lock.lock(); - try { - Map<Long, Object> innerMap = outerMap.get(c); - if (innerMap == null) { - if (LOG.isLoggable(INFO)) - LOG.info("0 handles for " + c.getName()); - return null; - } - if (LOG.isLoggable(INFO)) - LOG.info(innerMap.size() + " handles for " + c.getName()); - Object o = innerMap.get(handle); - return c.cast(o); - } finally { - lock.unlock(); - } - - } - - @Override - public <T> long putReference(T reference, Class<T> c) { - lock.lock(); - try { - Map<Long, Object> innerMap = outerMap.get(c); - if (innerMap == null) { - innerMap = new HashMap<>(); - outerMap.put(c, innerMap); - } - long handle = nextHandle++; - innerMap.put(handle, reference); - if (LOG.isLoggable(INFO)) { - LOG.info(innerMap.size() + " handles for " + c.getName() + - " after put"); - } - return handle; - } finally { - lock.unlock(); - } - } - - @Override - public <T> T removeReference(long handle, Class<T> c) { - lock.lock(); - try { - Map<Long, Object> innerMap = outerMap.get(c); - if (innerMap == null) return null; - Object o = innerMap.remove(handle); - if (innerMap.isEmpty()) outerMap.remove(c); - if (LOG.isLoggable(INFO)) { - LOG.info(innerMap.size() + " handles for " + c.getName() + - " after remove"); - } - return c.cast(o); - } finally { - lock.unlock(); - } - - } -} diff --git a/briar-android/src/main/java/org/briarproject/briar/api/android/ReferenceManager.java b/briar-android/src/main/java/org/briarproject/briar/api/android/ReferenceManager.java deleted file mode 100644 index e29b1d95513035c4ae4521f5ba6dbcb77930a0b4..0000000000000000000000000000000000000000 --- a/briar-android/src/main/java/org/briarproject/briar/api/android/ReferenceManager.java +++ /dev/null @@ -1,27 +0,0 @@ -package org.briarproject.briar.api.android; - -/** - * Manages mappings between object references and serialisable handles. This - * enables references to be passed between Android UI objects that belong to - * the same process but can only communicate via serialisation. - */ -public interface ReferenceManager { - - /** - * Returns the object with the given handle, or null if no mapping exists - * for the handle. - */ - <T> T getReference(long handle, Class<T> c); - - /** - * Creates a mapping between the given reference and a handle, and returns - * the handle. - */ - <T> long putReference(T reference, Class<T> c); - - /** - * Removes and returns the object with the given handle, or returns null - * if no mapping exists for the handle. - */ - <T> T removeReference(long handle, Class<T> c); -}