mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-15 12:19:54 +01:00
Removed unused ReferenceManager.
This commit is contained in:
@@ -31,7 +31,6 @@ import org.briarproject.bramble.util.AndroidUtils;
|
|||||||
import org.briarproject.bramble.util.StringUtils;
|
import org.briarproject.bramble.util.StringUtils;
|
||||||
import org.briarproject.briar.api.android.AndroidNotificationManager;
|
import org.briarproject.briar.api.android.AndroidNotificationManager;
|
||||||
import org.briarproject.briar.api.android.DozeWatchdog;
|
import org.briarproject.briar.api.android.DozeWatchdog;
|
||||||
import org.briarproject.briar.api.android.ReferenceManager;
|
|
||||||
import org.briarproject.briar.api.android.ScreenFilterMonitor;
|
import org.briarproject.briar.api.android.ScreenFilterMonitor;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@@ -166,12 +165,6 @@ public class AppModule {
|
|||||||
return app.getSharedPreferences("db", MODE_PRIVATE);
|
return app.getSharedPreferences("db", MODE_PRIVATE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
|
||||||
@Singleton
|
|
||||||
ReferenceManager provideReferenceManager() {
|
|
||||||
return new ReferenceManagerImpl();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
AndroidNotificationManager provideAndroidNotificationManager(
|
AndroidNotificationManager provideAndroidNotificationManager(
|
||||||
|
|||||||
@@ -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();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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);
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user