Singletonize FavouriteStatusRouter
This commit is contained in:
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() {
|
||||
|
||||
Reference in new issue
Block a user