diff --git a/app/src/main/java/com/hippo/ehviewer/EhApplication.kt b/app/src/main/java/com/hippo/ehviewer/EhApplication.kt index 30667da28..66d4f54b0 100644 --- a/app/src/main/java/com/hippo/ehviewer/EhApplication.kt +++ b/app/src/main/java/com/hippo/ehviewer/EhApplication.kt @@ -44,6 +44,7 @@ import com.hippo.ehviewer.client.EhUrl import com.hippo.ehviewer.client.EhX509TrustManager import com.hippo.ehviewer.client.data.GalleryDetail import com.hippo.ehviewer.client.parser.EventPaneParser +import com.hippo.ehviewer.dao.buildMainDB import com.hippo.ehviewer.download.DownloadManager import com.hippo.ehviewer.spider.SpiderDen import com.hippo.ehviewer.ui.CommonOperations @@ -107,11 +108,13 @@ class EhApplication : SceneApplication(), DefaultLifecycleObserver, ImageLoaderF ReadableTime.initialize(this) AppConfig.initialize(this) SpiderDen.initialize(this) - EhDB.initialize(this) BitmapUtils.initialize(this) EhTagDatabase.update() AppCompatDelegate.setDefaultNightMode(Settings.getTheme()) launchIO { + launchIO { + ehDatabase + } launchIO { downloadManager } @@ -342,5 +345,8 @@ class EhApplication : SceneApplication(), DefaultLifecycleObserver, ImageLoaderF @JvmStatic val readerPreferences by lazy { ReaderPreferences(AndroidPreferenceStore(application)) } + + @JvmStatic + val ehDatabase by lazy { buildMainDB(application) } } } diff --git a/app/src/main/java/com/hippo/ehviewer/EhDB.java b/app/src/main/java/com/hippo/ehviewer/EhDB.java index 48a99d627..442fb2dac 100644 --- a/app/src/main/java/com/hippo/ehviewer/EhDB.java +++ b/app/src/main/java/com/hippo/ehviewer/EhDB.java @@ -58,7 +58,7 @@ import java.util.List; public class EhDB { private static final int CUR_DB_VER = 4; - private static EhDatabase db; + private static final EhDatabase db = EhApplication.getEhDatabase(); private static void upgradeDB(SQLiteDatabase db, int oldVersion) { switch (oldVersion) { @@ -99,10 +99,6 @@ public class EhDB { } } - public static void initialize(Context context) { - db = Room.databaseBuilder(context, EhDatabase.class, "eh.db").allowMainThreadQueries().build(); - } - public static synchronized List getAllDownloadInfo() { DownloadsDao dao = db.downloadsDao(); List list = dao.list(); diff --git a/app/src/main/java/com/hippo/ehviewer/dao/EhDatabase.kt b/app/src/main/java/com/hippo/ehviewer/dao/EhDatabase.kt index 6e4744add..b1c5525a2 100644 --- a/app/src/main/java/com/hippo/ehviewer/dao/EhDatabase.kt +++ b/app/src/main/java/com/hippo/ehviewer/dao/EhDatabase.kt @@ -1,6 +1,8 @@ package com.hippo.ehviewer.dao +import android.content.Context import androidx.room.Database +import androidx.room.Room import androidx.room.RoomDatabase @Database( @@ -18,3 +20,9 @@ abstract class EhDatabase : RoomDatabase() { abstract fun localFavoritesDao(): LocalFavoritesDao abstract fun quickSearchDao(): QuickSearchDao } + +fun buildMainDB(context: Context): EhDatabase { + // TODO: Remove allowMainThreadQueries + return Room.databaseBuilder(context, EhDatabase::class.java, "eh.db").allowMainThreadQueries() + .build() +}