11package app.what.schedule
22
33import android.app.Application
4- import android.widget.Toast
54import androidx.room.Room
5+ import app.what.foundation.data.settings.PreferenceStorage
66import app.what.foundation.services.AppLogger
77import app.what.foundation.services.AppLogger.Companion.Auditor
88import app.what.foundation.services.auto_update.AppUpdateManager
@@ -16,9 +16,11 @@ import app.what.foundation.services.crash.CrashHandler
1616import app.what.schedule.data.local.database.AppDatabase
1717import app.what.schedule.data.local.settings.AppValues
1818import app.what.schedule.data.remote.api.InstitutionManager
19+ import app.what.schedule.data.remote.providers.dgtu.services.DGTUAccountService
1920import app.what.schedule.domain.NewsRepository
2021import app.what.schedule.domain.ScheduleRepository
2122import app.what.schedule.features.dev.presentation.NetworkMonitorPlugin
23+ import app.what.schedule.features.insts.dgtu.domain.DgtuController
2224import app.what.schedule.features.main.domain.MainController
2325import app.what.schedule.features.news.domain.NewsController
2426import app.what.schedule.features.newsDetail.domain.NewsDetailController
@@ -53,6 +55,8 @@ import kotlinx.serialization.json.Json
5355import org.koin.android.ext.android.getKoin
5456import org.koin.android.ext.koin.androidContext
5557import org.koin.core.context.startKoin
58+ import org.koin.core.module.dsl.singleOf
59+ import org.koin.dsl.bind
5660import org.koin.dsl.module
5761import java.security.cert.X509Certificate
5862import java.util.UUID
@@ -107,29 +111,37 @@ class ScheduleApp : Application() {
107111 val source = getInstallSource(this )
108112
109113 when (source) {
110- InstallSource .APK -> Auditor .debug(" d" , " Apk" )
111- InstallSource .RuStore -> Auditor .debug(" d" , " RuStore" )
114+ InstallSource .APK -> Auditor .debug(" d" , " install source Apk" )
115+ InstallSource .RuStore -> Auditor .debug(" d" , " install source RuStore" )
112116 }
113117 }
114118}
115119
116120val controllers = module {
117- single<SettingsController > { SettingsController (get(), get()) }
118- single<NewsController > { NewsController (get(), get()) }
121+ singleOf(::SettingsController )
122+ singleOf(::NewsController )
123+ singleOf(::ScheduleController )
124+ singleOf(::OnboardingController )
125+ singleOf(::MainController )
126+ singleOf(::DgtuController )
119127 factory<NewsDetailController > { params -> NewsDetailController (params.get(), get()) }
120- single<ScheduleController > { ScheduleController (get(), get()) }
121- single<OnboardingController > { OnboardingController (get(), get()) }
122- single<MainController > { MainController () }
123128}
124129
125130val generalModule = module {
126131 single<CoroutineScope > { CoroutineScope (SupervisorJob () + Dispatchers .Main .immediate) }
127- single { AppValues (get()) }
128- single { AppUtils (get()) }
129- single { GoogleDriveParser (get()) }
130- single { FileManager (get()) }
131- single<AppUpdateManager > {
132132
133+ singleOf(::AppValues ) bind PreferenceStorage ::class
134+ singleOf(::AppUtils )
135+ singleOf(::GoogleDriveParser )
136+ singleOf(::FileManager )
137+
138+ singleOf(::DGTUAccountService )
139+
140+ singleOf(::InstitutionManager )
141+ singleOf(::ScheduleRepository )
142+ singleOf(::NewsRepository )
143+
144+ single<AppUpdateManager > {
133145 val context = androidContext()
134146 val source = getInstallSource(context)
135147
@@ -149,11 +161,6 @@ val generalModule = module {
149161 }
150162 }
151163
152-
153- single { InstitutionManager (get(), get()) }
154- single { ScheduleRepository (get(), get(), get()) }
155- single { NewsRepository (get(), get()) }
156-
157164 single {
158165 Room .databaseBuilder(
159166 androidContext(),
@@ -178,10 +185,11 @@ val generalModule = module {
178185
179186 install(ContentNegotiation ) {
180187 json(Json {
181- ignoreUnknownKeys = true
182- isLenient = true
183188 classDiscriminator = " type"
189+ ignoreUnknownKeys = true
184190 prettyPrint = true
191+ isLenient = true
192+ explicitNulls = false
185193 })
186194 }
187195
0 commit comments