mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-17 13:19:52 +01:00
Add transport property to indicate support for removable drives.
This commit is contained in:
@@ -4,6 +4,7 @@ import android.app.Application;
|
|||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
|
|
||||||
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
|
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
|
||||||
|
import org.briarproject.bramble.api.plugin.PluginCallback;
|
||||||
import org.briarproject.bramble.api.properties.TransportProperties;
|
import org.briarproject.bramble.api.properties.TransportProperties;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@@ -21,8 +22,9 @@ class AndroidRemovableDrivePlugin extends RemovableDrivePlugin {
|
|||||||
|
|
||||||
private final Application app;
|
private final Application app;
|
||||||
|
|
||||||
AndroidRemovableDrivePlugin(Application app, int maxLatency) {
|
AndroidRemovableDrivePlugin(Application app, PluginCallback callback,
|
||||||
super(maxLatency);
|
int maxLatency) {
|
||||||
|
super(callback, maxLatency);
|
||||||
this.app = app;
|
this.app = app;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -42,6 +42,6 @@ public class AndroidRemovableDrivePluginFactory implements
|
|||||||
@Nullable
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
public SimplexPlugin createPlugin(PluginCallback callback) {
|
public SimplexPlugin createPlugin(PluginCallback callback) {
|
||||||
return new AndroidRemovableDrivePlugin(app, MAX_LATENCY);
|
return new AndroidRemovableDrivePlugin(app, callback, MAX_LATENCY);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,4 +8,5 @@ public interface RemovableDriveConstants {
|
|||||||
|
|
||||||
String PROP_PATH = "path";
|
String PROP_PATH = "path";
|
||||||
String PROP_URI = "uri";
|
String PROP_URI = "uri";
|
||||||
|
String PROP_SUPPORTED = "supported";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package org.briarproject.bramble.plugin.file;
|
|||||||
import org.briarproject.bramble.api.Pair;
|
import org.briarproject.bramble.api.Pair;
|
||||||
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
|
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
|
||||||
import org.briarproject.bramble.api.plugin.ConnectionHandler;
|
import org.briarproject.bramble.api.plugin.ConnectionHandler;
|
||||||
|
import org.briarproject.bramble.api.plugin.PluginCallback;
|
||||||
import org.briarproject.bramble.api.plugin.TransportConnectionReader;
|
import org.briarproject.bramble.api.plugin.TransportConnectionReader;
|
||||||
import org.briarproject.bramble.api.plugin.TransportConnectionWriter;
|
import org.briarproject.bramble.api.plugin.TransportConnectionWriter;
|
||||||
import org.briarproject.bramble.api.plugin.TransportId;
|
import org.briarproject.bramble.api.plugin.TransportId;
|
||||||
@@ -17,10 +18,12 @@ import java.util.logging.Logger;
|
|||||||
|
|
||||||
import javax.annotation.concurrent.Immutable;
|
import javax.annotation.concurrent.Immutable;
|
||||||
|
|
||||||
|
import static java.util.Collections.singletonMap;
|
||||||
import static java.util.logging.Level.WARNING;
|
import static java.util.logging.Level.WARNING;
|
||||||
import static java.util.logging.Logger.getLogger;
|
import static java.util.logging.Logger.getLogger;
|
||||||
import static org.briarproject.bramble.api.plugin.Plugin.State.ACTIVE;
|
import static org.briarproject.bramble.api.plugin.Plugin.State.ACTIVE;
|
||||||
import static org.briarproject.bramble.api.plugin.file.RemovableDriveConstants.ID;
|
import static org.briarproject.bramble.api.plugin.file.RemovableDriveConstants.ID;
|
||||||
|
import static org.briarproject.bramble.api.plugin.file.RemovableDriveConstants.PROP_SUPPORTED;
|
||||||
import static org.briarproject.bramble.util.LogUtils.logException;
|
import static org.briarproject.bramble.util.LogUtils.logException;
|
||||||
|
|
||||||
@Immutable
|
@Immutable
|
||||||
@@ -31,6 +34,7 @@ abstract class AbstractRemovableDrivePlugin implements SimplexPlugin {
|
|||||||
getLogger(AbstractRemovableDrivePlugin.class.getName());
|
getLogger(AbstractRemovableDrivePlugin.class.getName());
|
||||||
|
|
||||||
private final int maxLatency;
|
private final int maxLatency;
|
||||||
|
private final PluginCallback callback;
|
||||||
|
|
||||||
abstract InputStream openInputStream(TransportProperties p)
|
abstract InputStream openInputStream(TransportProperties p)
|
||||||
throws IOException;
|
throws IOException;
|
||||||
@@ -38,7 +42,8 @@ abstract class AbstractRemovableDrivePlugin implements SimplexPlugin {
|
|||||||
abstract OutputStream openOutputStream(TransportProperties p)
|
abstract OutputStream openOutputStream(TransportProperties p)
|
||||||
throws IOException;
|
throws IOException;
|
||||||
|
|
||||||
AbstractRemovableDrivePlugin(int maxLatency) {
|
AbstractRemovableDrivePlugin(PluginCallback callback, int maxLatency) {
|
||||||
|
this.callback = callback;
|
||||||
this.maxLatency = maxLatency;
|
this.maxLatency = maxLatency;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -60,6 +65,8 @@ abstract class AbstractRemovableDrivePlugin implements SimplexPlugin {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void start() {
|
public void start() {
|
||||||
|
callback.mergeLocalProperties(
|
||||||
|
new TransportProperties(singletonMap(PROP_SUPPORTED, "true")));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package org.briarproject.bramble.plugin.file;
|
package org.briarproject.bramble.plugin.file;
|
||||||
|
|
||||||
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
|
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
|
||||||
|
import org.briarproject.bramble.api.plugin.PluginCallback;
|
||||||
import org.briarproject.bramble.api.properties.TransportProperties;
|
import org.briarproject.bramble.api.properties.TransportProperties;
|
||||||
|
|
||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
@@ -18,8 +19,8 @@ import static org.briarproject.bramble.util.StringUtils.isNullOrEmpty;
|
|||||||
@NotNullByDefault
|
@NotNullByDefault
|
||||||
class RemovableDrivePlugin extends AbstractRemovableDrivePlugin {
|
class RemovableDrivePlugin extends AbstractRemovableDrivePlugin {
|
||||||
|
|
||||||
RemovableDrivePlugin(int maxLatency) {
|
RemovableDrivePlugin(PluginCallback callback, int maxLatency) {
|
||||||
super(maxLatency);
|
super(callback, maxLatency);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -36,6 +36,6 @@ public class RemovableDrivePluginFactory implements SimplexPluginFactory {
|
|||||||
@Nullable
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
public SimplexPlugin createPlugin(PluginCallback callback) {
|
public SimplexPlugin createPlugin(PluginCallback callback) {
|
||||||
return new RemovableDrivePlugin(MAX_LATENCY);
|
return new RemovableDrivePlugin(callback, MAX_LATENCY);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user