diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceKeys.kt b/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceKeys.kt
index bdbc57e48a..f8b419bb6c 100644
--- a/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceKeys.kt
+++ b/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferenceKeys.kt
@@ -193,6 +193,8 @@ object PreferenceKeys {
const val unreadBadge = "display_unread_badge"
+ const val localBadge = "display_local_badge"
+
const val categoryTabs = "display_category_tabs"
const val categoryNumberOfItems = "display_number_of_items"
diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt b/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt
index 63a0bd5064..479597cec9 100644
--- a/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt
+++ b/app/src/main/java/eu/kanade/tachiyomi/data/preference/PreferencesHelper.kt
@@ -238,6 +238,8 @@ class PreferencesHelper(val context: Context) {
fun downloadBadge() = flowPrefs.getBoolean(Keys.downloadBadge, false)
+ fun localBadge() = flowPrefs.getBoolean(Keys.localBadge, true)
+
fun downloadedOnly() = flowPrefs.getBoolean(Keys.downloadedOnly, false)
fun unreadBadge() = flowPrefs.getBoolean(Keys.unreadBadge, true)
diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryComfortableGridHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryComfortableGridHolder.kt
index bb7684554e..c994ea99f0 100644
--- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryComfortableGridHolder.kt
+++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryComfortableGridHolder.kt
@@ -50,7 +50,7 @@ class LibraryComfortableGridHolder(
text = item.downloadCount.toString()
}
// set local visibility if its local manga
- binding.localText.isVisible = item.manga.isLocal()
+ binding.localText.isVisible = item.isLocal
// For rounded corners
binding.card.clipToOutline = true
diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryCompactGridHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryCompactGridHolder.kt
index bcf0c254ee..c9d2fcb53a 100644
--- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryCompactGridHolder.kt
+++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryCompactGridHolder.kt
@@ -48,7 +48,7 @@ open class LibraryCompactGridHolder(
text = item.downloadCount.toString()
}
// set local visibility if its local manga
- binding.localText.isVisible = item.manga.isLocal()
+ binding.localText.isVisible = item.isLocal
// For rounded corners
binding.card.clipToOutline = true
diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryItem.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryItem.kt
index 78f7ce4851..daa6834005 100644
--- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryItem.kt
+++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryItem.kt
@@ -28,6 +28,7 @@ class LibraryItem(val manga: LibraryManga, private val libraryDisplayMode: Prefe
var downloadCount = -1
var unreadCount = -1
+ var isLocal = false
override fun getLayoutRes(): Int {
return when (libraryDisplayMode.get()) {
diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryListHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryListHolder.kt
index 3e67016acd..d80a4d8af7 100644
--- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryListHolder.kt
+++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryListHolder.kt
@@ -50,7 +50,7 @@ class LibraryListHolder(
text = "${item.downloadCount}"
}
// show local text badge if local manga
- binding.localText.isVisible = item.manga.isLocal()
+ binding.localText.isVisible = item.isLocal
// Create thumbnail onclick to simulate long click
binding.thumbnail.setOnClickListener {
diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt
index d7d2804459..a528ffba9b 100644
--- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt
+++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt
@@ -195,6 +195,7 @@ class LibraryPresenter(
private fun setBadges(map: LibraryMap) {
val showDownloadBadges = preferences.downloadBadge().get()
val showUnreadBadges = preferences.unreadBadge().get()
+ val showLocalBadges = preferences.localBadge().get()
for ((_, itemList) in map) {
for (item in itemList) {
@@ -211,6 +212,13 @@ class LibraryPresenter(
// Unset unread count if not enabled
-1
}
+
+ item.isLocal = if (showLocalBadges) {
+ item.manga.isLocal()
+ } else {
+ // Hide / Unset local badge if not enabled
+ false
+ }
}
}
}
diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibrarySettingsSheet.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibrarySettingsSheet.kt
index 44ec85ae22..7f268532e2 100644
--- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibrarySettingsSheet.kt
+++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibrarySettingsSheet.kt
@@ -276,14 +276,16 @@ class LibrarySettingsSheet(
inner class BadgeGroup : Group {
private val downloadBadge = Item.CheckboxGroup(R.string.action_display_download_badge, this)
private val unreadBadge = Item.CheckboxGroup(R.string.action_display_unread_badge, this)
+ private val localBadge = Item.CheckboxGroup(R.string.action_display_local_badge, this)
override val header = Item.Header(R.string.badges_header)
- override val items = listOf(downloadBadge, unreadBadge)
+ override val items = listOf(downloadBadge, unreadBadge, localBadge)
override val footer = null
override fun initModels() {
downloadBadge.checked = preferences.downloadBadge().get()
unreadBadge.checked = preferences.unreadBadge().get()
+ localBadge.checked = preferences.localBadge().get()
}
override fun onItemClicked(item: Item) {
@@ -292,6 +294,7 @@ class LibrarySettingsSheet(
when (item) {
downloadBadge -> preferences.downloadBadge().set((item.checked))
unreadBadge -> preferences.unreadBadge().set((item.checked))
+ localBadge -> preferences.localBadge().set((item.checked))
}
adapter.notifyItemChanged(item)
}
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index b5c94985dc..70a65fc310 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -95,6 +95,7 @@
Comfortable grid
Download badges
Unread badges
+ Local badges
Show category tabs
Show number of items
Disable