DbModule.kt 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package com.sduduzog.slimlauncher.di.modules
  2. import android.app.Application
  3. import androidx.room.Room
  4. import com.sduduzog.slimlauncher.data.BaseDao
  5. import com.sduduzog.slimlauncher.data.BaseDatabase
  6. import com.sduduzog.slimlauncher.data.BaseDatabase.Companion.MIGRATION_1_2
  7. import com.sduduzog.slimlauncher.data.BaseDatabase.Companion.MIGRATION_2_3
  8. import com.sduduzog.slimlauncher.data.BaseDatabase.Companion.MIGRATION_3_4
  9. import com.sduduzog.slimlauncher.data.BaseDatabase.Companion.MIGRATION_4_5
  10. import com.sduduzog.slimlauncher.data.BaseDatabase.Companion.MIGRATION_5_6
  11. import com.sduduzog.slimlauncher.data.BaseDatabase.Companion.MIGRATION_6_7
  12. import com.sduduzog.slimlauncher.data.BaseDatabase.Companion.MIGRATION_7_8
  13. import dagger.Module
  14. import dagger.Provides
  15. import dagger.hilt.InstallIn
  16. import dagger.hilt.android.components.ApplicationComponent
  17. import javax.inject.Singleton
  18. @Module
  19. @InstallIn(ApplicationComponent::class)
  20. class DbModule {
  21. @Provides
  22. @Singleton
  23. internal fun provideBaseDatabase(application: Application) : BaseDatabase{
  24. return Room.databaseBuilder(application,
  25. BaseDatabase::class.java, "app_database")
  26. .addMigrations(
  27. MIGRATION_1_2,
  28. MIGRATION_2_3,
  29. MIGRATION_3_4,
  30. MIGRATION_4_5,
  31. MIGRATION_5_6,
  32. MIGRATION_6_7,
  33. MIGRATION_7_8
  34. )
  35. .build()
  36. }
  37. @Provides
  38. @Singleton
  39. internal fun provideBaseDao(baseDatabase: BaseDatabase) : BaseDao {
  40. return baseDatabase.baseDao()
  41. }
  42. }