|
@@ -1,19 +1,24 @@
|
|
|
package com.ys.bdtp.adm.di
|
|
|
|
|
|
+import android.content.Context
|
|
|
import android.util.Log
|
|
|
+import com.ys.bdtp.adm.AdmApplication
|
|
|
import com.ys.bdtp.adm.app.IP
|
|
|
import com.ys.bdtp.adm.app.converter.NullOrEmptyConverter
|
|
|
import com.ys.bdtp.adm.app.interceptor.GzipRequestInterceptor
|
|
|
import com.ys.bdtp.adm.mvvm.model.db.AdmDatabase
|
|
|
import com.ys.bdtp.adm.mvvm.model.nt.Api
|
|
|
+import com.ys.bdtp.adm.mvvm.vm.flash.FlashRepository
|
|
|
import com.ys.bdtp.adm.mvvm.vm.flash.FlashViewModel
|
|
|
+import com.ys.bdtp.adm.mvvm.vm.login.LoginRepository
|
|
|
import com.ys.bdtp.adm.mvvm.vm.login.LoginViewModel
|
|
|
+import com.ys.bdtp.adm.mvvm.vm.main.MainRepository
|
|
|
import com.ys.bdtp.adm.mvvm.vm.main.MainViewModel
|
|
|
import okhttp3.OkHttpClient
|
|
|
import okhttp3.logging.HttpLoggingInterceptor
|
|
|
import org.kodein.di.DI
|
|
|
+import org.kodein.di.android.x.androidXModule
|
|
|
import org.kodein.di.bind
|
|
|
-import org.kodein.di.bindProvider
|
|
|
import org.kodein.di.bindSingleton
|
|
|
import org.kodein.di.instance
|
|
|
import org.kodein.di.provider
|
|
@@ -23,9 +28,16 @@ import retrofit2.converter.gson.GsonConverterFactory
|
|
|
import java.io.UnsupportedEncodingException
|
|
|
import java.util.concurrent.TimeUnit
|
|
|
|
|
|
-val httpModule = DI.Module("httpModule") {
|
|
|
- // 构建 Retrofit 对象
|
|
|
+fun di(context: Context) = DI {
|
|
|
+ import(androidXModule(context.applicationContext as AdmApplication))
|
|
|
+ import(httpModule)
|
|
|
+ import(repositoryModule)
|
|
|
+ import(viewModelModule)
|
|
|
+ import(dbModule)
|
|
|
+}
|
|
|
|
|
|
+private val httpModule = DI.Module("httpModule") {
|
|
|
+ // 构建 Retrofit 对象
|
|
|
bind {
|
|
|
singleton {
|
|
|
Retrofit.Builder()
|
|
@@ -77,17 +89,17 @@ val httpModule = DI.Module("httpModule") {
|
|
|
}
|
|
|
|
|
|
val repositoryModule = DI.Module("repository") {
|
|
|
- //bindSingleton { AdmRepository(instance(), instance(), instance()) }
|
|
|
+ bind { provider { FlashRepository(instance()) } }
|
|
|
+ bind { provider { LoginRepository(instance()) } }
|
|
|
+ bind { provider { MainRepository(instance()) } }
|
|
|
}
|
|
|
|
|
|
val viewModelModule = DI.Module("viewModel") {
|
|
|
- bind { provider { FlashViewModel() } }
|
|
|
- bind { provider { LoginViewModel() } }
|
|
|
- bind { provider { MainViewModel() } }
|
|
|
-
|
|
|
+ bind { provider { FlashViewModel(instance()) } }
|
|
|
+ bind { provider { LoginViewModel(instance()) } }
|
|
|
+ bind { provider { MainViewModel(instance()) } }
|
|
|
}
|
|
|
|
|
|
-
|
|
|
val dbModule = DI.Module("dbModule") {
|
|
|
bind {
|
|
|
singleton {
|