From fb3ce226b5303dfd4081a91a8465e54659159044 Mon Sep 17 00:00:00 2001 From: jobobby04 Date: Mon, 13 Apr 2020 17:38:32 -0400 Subject: [PATCH] Made rounded library covers configurable --- .../ui/browse/source/browse/SourceGridHolder.kt | 14 ++++++++++++++ .../tachiyomi/ui/library/LibraryGridHolder.kt | 14 +++++++++++++- .../ui/setting/SettingsLibraryController.kt | 11 +++++++++++ app/src/main/res/values/strings.xml | 14 ++++++++++++++ 4 files changed, 52 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/SourceGridHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/SourceGridHolder.kt index abe6d2a79..0dffb8457 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/SourceGridHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/SourceGridHolder.kt @@ -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) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryGridHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryGridHolder.kt index 72ca60e36..a7cc60847 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryGridHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryGridHolder.kt @@ -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> ) : 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) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsLibraryController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsLibraryController.kt index abfa286d8..48abcdfb8 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsLibraryController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsLibraryController.kt @@ -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() diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8ee64284d..928214ab7 100755 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -657,5 +657,19 @@ Autoscroll Retry all Boost page + No Rounded Corners + Radius of 1 + Radius of 2 + Radius of 3 + Radius of 4 + Radius of 5 + Radius of 6 + Radius of 7 + Radius of 8 + Radius of 9 + Radius of 10 + The level of radius that the corners are rounded to. Current value is: %s + +