aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/foundation/e/advancedprivacy/AdvancedPrivacyApplication.kt
diff options
context:
space:
mode:
authorGuillaume Jacquart <guillaume.jacquart@hoodbrains.com>2023-09-12 06:17:39 +0000
committerGuillaume Jacquart <guillaume.jacquart@hoodbrains.com>2023-09-12 06:17:39 +0000
commit53f4a9ce311d612d43fa770cf7e8f8e98fbb43a0 (patch)
tree59c58e58cfef0e370f39bd9c150e36c6dfcb50c0 /app/src/main/java/foundation/e/advancedprivacy/AdvancedPrivacyApplication.kt
parent1a77e3924bc78eabca7b859ef62be30bbf2476ad (diff)
downloadadvanced-privacy-53f4a9ce311d612d43fa770cf7e8f8e98fbb43a0.tar.gz
2: organise module with clean archi, use Koin for injection.
Diffstat (limited to 'app/src/main/java/foundation/e/advancedprivacy/AdvancedPrivacyApplication.kt')
-rw-r--r--app/src/main/java/foundation/e/advancedprivacy/AdvancedPrivacyApplication.kt57
1 files changed, 52 insertions, 5 deletions
diff --git a/app/src/main/java/foundation/e/advancedprivacy/AdvancedPrivacyApplication.kt b/app/src/main/java/foundation/e/advancedprivacy/AdvancedPrivacyApplication.kt
index 9ce0c2b..0af2a0e 100644
--- a/app/src/main/java/foundation/e/advancedprivacy/AdvancedPrivacyApplication.kt
+++ b/app/src/main/java/foundation/e/advancedprivacy/AdvancedPrivacyApplication.kt
@@ -18,17 +18,64 @@
package foundation.e.advancedprivacy
import android.app.Application
+import android.content.Intent
+import foundation.e.advancedprivacy.common.WarningDialog
+import foundation.e.advancedprivacy.domain.usecases.FakeLocationStateUseCase
+import foundation.e.advancedprivacy.domain.usecases.GetQuickPrivacyStateUseCase
+import foundation.e.advancedprivacy.domain.usecases.IpScramblingStateUseCase
+import foundation.e.advancedprivacy.domain.usecases.ShowFeaturesWarningUseCase
+import foundation.e.advancedprivacy.domain.usecases.TrackersStateUseCase
+import foundation.e.advancedprivacy.domain.usecases.TrackersStatisticsUseCase
+import foundation.e.advancedprivacy.externalinterfaces.permissions.IPermissionsPrivacyModule
+import foundation.e.advancedprivacy.trackers.services.DNSBlockerService
+import foundation.e.advancedprivacy.trackers.services.UpdateTrackersWorker
import foundation.e.lib.telemetry.Telemetry
+import kotlinx.coroutines.CoroutineScope
+import org.koin.android.ext.koin.androidContext
+import org.koin.core.context.startKoin
+import org.koin.java.KoinJavaComponent.get
class AdvancedPrivacyApplication : Application() {
-
- // Initialize the dependency container.
- val dependencyContainer: DependencyContainer by lazy { DependencyContainer(this) }
-
override fun onCreate() {
super.onCreate()
Telemetry.init(BuildConfig.SENTRY_DSN, this, true)
- dependencyContainer.initBackgroundSingletons()
+ startKoin {
+ androidContext(this@AdvancedPrivacyApplication)
+ modules(appModule)
+ }
+ initBackgroundSingletons()
+ }
+
+ private fun initBackgroundSingletons() {
+ UpdateTrackersWorker.periodicUpdate(this)
+
+ WarningDialog.startListening(
+ get(ShowFeaturesWarningUseCase::class.java),
+ get(CoroutineScope::class.java),
+ this
+ )
+
+ Widget.startListening(
+ this,
+ get(GetQuickPrivacyStateUseCase::class.java),
+ get(TrackersStatisticsUseCase::class.java),
+ )
+
+ Notifications.startListening(
+ this,
+ get(GetQuickPrivacyStateUseCase::class.java),
+ get(IPermissionsPrivacyModule::class.java),
+ get(CoroutineScope::class.java),
+ )
+
+ get<IpScramblingStateUseCase>(IpScramblingStateUseCase::class.java)
+ get<FakeLocationStateUseCase>(FakeLocationStateUseCase::class.java)
+ get<TrackersStateUseCase>(TrackersStateUseCase::class.java)
+
+ val intent = Intent(this, DNSBlockerService::class.java)
+ intent.action = DNSBlockerService.ACTION_START
+ intent.putExtra(DNSBlockerService.EXTRA_ENABLE_NOTIFICATION, false)
+ startService(intent)
}
}