|
|
@@ -1,5 +1,6 @@
|
|
|
package me.vadik.knigopis.dependency
|
|
|
|
|
|
+import com.google.gson.Gson
|
|
|
import com.google.gson.GsonBuilder
|
|
|
import me.vadik.knigopis.*
|
|
|
import me.vadik.knigopis.api.BookCoverSearch
|
|
|
@@ -9,11 +10,8 @@ import me.vadik.knigopis.api.ImageEndpoint
|
|
|
import me.vadik.knigopis.api.gson.ImageThumbnailDeserializer
|
|
|
import me.vadik.knigopis.auth.KAuth
|
|
|
import me.vadik.knigopis.auth.KAuthImpl
|
|
|
-import me.vadik.knigopis.common.ResourceProvider
|
|
|
-import me.vadik.knigopis.common.ResourceProviderImpl
|
|
|
-import me.vadik.knigopis.data.BookOrganizer
|
|
|
-import me.vadik.knigopis.data.FinishedBookPrepareImpl
|
|
|
-import me.vadik.knigopis.data.PlannedBookOrganizerImpl
|
|
|
+import me.vadik.knigopis.common.*
|
|
|
+import me.vadik.knigopis.data.*
|
|
|
import me.vadik.knigopis.dialog.BottomSheetDialogFactory
|
|
|
import me.vadik.knigopis.dialog.DialogFactory
|
|
|
import me.vadik.knigopis.model.FinishedBook
|
|
|
@@ -34,15 +32,28 @@ private const val IMAGE_API_URL = "https://api.qwant.com/api/"
|
|
|
private const val DATE_FORMAT = "yyyy-MM-dd HH:mm:ss"
|
|
|
|
|
|
val appModule = applicationContext {
|
|
|
- bean { BookRepositoryImpl(get(), get(), get("planned"), get("finished")) as BookRepository }
|
|
|
+ bean {
|
|
|
+ BookRepositoryImpl(
|
|
|
+ get(),
|
|
|
+ get(),
|
|
|
+ get(),
|
|
|
+ get("planned"),
|
|
|
+ get("finished"),
|
|
|
+ get()
|
|
|
+ ) as BookRepository
|
|
|
+ }
|
|
|
bean { BookCoverSearchImpl(get(), BookCoverCacheImpl(get())) as BookCoverSearch }
|
|
|
bean { KAuthImpl(get(), get()) as KAuth }
|
|
|
- bean { createMainEndpoint() }
|
|
|
+ bean { createMainEndpoint(get()) }
|
|
|
bean { createImageEndpoint() }
|
|
|
bean("planned") { PlannedBookOrganizerImpl(get(), get()) as BookOrganizer<PlannedBook> }
|
|
|
bean("finished") { FinishedBookPrepareImpl(get()) as BookOrganizer<FinishedBook> }
|
|
|
bean { ConfigurationImpl(get()) as Configuration }
|
|
|
bean { ResourceProviderImpl(get()) as ResourceProvider }
|
|
|
+ bean { NetworkCheckerImpl(get()) as NetworkChecker }
|
|
|
+ bean { BookCacheImpl(get()) as BookCache }
|
|
|
+ bean { CommonCacheImpl(get(), get()) as CommonCache }
|
|
|
+ bean { GsonBuilder().setDateFormat(DATE_FORMAT).create() }
|
|
|
factory { BottomSheetDialogFactory(it["activity"]) as DialogFactory }
|
|
|
userModule()
|
|
|
}
|
|
|
@@ -51,14 +62,12 @@ private fun Context.userModule() {
|
|
|
bean { UserInteractorImpl(get(), get()) as UserInteractor }
|
|
|
}
|
|
|
|
|
|
-private fun createMainEndpoint() =
|
|
|
+private fun createMainEndpoint(gson: Gson) =
|
|
|
Retrofit.Builder()
|
|
|
.baseUrl(MAIN_API_URL)
|
|
|
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
|
|
|
.addConverterFactory(
|
|
|
- GsonConverterFactory.create(
|
|
|
- GsonBuilder().setDateFormat(DATE_FORMAT).create()
|
|
|
- )
|
|
|
+ GsonConverterFactory.create(gson)
|
|
|
)
|
|
|
.client(
|
|
|
OkHttpClient.Builder()
|