Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Verified Commit 3d80f2e0 authored by Fahim M. Choudhury's avatar Fahim M. Choudhury
Browse files

refactor: delegate AppInstallDatabase (fused_database) initialization to Hilt

parent c4cc8359
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@
package foundation.e.apps.data.installation.di

import android.content.Context
import androidx.room.Room
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
@@ -31,10 +32,14 @@ import javax.inject.Singleton
@Module
@InstallIn(SingletonComponent::class)
object AppInstallPersistenceModule {
    private const val DATABASE_NAME = "fused_database"

    @Singleton
    @Provides
    fun provideDatabaseInstance(@ApplicationContext context: Context): AppInstallDatabase {
        return AppInstallDatabase.getInstance(context)
        return Room.databaseBuilder(context, AppInstallDatabase::class.java, DATABASE_NAME)
            .fallbackToDestructiveMigration()
            .build()
    }

    @Singleton
+0 −21
Original line number Diff line number Diff line
@@ -18,9 +18,7 @@

package foundation.e.apps.data.installation.local

import android.content.Context
import androidx.room.Database
import androidx.room.Room
import androidx.room.RoomDatabase
import androidx.room.TypeConverters
import androidx.room.migration.Migration
@@ -33,10 +31,6 @@ abstract class AppInstallDatabase : RoomDatabase() {
    abstract fun fusedDownloadDao(): AppInstallDAO

    companion object {
        private lateinit var instance: AppInstallDatabase
        private val lock = Any()
        private const val DATABASE_NAME = "fused_database"

        val migration6To7 = object : Migration(6, 7) {
            override fun migrate(db: SupportSQLiteDatabase) {
                db.execSQL(
@@ -44,20 +38,5 @@ abstract class AppInstallDatabase : RoomDatabase() {
                )
            }
        }

        fun getInstance(context: Context): AppInstallDatabase {
            if (!Companion::instance.isInitialized) {
                synchronized(lock) {
                    if (!Companion::instance.isInitialized) {
                        instance =
                            Room.databaseBuilder(context, AppInstallDatabase::class.java, DATABASE_NAME)
                                .addMigrations(migration6To7)
                                .fallbackToDestructiveMigration()
                                .build()
                    }
                }
            }
            return instance
        }
    }
}