mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-13 19:29:06 +01:00
Use injection to create plugin factories.
This commit is contained in:
@@ -5,25 +5,16 @@ import dagger.Module
|
||||
import dagger.Provides
|
||||
import org.briarproject.bramble.account.AccountModule
|
||||
import org.briarproject.bramble.api.FeatureFlags
|
||||
import org.briarproject.bramble.api.battery.BatteryManager
|
||||
import org.briarproject.bramble.api.db.DatabaseConfig
|
||||
import org.briarproject.bramble.api.event.EventBus
|
||||
import org.briarproject.bramble.api.lifecycle.IoExecutor
|
||||
import org.briarproject.bramble.api.network.NetworkManager
|
||||
import org.briarproject.bramble.api.plugin.BackoffFactory
|
||||
import org.briarproject.bramble.api.plugin.PluginConfig
|
||||
import org.briarproject.bramble.api.plugin.TorDirectory
|
||||
import org.briarproject.bramble.api.plugin.TransportId
|
||||
import org.briarproject.bramble.api.plugin.duplex.DuplexPluginFactory
|
||||
import org.briarproject.bramble.api.plugin.simplex.SimplexPluginFactory
|
||||
import org.briarproject.bramble.api.system.Clock
|
||||
import org.briarproject.bramble.api.system.LocationUtils
|
||||
import org.briarproject.bramble.api.system.ResourceProvider
|
||||
import org.briarproject.bramble.api.system.WakefulIoExecutor
|
||||
import org.briarproject.bramble.battery.DefaultBatteryManagerModule
|
||||
import org.briarproject.bramble.event.DefaultEventExecutorModule
|
||||
import org.briarproject.bramble.network.JavaNetworkModule
|
||||
import org.briarproject.bramble.plugin.tor.CircumventionModule
|
||||
import org.briarproject.bramble.plugin.tor.CircumventionProvider
|
||||
import org.briarproject.bramble.plugin.tor.UnixTorPluginFactory
|
||||
import org.briarproject.bramble.socks.SocksModule
|
||||
import org.briarproject.bramble.system.DefaultTaskSchedulerModule
|
||||
@@ -39,9 +30,7 @@ import org.briarproject.briar.headless.forums.HeadlessForumModule
|
||||
import org.briarproject.briar.headless.messaging.HeadlessMessagingModule
|
||||
import java.io.File
|
||||
import java.util.Collections.emptyList
|
||||
import java.util.concurrent.Executor
|
||||
import javax.inject.Singleton
|
||||
import javax.net.SocketFactory
|
||||
|
||||
@Module(
|
||||
includes = [
|
||||
@@ -77,39 +66,15 @@ internal class HeadlessModule(private val appDir: File) {
|
||||
}
|
||||
|
||||
@Provides
|
||||
internal fun providePluginConfig(
|
||||
@IoExecutor ioExecutor: Executor,
|
||||
@WakefulIoExecutor wakefulIoExecutor: Executor,
|
||||
torSocketFactory: SocketFactory,
|
||||
backoffFactory: BackoffFactory,
|
||||
networkManager: NetworkManager,
|
||||
locationUtils: LocationUtils,
|
||||
eventBus: EventBus,
|
||||
resourceProvider: ResourceProvider,
|
||||
circumventionProvider: CircumventionProvider,
|
||||
batteryManager: BatteryManager,
|
||||
clock: Clock
|
||||
): PluginConfig {
|
||||
val duplex: List<DuplexPluginFactory> = if (isLinux() || isMac()) {
|
||||
val torDirectory = File(appDir, "tor")
|
||||
val tor = UnixTorPluginFactory(
|
||||
ioExecutor,
|
||||
wakefulIoExecutor,
|
||||
networkManager,
|
||||
locationUtils,
|
||||
eventBus,
|
||||
torSocketFactory,
|
||||
backoffFactory,
|
||||
resourceProvider,
|
||||
circumventionProvider,
|
||||
batteryManager,
|
||||
clock,
|
||||
torDirectory
|
||||
)
|
||||
listOf(tor)
|
||||
} else {
|
||||
emptyList()
|
||||
}
|
||||
@TorDirectory
|
||||
internal fun provideTorDirectory(): File {
|
||||
return File(appDir, "tor")
|
||||
}
|
||||
|
||||
@Provides
|
||||
internal fun providePluginConfig(tor: UnixTorPluginFactory): PluginConfig {
|
||||
val duplex: List<DuplexPluginFactory> =
|
||||
if (isLinux() || isMac()) listOf(tor) else emptyList()
|
||||
return object : PluginConfig {
|
||||
override fun getDuplexFactories(): Collection<DuplexPluginFactory> = duplex
|
||||
override fun getSimplexFactories(): Collection<SimplexPluginFactory> = emptyList()
|
||||
|
||||
Reference in New Issue
Block a user