diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/data/local/KiwixRoomDatabase.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/data/local/KiwixRoomDatabase.kt index 604f48d3f..ab67b6911 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/data/local/KiwixRoomDatabase.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/data/local/KiwixRoomDatabase.kt @@ -26,23 +26,23 @@ import io.objectbox.BoxStore import io.objectbox.kotlin.boxFor import org.kiwix.kiwixmobile.core.dao.NewRecentSearchRoomDao import org.kiwix.kiwixmobile.core.dao.entities.RecentSearchRoomEntity -import javax.inject.Inject @Suppress("UnnecessaryAbstractClass") @Database(entities = [RecentSearchRoomEntity::class], version = 19) abstract class KiwixRoomDatabase : RoomDatabase() { abstract fun newRecentSearchRoomDao(): NewRecentSearchRoomDao - @Inject lateinit var boxStore: BoxStore companion object { private var db: KiwixRoomDatabase? = null - fun getInstance(context: Context): KiwixRoomDatabase { + fun getInstance(context: Context, boxStore: BoxStore): KiwixRoomDatabase { return db ?: synchronized(KiwixRoomDatabase::class) { return@getInstance db ?: Room.databaseBuilder(context, KiwixRoomDatabase::class.java, "KiwixRoom.db") // We have already database name called kiwix.db in order to avoid complexity we named as // kiwixRoom.db - .build().also(KiwixRoomDatabase::migrateRecentSearch) + .build().also { + it.migrateRecentSearch(boxStore) + } } } @@ -51,7 +51,7 @@ abstract class KiwixRoomDatabase : RoomDatabase() { } } - fun migrateRecentSearch() { + fun migrateRecentSearch(boxStore: BoxStore) { newRecentSearchRoomDao().migrationToRoomInsert(boxStore.boxFor()) } } diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/di/modules/ApplicationModule.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/di/modules/ApplicationModule.kt index 9679d03dd..fbe436f5a 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/di/modules/ApplicationModule.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/di/modules/ApplicationModule.kt @@ -65,6 +65,7 @@ class ApplicationModule { @Provides @Singleton + internal fun provideBookUtils(): BookUtils = BookUtils() @IO diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/di/modules/DatabaseModule.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/di/modules/DatabaseModule.kt index ed0ec817f..030e49b53 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/di/modules/DatabaseModule.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/di/modules/DatabaseModule.kt @@ -77,12 +77,15 @@ open class DatabaseModule { @Singleton @Provides fun provideYourDatabase( - context: Context + context: Context, + boxStore: BoxStore ) = - KiwixRoomDatabase.getInstance(context = context)// The reason we can construct a database for the repo + KiwixRoomDatabase.getInstance( + context = context, + boxStore + )// The reason we can construct a database for the repo @Singleton @Provides fun provideYourDao(db: KiwixRoomDatabase) = db.newRecentSearchRoomDao() - }