mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-12 18:59:06 +01:00
63 lines
2.1 KiB
Java
63 lines
2.1 KiB
Java
package org.briarproject.plugins;
|
|
|
|
import android.app.Application;
|
|
import android.content.Context;
|
|
|
|
import org.briarproject.android.api.AndroidExecutor;
|
|
import org.briarproject.api.event.EventBus;
|
|
import org.briarproject.api.lifecycle.IoExecutor;
|
|
import org.briarproject.api.plugins.BackoffFactory;
|
|
import org.briarproject.api.plugins.PluginConfig;
|
|
import org.briarproject.api.plugins.duplex.DuplexPluginFactory;
|
|
import org.briarproject.api.plugins.simplex.SimplexPluginFactory;
|
|
import org.briarproject.api.reporting.DevReporter;
|
|
import org.briarproject.api.system.LocationUtils;
|
|
import org.briarproject.plugins.droidtooth.DroidtoothPluginFactory;
|
|
import org.briarproject.plugins.tcp.AndroidLanTcpPluginFactory;
|
|
import org.briarproject.plugins.tor.TorPluginFactory;
|
|
|
|
import java.security.SecureRandom;
|
|
import java.util.Arrays;
|
|
import java.util.Collection;
|
|
import java.util.Collections;
|
|
import java.util.concurrent.Executor;
|
|
|
|
import javax.net.SocketFactory;
|
|
|
|
import dagger.Module;
|
|
import dagger.Provides;
|
|
|
|
@Module
|
|
public class AndroidPluginsModule {
|
|
|
|
@Provides
|
|
public PluginConfig providePluginConfig(@IoExecutor Executor ioExecutor,
|
|
AndroidExecutor androidExecutor, SecureRandom random,
|
|
SocketFactory torSocketFactory, BackoffFactory backoffFactory,
|
|
Application app, LocationUtils locationUtils, DevReporter reporter,
|
|
EventBus eventBus) {
|
|
Context appContext = app.getApplicationContext();
|
|
DuplexPluginFactory bluetooth = new DroidtoothPluginFactory(ioExecutor,
|
|
androidExecutor, appContext, random, backoffFactory);
|
|
DuplexPluginFactory tor = new TorPluginFactory(ioExecutor, appContext,
|
|
locationUtils, reporter, eventBus, torSocketFactory,
|
|
backoffFactory);
|
|
DuplexPluginFactory lan = new AndroidLanTcpPluginFactory(ioExecutor,
|
|
backoffFactory, appContext);
|
|
final Collection<DuplexPluginFactory> duplex =
|
|
Arrays.asList(bluetooth, tor, lan);
|
|
return new PluginConfig() {
|
|
|
|
@Override
|
|
public Collection<DuplexPluginFactory> getDuplexFactories() {
|
|
return duplex;
|
|
}
|
|
|
|
@Override
|
|
public Collection<SimplexPluginFactory> getSimplexFactories() {
|
|
return Collections.emptyList();
|
|
}
|
|
};
|
|
}
|
|
}
|