package mx.trackermap.TrackerMap.android import android.app.Application import mx.trackermap.TrackerMap.android.details.commands.UnitCommandsViewModel import mx.trackermap.TrackerMap.android.details.information.UnitInformationViewModel import mx.trackermap.TrackerMap.android.details.reports.UnitReportsViewModel import mx.trackermap.TrackerMap.android.session.LoginViewModel import mx.trackermap.TrackerMap.android.units.UnitsViewModel import mx.trackermap.TrackerMap.client.apis.CommandsApi import mx.trackermap.TrackerMap.client.apis.DevicesApi import mx.trackermap.TrackerMap.client.apis.PositionsApi import mx.trackermap.TrackerMap.client.apis.ReportsApi import mx.trackermap.TrackerMap.client.apis.SessionApi import mx.trackermap.TrackerMap.controllers.UnitsController import org.koin.android.ext.koin.androidContext import org.koin.android.ext.koin.androidLogger import org.koin.androidx.viewmodel.dsl.viewModel import org.koin.core.context.startKoin import org.koin.core.logger.Level import org.koin.dsl.module class TrackerApp : Application() { override fun onCreate() { super.onCreate() val appModule = module { single { "https://etbsa.net/api" } single { SessionApi(get()) } single { DevicesApi(get()) } single { PositionsApi(get()) } single { CommandsApi(get()) } single { ReportsApi(get()) } single { UnitsController(get(), get()) } viewModel { LoginViewModel(get(), get()) } viewModel { UnitInformationViewModel(get()) } viewModel { UnitCommandsViewModel(get()) } single { UnitsViewModel(get()) } viewModel { UnitReportsViewModel(get(), get()) } } startKoin { androidLogger(Level.ERROR) androidContext(this@TrackerApp) modules(appModule) } } }