This commit is contained in:
Horis
2025-04-07 23:01:15 +08:00
parent 7f3dbb88fc
commit 1a2577d278
3 changed files with 32 additions and 12 deletions
@@ -1,6 +1,7 @@
package io.legado.app.help.glide package io.legado.app.help.glide
import android.content.Context import android.content.Context
import android.util.Log
import com.bumptech.glide.Glide import com.bumptech.glide.Glide
import com.bumptech.glide.GlideBuilder import com.bumptech.glide.GlideBuilder
import com.bumptech.glide.Registry import com.bumptech.glide.Registry
@@ -9,6 +10,8 @@ import com.bumptech.glide.load.engine.cache.InternalCacheDiskCacheFactory
import com.bumptech.glide.load.engine.cache.MemorySizeCalculator import com.bumptech.glide.load.engine.cache.MemorySizeCalculator
import com.bumptech.glide.load.model.GlideUrl import com.bumptech.glide.load.model.GlideUrl
import com.bumptech.glide.module.AppGlideModule import com.bumptech.glide.module.AppGlideModule
import io.legado.app.BuildConfig
import io.legado.app.help.config.AppConfig
import java.io.InputStream import java.io.InputStream
@@ -36,5 +39,8 @@ class LegadoGlideModule : AppGlideModule() {
builder.setMemorySizeCalculator(calculator) builder.setMemorySizeCalculator(calculator)
builder.setBitmapPool(bitmapPool) builder.setBitmapPool(bitmapPool)
builder.setDiskCache(InternalCacheDiskCacheFactory(context, 1024 * 1024 * 1000)) builder.setDiskCache(InternalCacheDiskCacheFactory(context, 1024 * 1024 * 1000))
if (!BuildConfig.DEBUG && !AppConfig.recordLog) {
builder.setLogLevel(Log.ERROR)
}
} }
} }
@@ -27,7 +27,12 @@ import io.legado.app.ui.book.manga.ReadMangaActivity
import io.legado.app.ui.book.read.ReadBookActivity import io.legado.app.ui.book.read.ReadBookActivity
import io.legado.app.ui.book.search.SearchActivity import io.legado.app.ui.book.search.SearchActivity
import io.legado.app.ui.main.bookshelf.BaseBookshelfFragment import io.legado.app.ui.main.bookshelf.BaseBookshelfFragment
import io.legado.app.utils.* import io.legado.app.utils.cnCompare
import io.legado.app.utils.observeEvent
import io.legado.app.utils.setEdgeEffectColor
import io.legado.app.utils.showDialogFragment
import io.legado.app.utils.startActivity
import io.legado.app.utils.startReadOrMangaActivity
import io.legado.app.utils.viewbindingdelegate.viewBinding import io.legado.app.utils.viewbindingdelegate.viewBinding
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job import kotlinx.coroutines.Job
@@ -134,7 +139,7 @@ class BookshelfFragment2() : BaseBookshelfFragment(R.layout.fragment_bookshelf2)
} }
} }
booksFlowJob?.cancel() booksFlowJob?.cancel()
booksFlowJob = lifecycleScope.launch { booksFlowJob = viewLifecycleOwner.lifecycleScope.launch {
appDb.bookDao.flowByGroup(groupId).map { list -> appDb.bookDao.flowByGroup(groupId).map { list ->
//排序 //排序
when (AppConfig.getBookSortByGroupId(groupId)) { when (AppConfig.getBookSortByGroupId(groupId)) {
@@ -161,12 +166,10 @@ class BookshelfFragment2() : BaseBookshelfFragment(R.layout.fragment_bookshelf2)
}.flowOn(Dispatchers.Default).catch { }.flowOn(Dispatchers.Default).catch {
AppLog.put("书架更新出错", it) AppLog.put("书架更新出错", it)
}.conflate().collect { list -> }.conflate().collect { list ->
if (isAdded) { books = list
books = list booksAdapter.notifyDataSetChanged()
booksAdapter.notifyDataSetChanged() binding.tvEmptyMsg.isGone = getItemCount() > 0
binding.tvEmptyMsg.isGone = getItemCount() > 0 delay(100)
delay(100)
}
} }
} }
} }
@@ -204,10 +207,12 @@ class BookshelfFragment2() : BaseBookshelfFragment(R.layout.fragment_bookshelf2)
startActivity<AudioPlayActivity> { startActivity<AudioPlayActivity> {
putExtra("bookUrl", item.bookUrl) putExtra("bookUrl", item.bookUrl)
} }
else -> startReadOrMangaActivity<ReadBookActivity,ReadMangaActivity>(item) {
else -> startReadOrMangaActivity<ReadBookActivity, ReadMangaActivity>(item) {
putExtra("bookUrl", item.bookUrl) putExtra("bookUrl", item.bookUrl)
} }
} }
is BookGroup -> { is BookGroup -> {
groupId = item.groupId groupId = item.groupId
initBooksData() initBooksData()
@@ -221,6 +226,7 @@ class BookshelfFragment2() : BaseBookshelfFragment(R.layout.fragment_bookshelf2)
putExtra("name", item.name) putExtra("name", item.name)
putExtra("author", item.author) putExtra("author", item.author)
} }
is BookGroup -> showDialogFragment(GroupEditDialog(item)) is BookGroup -> showDialogFragment(GroupEditDialog(item))
} }
} }
@@ -5,9 +5,10 @@
android:id="@+id/cv_content" android:id="@+id/cv_content"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/bg_item_focused_on_tv"
android:clickable="true" android:clickable="true"
android:focusable="true" android:focusable="true"
android:background="@drawable/bg_item_focused_on_tv" android:scrollbars="none"
tools:ignore="UnusedAttribute"> tools:ignore="UnusedAttribute">
@@ -15,14 +16,16 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
android:paddingTop="8dp"
android:paddingLeft="8dp" android:paddingLeft="8dp"
android:paddingTop="8dp"
android:paddingRight="8dp" android:paddingRight="8dp"
android:scrollbars="none"
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintTop_toTopOf="parent">
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content"
android:scrollbars="none">
<io.legado.app.ui.widget.image.CoverImageView <io.legado.app.ui.widget.image.CoverImageView
android:id="@+id/iv_cover" android:id="@+id/iv_cover"
@@ -30,6 +33,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_margin="8dp" android:layout_margin="8dp"
android:scaleType="centerCrop" android:scaleType="centerCrop"
android:scrollbars="none"
android:src="@drawable/image_cover_default" android:src="@drawable/image_cover_default"
android:transitionName="img_cover" android:transitionName="img_cover"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
@@ -42,6 +46,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="right" android:layout_gravity="right"
android:includeFontPadding="false" android:includeFontPadding="false"
android:scrollbars="none"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
tools:ignore="RtlHardcoded" /> tools:ignore="RtlHardcoded" />
@@ -51,6 +56,7 @@
android:layout_width="22dp" android:layout_width="22dp"
android:layout_height="22dp" android:layout_height="22dp"
android:layout_gravity="right" android:layout_gravity="right"
android:scrollbars="none"
android:visibility="invisible" android:visibility="invisible"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
@@ -68,6 +74,7 @@
android:gravity="top|center_horizontal" android:gravity="top|center_horizontal"
android:includeFontPadding="false" android:includeFontPadding="false"
android:lines="2" android:lines="2"
android:scrollbars="none"
android:text="@string/book_name" android:text="@string/book_name"
android:textColor="@color/primaryText" android:textColor="@color/primaryText"
android:textSize="12sp" android:textSize="12sp"
@@ -80,6 +87,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
android:background="?android:attr/selectableItemBackground" android:background="?android:attr/selectableItemBackground"
android:scrollbars="none"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.0" app:layout_constraintVertical_bias="0.0"