-
Notifications
You must be signed in to change notification settings - Fork 42
Expand file tree
/
Copy pathApplicationComponent.kt
More file actions
104 lines (95 loc) · 3.84 KB
/
ApplicationComponent.kt
File metadata and controls
104 lines (95 loc) · 3.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
/*
* Copyright (c) 2021 Windscribe Limited.
*/
package com.windscribe.vpn.di
import android.content.Context
import com.windscribe.vpn.Windscribe
import com.windscribe.vpn.api.*
import com.windscribe.vpn.apppreference.PreferencesHelper
import com.windscribe.vpn.autoconnection.AutoConnectionManager
import com.windscribe.vpn.backend.ProxyDNSManager
import com.windscribe.vpn.backend.TrafficCounter
import com.windscribe.vpn.backend.VpnBackendHolder
import com.windscribe.vpn.backend.ikev2.IKev2VpnBackend
import com.windscribe.vpn.backend.openvpn.OpenVPNBackend
import com.windscribe.vpn.backend.utils.WindNotificationBuilder
import com.windscribe.vpn.backend.utils.WindVpnController
import com.windscribe.vpn.backend.wireguard.WireguardBackend
import com.windscribe.vpn.decoytraffic.DecoyTrafficController
import com.windscribe.vpn.localdatabase.LocalDbInterface
import com.windscribe.vpn.mocklocation.MockLocationManager
import com.windscribe.vpn.repository.*
import com.windscribe.vpn.services.FirebaseManager
import com.windscribe.vpn.services.ReceiptValidator
<<<<<<< HEAD
=======
import com.windscribe.vpn.services.sso.GoogleSignInManager
>>>>>>> origin/develop
import com.windscribe.vpn.state.*
import com.windscribe.vpn.workers.WindScribeWorkManager
import com.windscribe.vpn.workers.worker.*
import dagger.Component
import kotlinx.coroutines.CoroutineScope
import javax.inject.Named
import javax.inject.Singleton
@Singleton
@Component(modules = [ApplicationModule::class, VPNModule::class, PersistentModule::class])
interface ApplicationComponent {
//Main
val coroutineScope: CoroutineScope
@get:Named("ApplicationContext")
val appContext: Context
//Api
val apiCallManager: IApiCallManager
//Data
val localDbInterface: LocalDbInterface
val preferencesHelper: PreferencesHelper
val preferenceChangeObserver: PreferenceChangeObserver
//VPN
val vpnBackendHolder: VpnBackendHolder
val windNotificationBuilder: WindNotificationBuilder
val wireguardBackend: WireguardBackend
val iKev2VpnBackend: IKev2VpnBackend
val openVPNBackend: OpenVPNBackend
val vpnConnectionStateManager: VPNConnectionStateManager
val autoConnectionManager: AutoConnectionManager
//Managers
val windScribeWorkManager: WindScribeWorkManager
val deviceStateManager: DeviceStateManager
val windVpnController: WindVpnController
val mockLocationController: MockLocationManager
val networkInfoManager: NetworkInfoManager
val appLifeCycleObserver: AppLifeCycleObserver
val decoyTrafficController: DecoyTrafficController
val trafficCounter: TrafficCounter
val shortcutStateManager: ShortcutStateManager
val receiptValidator: ReceiptValidator
val firebaseManager: FirebaseManager
val proxyDNSManager: ProxyDNSManager
val dynamicShortCutManager: DynamicShortcutManager
<<<<<<< HEAD
=======
val googleSignInManager: GoogleSignInManager
>>>>>>> origin/develop
//Repository
val staticIpRepository: StaticIpRepository
val serverListRepository: ServerListRepository
val locationRepository: LocationRepository
val connectionDataRepository: ConnectionDataRepository
val notificationRepository: NotificationRepository
val userRepository: UserRepository
val latencyRepository: LatencyRepository
val ipRepository: IpRepository
val favouriteRepository: FavouriteRepository
val emergencyConnectRepository: EmergencyConnectRepository
val advanceParameterRepository: AdvanceParameterRepository
//Inject
fun inject(app: Windscribe)
fun inject(serverListWorker: ServerListWorker)
fun inject(credentialsWorker: CredentialsWorker)
fun inject(staticListWorker: StaticIpWorker)
fun inject(sessionWorker: SessionWorker)
fun inject(notificationWorker: NotificationWorker)
fun inject(robertSyncWorker: RobertSyncWorker)
fun inject(latencyWorker: LatencyWorker)
}