mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-11-03 23:58:55 +01:00 
			
		
		
		
	Implement feature to hide "Local" badge from library manga (#5202)
This commit is contained in:
		@@ -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"
 | 
			
		||||
 
 | 
			
		||||
@@ -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)
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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()) {
 | 
			
		||||
 
 | 
			
		||||
@@ -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 {
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -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)
 | 
			
		||||
            }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user