mirror of
https://github.com/msfjarvis/compose-lobsters
synced 2025-08-17 19:07:02 +05:30
all: move all Hilt processing to app module
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
This commit is contained in:
parent
cff16d17b5
commit
027e3410d8
9 changed files with 29 additions and 18 deletions
|
@ -1,17 +1,13 @@
|
|||
plugins {
|
||||
id("com.android.library")
|
||||
kotlin("android")
|
||||
kotlin("kapt")
|
||||
id("com.squareup.sqldelight")
|
||||
`lobsters-plugin`
|
||||
}
|
||||
|
||||
dependencies {
|
||||
kapt(Dependencies.AndroidX.Hilt.daggerCompiler)
|
||||
implementation(Dependencies.AndroidX.Hilt.dagger)
|
||||
implementation(Dependencies.ThirdParty.Moshi.lib)
|
||||
implementation(Dependencies.ThirdParty.Moshi.moshiMetadataReflect)
|
||||
implementation(Dependencies.ThirdParty.SQLDelight.androidDriver)
|
||||
testImplementation(Dependencies.Kotlin.Coroutines.core)
|
||||
testImplementation(Dependencies.ThirdParty.SQLDelight.jvmDriver)
|
||||
testImplementation(Dependencies.Testing.junit)
|
||||
|
|
|
@ -1,46 +0,0 @@
|
|||
package dev.msfjarvis.lobsters.injection
|
||||
|
||||
import android.content.Context
|
||||
import com.squareup.sqldelight.android.AndroidSqliteDriver
|
||||
import com.squareup.sqldelight.db.SqlDriver
|
||||
import dagger.Module
|
||||
import dagger.Provides
|
||||
import dagger.Reusable
|
||||
import dagger.hilt.InstallIn
|
||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
||||
import dagger.hilt.components.SingletonComponent
|
||||
import dev.msfjarvis.lobsters.data.local.LobstersPost
|
||||
import dev.msfjarvis.lobsters.database.LobstersDatabase
|
||||
import dev.msfjarvis.lobsters.model.SubmitterAdapter
|
||||
import dev.msfjarvis.lobsters.model.TagsAdapter
|
||||
import javax.inject.Singleton
|
||||
|
||||
@Module
|
||||
@InstallIn(SingletonComponent::class)
|
||||
object DatabaseModule {
|
||||
|
||||
@Provides
|
||||
@Reusable
|
||||
fun providesTagsAdapter(): TagsAdapter {
|
||||
return TagsAdapter()
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun providesSqlDriver(@ApplicationContext context: Context): SqlDriver {
|
||||
return AndroidSqliteDriver(LobstersDatabase.Schema, context, "SavedPosts.db")
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun providesLobstersDatabase(
|
||||
sqlDriver: SqlDriver,
|
||||
submitterAdapter: SubmitterAdapter,
|
||||
tagsAdapter: TagsAdapter
|
||||
): LobstersDatabase {
|
||||
return LobstersDatabase(
|
||||
sqlDriver,
|
||||
LobstersPost.Adapter(submitterAdapter, tagsAdapter)
|
||||
)
|
||||
}
|
||||
}
|
|
@ -2,9 +2,8 @@ package dev.msfjarvis.lobsters.model
|
|||
|
||||
import com.squareup.moshi.JsonAdapter
|
||||
import com.squareup.sqldelight.ColumnAdapter
|
||||
import javax.inject.Inject
|
||||
|
||||
class SubmitterAdapter @Inject constructor(private val submitterJsonAdapter: JsonAdapter<Submitter>) :
|
||||
class SubmitterAdapter(private val submitterJsonAdapter: JsonAdapter<Submitter>) :
|
||||
ColumnAdapter<Submitter, String> {
|
||||
|
||||
override fun decode(databaseValue: String): Submitter {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue