diff --git a/app/src/main/java/io/legado/app/constant/PreferKey.kt b/app/src/main/java/io/legado/app/constant/PreferKey.kt
index deed02a2b..658734132 100644
--- a/app/src/main/java/io/legado/app/constant/PreferKey.kt
+++ b/app/src/main/java/io/legado/app/constant/PreferKey.kt
@@ -7,6 +7,7 @@ object PreferKey {
const val themeMode = "themeMode"
const val userAgent = "userAgent"
const val showUnread = "showUnread"
+ const val showUnreadNew = "showUnreadNew"
const val bookGroupStyle = "bookGroupStyle"
const val useDefaultCover = "useDefaultCover"
const val loadCoverOnlyWifi = "loadCoverOnlyWifi"
diff --git a/app/src/main/java/io/legado/app/help/config/AppConfig.kt b/app/src/main/java/io/legado/app/help/config/AppConfig.kt
index 3ba2cd90b..804590bea 100644
--- a/app/src/main/java/io/legado/app/help/config/AppConfig.kt
+++ b/app/src/main/java/io/legado/app/help/config/AppConfig.kt
@@ -157,6 +157,12 @@ object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener {
appCtx.putPrefBoolean(PreferKey.showUnread, value)
}
+ var showUnreadNew: Boolean
+ get() = appCtx.getPrefBoolean(PreferKey.showUnreadNew, true)
+ set(value) {
+ appCtx.putPrefBoolean(PreferKey.showUnreadNew, value)
+ }
+
var showLastUpdateTime: Boolean
get() = appCtx.getPrefBoolean(PreferKey.showLastUpdateTime, false)
set(value) {
diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/BookshelfConfigBottomSheet.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/BookshelfConfigBottomSheet.kt
index ef2463123..a04265ccc 100644
--- a/app/src/main/java/io/legado/app/ui/main/bookshelf/BookshelfConfigBottomSheet.kt
+++ b/app/src/main/java/io/legado/app/ui/main/bookshelf/BookshelfConfigBottomSheet.kt
@@ -64,6 +64,7 @@ class BookshelfConfigBottomSheet : BaseBottomSheetDialogFragment(R.layout.dialog
}
swShowUnread.isChecked = AppConfig.showUnread
+ swShowUnreadNew.isChecked = AppConfig.showUnreadNew
swShowLastUpdateTime.isChecked = AppConfig.showLastUpdateTime
swShowWaitUpBooks.isChecked = AppConfig.showWaitUpCount
swShowBookshelfFastScroller.isChecked = AppConfig.showBookshelfFastScroller
@@ -119,6 +120,10 @@ class BookshelfConfigBottomSheet : BaseBottomSheetDialogFragment(R.layout.dialog
AppConfig.showUnread = swShowUnread.isChecked
postEvent(EventBus.BOOKSHELF_REFRESH, "")
}
+ if (AppConfig.showUnreadNew != swShowUnreadNew.isChecked) {
+ AppConfig.showUnreadNew = swShowUnreadNew.isChecked
+ postEvent(EventBus.BOOKSHELF_REFRESH, "")
+ }
if (AppConfig.showLastUpdateTime != swShowLastUpdateTime.isChecked) {
AppConfig.showLastUpdateTime = swShowLastUpdateTime.isChecked
postEvent(EventBus.BOOKSHELF_REFRESH, "")
diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleDefalut/BooksAdapterGrid.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleDefalut/BooksAdapterGrid.kt
index b97995078..18bcb0b07 100644
--- a/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleDefalut/BooksAdapterGrid.kt
+++ b/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleDefalut/BooksAdapterGrid.kt
@@ -3,6 +3,7 @@ package io.legado.app.ui.main.bookshelf.books.styleDefalut
import android.content.Context
import android.os.Bundle
import android.view.ViewGroup
+import androidx.core.view.isVisible
import io.legado.app.base.adapter.ItemViewHolder
import io.legado.app.data.entities.Book
import io.legado.app.databinding.ItemBookshelfGridBinding
@@ -53,8 +54,11 @@ class BooksAdapterGrid(context: Context, private val callBack: CallBack) :
if (unreadCount > 0) {
binding.cdUnread.visible()
binding.tvUnread.text = unreadCount.toString()
+ if (AppConfig.showUnreadNew)
+ binding.newChapter.isVisible = item.lastCheckCount > 0
} else {
binding.cdUnread.gone()
+ binding.newChapter.gone()
}
} else {
binding.cdUnread.gone()
diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleDefalut/BooksAdapterGridCompact.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleDefalut/BooksAdapterGridCompact.kt
index fdaa08ea9..682ce2f5f 100644
--- a/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleDefalut/BooksAdapterGridCompact.kt
+++ b/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleDefalut/BooksAdapterGridCompact.kt
@@ -4,6 +4,7 @@ import android.content.Context
import android.os.Bundle
import android.view.View
import android.view.ViewGroup
+import androidx.core.view.isVisible
import io.legado.app.base.adapter.ItemViewHolder
import io.legado.app.data.entities.Book
import io.legado.app.databinding.ItemBookshelfGridCompactBinding
@@ -59,6 +60,8 @@ class BooksAdapterGridCompact(context: Context, private val callBack: CallBack)
if (unreadCount > 0) {
binding.cdUnread.visibility = View.VISIBLE
binding.tvUnread.text = unreadCount.toString()
+ if (AppConfig.showUnreadNew)
+ binding.newChapter.isVisible = item.lastCheckCount > 0
} else {
binding.cdUnread.visibility = View.GONE
}
diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleDefalut/BooksAdapterGridCover.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleDefalut/BooksAdapterGridCover.kt
index fc520ddbf..ffb2400ca 100644
--- a/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleDefalut/BooksAdapterGridCover.kt
+++ b/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleDefalut/BooksAdapterGridCover.kt
@@ -4,6 +4,7 @@ import android.content.Context
import android.os.Bundle
import android.view.View
import android.view.ViewGroup
+import androidx.core.view.isVisible
import io.legado.app.base.adapter.ItemViewHolder
import io.legado.app.data.entities.Book
import io.legado.app.databinding.ItemBookshelfGridCompactBinding
@@ -60,6 +61,8 @@ class BooksAdapterGridCover(context: Context, private val callBack: CallBack) :
if (unreadCount > 0) {
binding.cdUnread.visibility = View.VISIBLE
binding.tvUnread.text = unreadCount.toString()
+ if (AppConfig.showUnreadNew)
+ binding.newChapter.isVisible = item.lastCheckCount > 0
} else {
binding.cdUnread.visibility = View.GONE
}
diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleDefalut/BooksAdapterList.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleDefalut/BooksAdapterList.kt
index 72f3dfc98..99d6961a4 100644
--- a/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleDefalut/BooksAdapterList.kt
+++ b/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleDefalut/BooksAdapterList.kt
@@ -79,6 +79,8 @@ class BooksAdapterList(
if (unreadCount > 0) {
binding.cdUnread.visible()
binding.tvUnread.text = unreadCount.toString()
+ if (AppConfig.showUnreadNew)
+ binding.newChapter.isVisible = item.lastCheckCount > 0
} else {
binding.cdUnread.gone()
}
diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleDefalut/BooksAdapterListCompact.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleDefalut/BooksAdapterListCompact.kt
index 0b6413acb..92fbcd8ba 100644
--- a/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleDefalut/BooksAdapterListCompact.kt
+++ b/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleDefalut/BooksAdapterListCompact.kt
@@ -83,6 +83,8 @@ class BooksAdapterListCompact(
if (unreadCount > 0) {
binding.cdUnread.visible()
binding.tvUnread.text = unreadCount.toString()
+ if (AppConfig.showUnreadNew)
+ binding.newChapter.isVisible = item.lastCheckCount > 0
} else {
binding.cdUnread.gone()
}
diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleFold/BooksAdapterGrid.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleFold/BooksAdapterGrid.kt
index b820a34d8..933706618 100644
--- a/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleFold/BooksAdapterGrid.kt
+++ b/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleFold/BooksAdapterGrid.kt
@@ -5,6 +5,7 @@ import android.os.Bundle
import android.view.View
import android.view.ViewGroup
import androidx.core.content.ContextCompat
+import androidx.core.view.isVisible
import androidx.recyclerview.widget.RecyclerView
import io.legado.app.R
import io.legado.app.data.entities.Book
@@ -110,6 +111,8 @@ class BooksAdapterGrid(context: Context, callBack: CallBack) :
if (unreadCount > 0) {
binding.cdUnread.visibility = View.VISIBLE
binding.tvUnread.text = unreadCount.toString()
+ if (AppConfig.showUnreadNew)
+ binding.newChapter.isVisible = item.lastCheckCount > 0
} else {
binding.cdUnread.visibility = View.GONE
}
diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleFold/BooksAdapterGridCompact.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleFold/BooksAdapterGridCompact.kt
index dbe9c8fe5..2b312f84d 100644
--- a/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleFold/BooksAdapterGridCompact.kt
+++ b/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleFold/BooksAdapterGridCompact.kt
@@ -5,6 +5,7 @@ import android.os.Bundle
import android.view.View
import android.view.ViewGroup
import androidx.core.content.ContextCompat
+import androidx.core.view.isVisible
import androidx.recyclerview.widget.RecyclerView
import io.legado.app.R
import io.legado.app.data.entities.Book
@@ -117,6 +118,8 @@ class BooksAdapterGridCompact(context: Context, callBack: CallBack) :
if (unreadCount > 0) {
binding.cdUnread.visibility = View.VISIBLE
binding.tvUnread.text = unreadCount.toString()
+ if (AppConfig.showUnreadNew)
+ binding.newChapter.isVisible = item.lastCheckCount > 0
} else {
binding.cdUnread.visibility = View.GONE
}
diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleFold/BooksAdapterGridCover.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleFold/BooksAdapterGridCover.kt
index 4537c0576..06ba98d1f 100644
--- a/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleFold/BooksAdapterGridCover.kt
+++ b/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleFold/BooksAdapterGridCover.kt
@@ -5,6 +5,7 @@ import android.os.Bundle
import android.view.View
import android.view.ViewGroup
import androidx.core.content.ContextCompat
+import androidx.core.view.isVisible
import androidx.recyclerview.widget.RecyclerView
import io.legado.app.R
import io.legado.app.data.entities.Book
@@ -117,6 +118,8 @@ class BooksAdapterGridCover(context: Context, callBack: CallBack) :
if (unreadCount > 0) {
binding.cdUnread.visibility = View.VISIBLE
binding.tvUnread.text = unreadCount.toString()
+ if (AppConfig.showUnreadNew)
+ binding.newChapter.isVisible = item.lastCheckCount > 0
} else {
binding.cdUnread.visibility = View.GONE
}
diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleFold/BooksAdapterList.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleFold/BooksAdapterList.kt
index 58d988b88..e960f35b3 100644
--- a/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleFold/BooksAdapterList.kt
+++ b/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleFold/BooksAdapterList.kt
@@ -4,6 +4,7 @@ import android.content.Context
import android.os.Bundle
import android.view.ViewGroup
import androidx.core.content.ContextCompat
+import androidx.core.view.isVisible
import androidx.recyclerview.widget.RecyclerView
import io.legado.app.R
import io.legado.app.data.entities.Book
@@ -131,6 +132,8 @@ class BooksAdapterList(context: Context, callBack: CallBack) :
if (unreadCount > 0) {
binding.cdUnread.visible()
binding.tvUnread.text = unreadCount.toString()
+ if (AppConfig.showUnreadNew)
+ binding.newChapter.isVisible = item.lastCheckCount > 0
} else {
binding.cdUnread.gone()
}
diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleFold/BooksAdapterListCompact.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleFold/BooksAdapterListCompact.kt
index 998e254dd..2f9b179e0 100644
--- a/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleFold/BooksAdapterListCompact.kt
+++ b/app/src/main/java/io/legado/app/ui/main/bookshelf/books/styleFold/BooksAdapterListCompact.kt
@@ -4,6 +4,7 @@ import android.content.Context
import android.os.Bundle
import android.view.ViewGroup
import androidx.core.content.ContextCompat
+import androidx.core.view.isVisible
import androidx.recyclerview.widget.RecyclerView
import io.legado.app.R
import io.legado.app.data.entities.Book
@@ -129,6 +130,8 @@ class BooksAdapterListCompact(context: Context, callBack: CallBack) :
if (unreadCount > 0) {
binding.cdUnread.visible()
binding.tvUnread.text = unreadCount.toString()
+ if (AppConfig.showUnreadNew)
+ binding.newChapter.isVisible = item.lastCheckCount > 0
} else {
binding.cdUnread.gone()
}
diff --git a/app/src/main/res/layout/dialog_bookshelf_config.xml b/app/src/main/res/layout/dialog_bookshelf_config.xml
index 60b7a6d1a..359098fa9 100644
--- a/app/src/main/res/layout/dialog_bookshelf_config.xml
+++ b/app/src/main/res/layout/dialog_bookshelf_config.xml
@@ -48,6 +48,12 @@
android:layout_height="wrap_content"
android:text="@string/show_unread" />
+
+
-
+ android:gravity="center_vertical"
+ android:orientation="horizontal">
+
+
+
+
+
diff --git a/app/src/main/res/layout/item_bookshelf_grid_compact.xml b/app/src/main/res/layout/item_bookshelf_grid_compact.xml
index 21507e1ab..96effd88d 100644
--- a/app/src/main/res/layout/item_bookshelf_grid_compact.xml
+++ b/app/src/main/res/layout/item_bookshelf_grid_compact.xml
@@ -48,24 +48,40 @@
android:id="@+id/cd_unread"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_gravity="top|end"
android:layout_margin="4dp"
android:visibility="visible"
- app:cardBackgroundColor="?attr/colorSecondaryVariant"
app:cardCornerRadius="4dp"
- app:strokeWidth="0dp">
+ app:strokeWidth="0dp"
+ app:cardBackgroundColor="?attr/colorSecondaryVariant"
+ android:layout_gravity="end|top">
-
+ android:gravity="center_vertical"
+ android:orientation="horizontal">
+
+
+
+
+
+
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintTop_toTopOf="parent">
-
+ android:gravity="center_vertical"
+ android:orientation="horizontal">
+
+
+
+
+
diff --git a/app/src/main/res/layout/item_bookshelf_list_compact.xml b/app/src/main/res/layout/item_bookshelf_list_compact.xml
index a874d654e..a03cc0ec0 100644
--- a/app/src/main/res/layout/item_bookshelf_list_compact.xml
+++ b/app/src/main/res/layout/item_bookshelf_list_compact.xml
@@ -64,20 +64,35 @@
app:cardCornerRadius="4dp"
app:strokeWidth="0dp"
app:cardBackgroundColor="?attr/colorSecondaryVariant"
- app:layout_constraintTop_toTopOf="@id/iv_cover"
- app:layout_constraintEnd_toEndOf="@id/iv_cover">
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintTop_toTopOf="parent">
-
+ android:gravity="center_vertical"
+ android:orientation="horizontal">
+
+
+
+
+
diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml
index 11498c1d3..e03c48aca 100644
--- a/app/src/main/res/values-zh/strings.xml
+++ b/app/src/main/res/values-zh/strings.xml
@@ -1347,4 +1347,5 @@
计数替换净化
渐变
显示更多分组按钮
+ 显示新章节更新标志
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index f3b6c0659..cdf8b9a65 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1350,4 +1350,5 @@
计数替换净化
渐变
显示更多分组按钮
+ 显示新章节更新标志