summaryrefslogtreecommitdiff
path: root/trackersservicestandalone/src/main/java/foundation/e/advancedprivacy/trackers/service/TrackersServiceSupervisorImpl.kt
diff options
context:
space:
mode:
Diffstat (limited to 'trackersservicestandalone/src/main/java/foundation/e/advancedprivacy/trackers/service/TrackersServiceSupervisorImpl.kt')
-rw-r--r--trackersservicestandalone/src/main/java/foundation/e/advancedprivacy/trackers/service/TrackersServiceSupervisorImpl.kt11
1 files changed, 10 insertions, 1 deletions
diff --git a/trackersservicestandalone/src/main/java/foundation/e/advancedprivacy/trackers/service/TrackersServiceSupervisorImpl.kt b/trackersservicestandalone/src/main/java/foundation/e/advancedprivacy/trackers/service/TrackersServiceSupervisorImpl.kt
index 25d3e2d..e2a6692 100644
--- a/trackersservicestandalone/src/main/java/foundation/e/advancedprivacy/trackers/service/TrackersServiceSupervisorImpl.kt
+++ b/trackersservicestandalone/src/main/java/foundation/e/advancedprivacy/trackers/service/TrackersServiceSupervisorImpl.kt
@@ -25,10 +25,16 @@ import foundation.e.advancedprivacy.trackers.service.data.RequestDNSRepository
import foundation.e.advancedprivacy.trackers.service.usecases.ResolveDNSUseCase
import kotlinx.coroutines.cancel
import kotlinx.coroutines.flow.MutableStateFlow
+import org.koin.core.module.dsl.bind
import org.koin.core.module.dsl.singleOf
import org.koin.dsl.module
+import org.pcap4j.packet.DnsPacket
+import java.util.function.Function
-class TrackersServiceSupervisorImpl(private val context: Context) : TrackersServiceSupervisor {
+class TrackersServiceSupervisorImpl(
+ private val context: Context,
+ private val resolveDNSUseCase: ResolveDNSUseCase
+) : TrackersServiceSupervisor {
internal val state: MutableStateFlow<FeatureServiceState> = MutableStateFlow(FeatureServiceState.OFF)
override fun start(): Boolean {
@@ -54,6 +60,8 @@ class TrackersServiceSupervisorImpl(private val context: Context) : TrackersServ
override fun isRunning(): Boolean {
return state.value != FeatureServiceState.OFF
}
+
+ override val dnsFilterForIpScrambling = Function<DnsPacket?, DnsPacket?> { dnsRequest -> resolveDNSUseCase.shouldBlock(dnsRequest) }
}
val trackerServiceModule = module {
@@ -61,4 +69,5 @@ val trackerServiceModule = module {
singleOf(::RequestDNSRepository)
singleOf(::ResolveDNSUseCase)
singleOf(::TunLooper)
+ singleOf(::TrackersServiceSupervisorImpl) { bind<TrackersServiceSupervisor>() }
}