Singletonize FavouriteStatusRouter

This commit is contained in:
tarsin committed 2023-06-02 17:55:40 +08:00
1 parent a4eca58275
commit 58d1ace612
5 files changed
+11 -19

No files matched your search

@@ -164,14 +164,12 @@ class EhApplication : Application(), ImageLoaderFactory {
val galleryDetailCache by lazy {
LruCache<Long, GalleryDetail>(25).also {
favouriteStatusRouter.addListener { gid, slot ->
FavouriteStatusRouter.addListener { gid, slot ->
it[gid]?.favoriteSlot = slot
}
}
}
val favouriteStatusRouter by lazy { FavouriteStatusRouter() }
val readerPreferences by lazy { ReaderPreferences(AndroidPreferenceStore(appCtx)) }
val ehDatabase by lazy { roomDb<EhDatabase>("eh.db") { allowMainThreadQueries() } }
@@ -19,7 +19,7 @@ import android.annotation.SuppressLint
import com.hippo.ehviewer.client.data.GalleryInfo
import com.hippo.ehviewer.yorozuya.IntIdGenerator
class FavouriteStatusRouter {
object FavouriteStatusRouter {
private val idGenerator = IntIdGenerator(Settings.dataMapNextId)
@SuppressLint("UseSparseArrays")
@@ -30,8 +30,8 @@ import androidx.compose.material.icons.filled.MenuBook
import androidx.compose.material3.Text
import androidx.compose.ui.res.stringResource
import androidx.core.content.ContextCompat
import com.hippo.ehviewer.EhApplication.Companion.favouriteStatusRouter
import com.hippo.ehviewer.EhDB
import com.hippo.ehviewer.FavouriteStatusRouter
import com.hippo.ehviewer.GetText
import com.hippo.ehviewer.R
import com.hippo.ehviewer.Settings
@@ -212,7 +212,7 @@ suspend fun Context.addToFavorites(galleryInfo: GalleryInfo, select: Boolean = f
galleryInfo.favoriteName = newFavoriteName
galleryInfo.favoriteSlot = slot
withUIContext {
favouriteStatusRouter.modifyFavourites(galleryInfo.gid, slot)
FavouriteStatusRouter.modifyFavourites(galleryInfo.gid, slot)
}
}
if (!select && slot >= -1 && slot <= 9) {
@@ -246,7 +246,7 @@ suspend fun removeFromFavorites(galleryInfo: GalleryInfo) {
galleryInfo.favoriteName = null
galleryInfo.favoriteSlot = -2
withUIContext {
favouriteStatusRouter.modifyFavourites(galleryInfo.gid, -2)
FavouriteStatusRouter.modifyFavourites(galleryInfo.gid, -2)
}
}
@@ -18,7 +18,6 @@ package com.hippo.ehviewer.ui.legacy
import android.annotation.SuppressLint
import android.os.Bundle
import android.os.Parcelable
import com.hippo.ehviewer.EhApplication
import com.hippo.ehviewer.FavouriteStatusRouter
import com.hippo.ehviewer.client.data.GalleryInfo
import com.hippo.ehviewer.ui.legacy.ContentLayout.ContentHelper
@@ -43,11 +42,11 @@ abstract class GalleryInfoContentHelper : ContentHelper() {
info.favoriteSlot = slot
}
}
EhApplication.favouriteStatusRouter.addListener(listener)
FavouriteStatusRouter.addListener(listener)
}
fun destroy() {
EhApplication.favouriteStatusRouter.removeListener(listener)
FavouriteStatusRouter.removeListener(listener)
}
override fun onAddData(data: List<GalleryInfo>) {
@@ -66,8 +65,7 @@ abstract class GalleryInfoContentHelper : ContentHelper() {
val bundle = super.saveInstanceState(superState) as Bundle
// TODO It's a bad design
val router = EhApplication.favouriteStatusRouter
val id = router.saveDataMap(map)
val id = FavouriteStatusRouter.saveDataMap(map)
bundle.putInt(KEY_DATA_MAP, id)
return bundle
}
@@ -76,8 +74,7 @@ abstract class GalleryInfoContentHelper : ContentHelper() {
val bundle = state as Bundle
val id = bundle.getInt(KEY_DATA_MAP, IntIdGenerator.INVALID_ID)
if (id != IntIdGenerator.INVALID_ID) {
val router = EhApplication.favouriteStatusRouter
router.restoreDataMap(id)?.let { this.map = it }
FavouriteStatusRouter.restoreDataMap(id)?.let { this.map = it }
}
return super.restoreInstanceState(state)
}
@@ -52,7 +52,6 @@ import com.google.android.material.datepicker.DateValidatorPointBackward
import com.google.android.material.datepicker.DateValidatorPointForward
import com.google.android.material.datepicker.MaterialDatePicker
import com.google.android.material.floatingactionbutton.FloatingActionButton
import com.hippo.ehviewer.EhApplication.Companion.favouriteStatusRouter
import com.hippo.ehviewer.EhDB
import com.hippo.ehviewer.FavouriteStatusRouter
import com.hippo.ehviewer.R
@@ -187,8 +186,6 @@ class GalleryListScene : SearchBarScene(), OnDragHandlerListener, SearchLayout.H
override fun onUpdateLabels() {}
}
private val mFavouriteStatusRouter: FavouriteStatusRouter = favouriteStatusRouter
@SuppressLint("NotifyDataSetChanged")
private val mFavouriteStatusRouterListener: FavouriteStatusRouter.Listener =
FavouriteStatusRouter.Listener { _: Long, _: Int ->
@@ -225,7 +222,7 @@ class GalleryListScene : SearchBarScene(), OnDragHandlerListener, SearchLayout.H
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
mDownloadManager.addDownloadInfoListener(mDownloadInfoListener)
mFavouriteStatusRouter.addListener(mFavouriteStatusRouterListener)
FavouriteStatusRouter.addListener(mFavouriteStatusRouterListener)
if (savedInstanceState == null) {
onInit()
} else {
@@ -263,7 +260,7 @@ class GalleryListScene : SearchBarScene(), OnDragHandlerListener, SearchLayout.H
override fun onDestroy() {
super.onDestroy()
mDownloadManager.removeDownloadInfoListener(mDownloadInfoListener)
mFavouriteStatusRouter.removeListener(mFavouriteStatusRouterListener)
FavouriteStatusRouter.removeListener(mFavouriteStatusRouterListener)
}
private fun setSearchBarHint() {