Made rounded library covers configurable

This commit is contained in:
jobobby04 2020-04-13 17:38:32 -04:00 committed by Jobobby04
parent de5f43713f
commit fb3ce226b5
4 changed files with 52 additions and 1 deletions

View File

@ -1,15 +1,21 @@
package eu.kanade.tachiyomi.ui.browse.source.browse
import android.util.TypedValue
import android.view.View
import com.bumptech.glide.load.engine.DiskCacheStrategy
import eu.davidea.flexibleadapter.FlexibleAdapter
import eu.kanade.tachiyomi.data.database.models.Manga
import eu.kanade.tachiyomi.data.glide.GlideApp
import eu.kanade.tachiyomi.data.glide.toMangaThumbnail
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import eu.kanade.tachiyomi.data.preference.getOrDefault
import eu.kanade.tachiyomi.widget.StateImageViewTarget
import kotlinx.android.synthetic.main.source_grid_item.card
import kotlinx.android.synthetic.main.source_grid_item.progress
import kotlinx.android.synthetic.main.source_grid_item.thumbnail
import kotlinx.android.synthetic.main.source_grid_item.title
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
/**
* Class used to hold the displayed data of a manga in the catalogue, like the cover or the title.
@ -22,6 +28,8 @@ import kotlinx.android.synthetic.main.source_grid_item.title
class SourceGridHolder(private val view: View, private val adapter: FlexibleAdapter<*>) :
SourceHolder(view, adapter) {
private val preferences: PreferencesHelper = Injekt.get()
/**
* Method called from [CatalogueAdapter.onBindViewHolder]. It updates the data for this
* holder with the given manga.
@ -39,6 +47,12 @@ class SourceGridHolder(private val view: View, private val adapter: FlexibleAdap
// Set manga title
title.text = manga.title
card.radius = TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP,
preferences.eh_library_corner_radius().getOrDefault().toFloat(),
view.context.resources.displayMetrics
)
GlideApp.with(view.context).clear(thumbnail)
if (!manga.thumbnail_url.isNullOrEmpty()) {
GlideApp.with(view.context)

View File

@ -1,5 +1,6 @@
package eu.kanade.tachiyomi.ui.library
import android.util.TypedValue
import android.view.View
import com.bumptech.glide.load.engine.DiskCacheStrategy
import eu.davidea.flexibleadapter.FlexibleAdapter
@ -7,13 +8,18 @@ import androidx.recyclerview.widget.RecyclerView
import eu.davidea.flexibleadapter.items.IFlexible
import eu.kanade.tachiyomi.data.glide.GlideApp
import eu.kanade.tachiyomi.data.glide.toMangaThumbnail
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import eu.kanade.tachiyomi.data.preference.getOrDefault
import eu.kanade.tachiyomi.source.LocalSource
import eu.kanade.tachiyomi.util.view.visibleIf
import kotlinx.android.synthetic.main.source_grid_item.card
import kotlinx.android.synthetic.main.source_grid_item.download_text
import kotlinx.android.synthetic.main.source_grid_item.local_text
import kotlinx.android.synthetic.main.source_grid_item.thumbnail
import kotlinx.android.synthetic.main.source_grid_item.title
import kotlinx.android.synthetic.main.source_grid_item.unread_text
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
/**
* Class used to hold the displayed data of a manga in the library, like the cover or the title.
@ -28,7 +34,7 @@ class LibraryGridHolder(
private val view: View,
adapter: FlexibleAdapter<IFlexible<RecyclerView.ViewHolder>>
) : LibraryHolder(view, adapter) {
private val preferences: PreferencesHelper = Injekt.get()
/**
* Method called from [LibraryCategoryAdapter.onBindViewHolder]. It updates the data for this
* holder with the given manga.
@ -52,6 +58,12 @@ class LibraryGridHolder(
// set local visibility if its local manga
local_text.visibleIf { item.manga.source == LocalSource.ID }
card.radius = TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP,
preferences.eh_library_corner_radius().getOrDefault().toFloat(),
view.context.resources.displayMetrics
)
// Update the cover.
GlideApp.with(view.context).clear(thumbnail)
GlideApp.with(view.context)

View File

@ -72,6 +72,17 @@ class SettingsLibraryController : SettingsController() {
"${context.getString(R.string.landscape)}: $landscape"
}
}
intListPreference {
key = Keys.eh_library_rounded_corners
title = "Rounded Corner Radius"
entriesRes = arrayOf(R.string.eh_rounded_corner_0, R.string.eh_rounded_corner_1,
R.string.eh_rounded_corner_2, R.string.eh_rounded_corner_3, R.string.eh_rounded_corner_4,
R.string.eh_rounded_corner_5, R.string.eh_rounded_corner_6, R.string.eh_rounded_corner_7,
R.string.eh_rounded_corner_8, R.string.eh_rounded_corner_9, R.string.eh_rounded_corner_10)
entryValues = arrayOf("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10")
defaultValue = "4"
summaryRes = R.string.eh_rounded_corners_desc
}
}
val dbCategories = db.getCategories().executeAsBlocking()

View File

@ -657,5 +657,19 @@
<string name="eh_autoscroll">Autoscroll</string>
<string name="eh_retry_all">Retry all</string>
<string name="eh_boost_page">Boost page</string>
<string name="eh_rounded_corner_0">No Rounded Corners</string>
<string name="eh_rounded_corner_1">Radius of 1</string>
<string name="eh_rounded_corner_2">Radius of 2</string>
<string name="eh_rounded_corner_3">Radius of 3</string>
<string name="eh_rounded_corner_4">Radius of 4</string>
<string name="eh_rounded_corner_5">Radius of 5</string>
<string name="eh_rounded_corner_6">Radius of 6</string>
<string name="eh_rounded_corner_7">Radius of 7</string>
<string name="eh_rounded_corner_8">Radius of 8</string>
<string name="eh_rounded_corner_9">Radius of 9</string>
<string name="eh_rounded_corner_10">Radius of 10</string>
<string name="eh_rounded_corners_desc">The level of radius that the corners are rounded to. Current value is: %s</string>
</resources>