diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChaptersAdapter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChaptersAdapter.kt index dd0fa66d8..9e696fc4f 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChaptersAdapter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChaptersAdapter.kt @@ -1,7 +1,6 @@ package eu.kanade.tachiyomi.ui.manga.chapter import android.content.Context -import androidx.core.content.ContextCompat import eu.davidea.flexibleadapter.FlexibleAdapter import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.data.preference.PreferencesHelper @@ -21,7 +20,7 @@ class ChaptersAdapter( var items: List<ChapterItem> = emptyList() - val readColor = ContextCompat.getColor(context, R.color.material_on_surface_disabled) + val readColor = context.getResourceColor(R.attr.colorOnSurface, 0.38f) val unreadColor = context.getResourceColor(R.attr.colorOnSurface) val bookmarkedColor = context.getResourceColor(R.attr.colorAccent) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/recent/updates/UpdatesHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/recent/updates/UpdatesHolder.kt index 6452278c7..08a4015f1 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/recent/updates/UpdatesHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/recent/updates/UpdatesHolder.kt @@ -1,7 +1,6 @@ package eu.kanade.tachiyomi.ui.recent.updates import android.view.View -import androidx.core.content.ContextCompat import com.bumptech.glide.load.engine.DiskCacheStrategy import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.data.download.model.Download @@ -27,7 +26,7 @@ import kotlinx.android.synthetic.main.updates_item.manga_title class UpdatesHolder(private val view: View, private val adapter: UpdatesAdapter) : BaseFlexibleViewHolder(view, adapter) { - private var readColor = ContextCompat.getColor(view.context, R.color.material_on_surface_disabled) + private var readColor = view.context.getResourceColor(R.attr.colorOnSurface, 0.38f) private var unreadColor = view.context.getResourceColor(R.attr.colorOnSurface) /** diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/source/browse/SourceListHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/source/browse/SourceListHolder.kt index 7d803316c..23ff9c664 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/source/browse/SourceListHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/source/browse/SourceListHolder.kt @@ -1,7 +1,6 @@ package eu.kanade.tachiyomi.ui.source.browse import android.view.View -import androidx.core.content.ContextCompat import com.bumptech.glide.load.engine.DiskCacheStrategy import eu.davidea.flexibleadapter.FlexibleAdapter import eu.kanade.tachiyomi.R @@ -23,7 +22,7 @@ import kotlinx.android.synthetic.main.source_list_item.title class SourceListHolder(private val view: View, adapter: FlexibleAdapter<*>) : SourceHolder(view, adapter) { - private val favoriteColor = ContextCompat.getColor(view.context, R.color.material_on_surface_disabled) + private val favoriteColor = view.context.getResourceColor(R.attr.colorOnSurface, 0.38f) private val unfavoriteColor = view.context.getResourceColor(R.attr.colorOnSurface) /** diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/source/filter/TriStateItem.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/source/filter/TriStateItem.kt index 1237b0329..529fa935e 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/source/filter/TriStateItem.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/source/filter/TriStateItem.kt @@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.ui.source.filter import android.view.View import android.widget.CheckedTextView -import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView import androidx.vectordrawable.graphics.drawable.VectorDrawableCompat import com.google.android.material.R @@ -46,7 +45,7 @@ open class TriStateItem(val filter: Filter.TriState) : AbstractFlexibleItem<TriS val color = if (filter.state == Filter.TriState.STATE_INCLUDE) { view.context.getResourceColor(R.attr.colorAccent) } else { - ContextCompat.getColor(view.context, R.color.material_on_background_disabled) + view.context.getResourceColor(R.attr.colorOnBackground, 0.38f) } setTint(color) diff --git a/app/src/main/java/eu/kanade/tachiyomi/util/system/ContextExtensions.kt b/app/src/main/java/eu/kanade/tachiyomi/util/system/ContextExtensions.kt index a89dae8cf..8b1be0871 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/util/system/ContextExtensions.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/util/system/ContextExtensions.kt @@ -9,11 +9,13 @@ import android.content.Intent import android.content.IntentFilter import android.content.pm.PackageManager import android.content.res.Resources +import android.graphics.Color import android.net.ConnectivityManager import android.net.Uri import android.os.PowerManager import android.widget.Toast import androidx.annotation.AttrRes +import androidx.annotation.ColorInt import androidx.annotation.StringRes import androidx.browser.customtabs.CustomTabsIntent import androidx.core.app.NotificationCompat @@ -22,6 +24,7 @@ import androidx.localbroadcastmanager.content.LocalBroadcastManager import com.nononsenseapps.filepicker.FilePickerActivity import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.widget.CustomLayoutPickerActivity +import kotlin.math.roundToInt /** * Display a toast in this context. @@ -96,12 +99,22 @@ fun Context.hasPermission(permission: String) = ContextCompat.checkSelfPermissio * Returns the color for the given attribute. * * @param resource the attribute. + * @param alphaFactor the alpha number [0,1]. */ -fun Context.getResourceColor(@AttrRes resource: Int): Int { +@ColorInt fun Context.getResourceColor(@AttrRes resource: Int, alphaFactor: Float = 1f): Int { val typedArray = obtainStyledAttributes(intArrayOf(resource)) - val attrValue = typedArray.getColor(0, 0) + val color = typedArray.getColor(0, 0) typedArray.recycle() - return attrValue + + if (alphaFactor < 1f) { + val alpha = (Color.alpha(color) * alphaFactor).roundToInt() + val red = Color.red(color) + val green = Color.green(color) + val blue = Color.blue(color) + return Color.argb(alpha, red, green, blue) + } + + return color } /** diff --git a/app/src/main/java/eu/kanade/tachiyomi/widget/StateImageViewTarget.kt b/app/src/main/java/eu/kanade/tachiyomi/widget/StateImageViewTarget.kt index 4366a94ad..7228c6d94 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/widget/StateImageViewTarget.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/widget/StateImageViewTarget.kt @@ -4,11 +4,11 @@ import android.graphics.drawable.Drawable import android.view.View import android.widget.ImageView import android.widget.ImageView.ScaleType -import androidx.core.content.ContextCompat import androidx.vectordrawable.graphics.drawable.VectorDrawableCompat import com.bumptech.glide.request.target.ImageViewTarget import com.bumptech.glide.request.transition.Transition import eu.kanade.tachiyomi.R +import eu.kanade.tachiyomi.util.system.getResourceColor import eu.kanade.tachiyomi.util.view.gone import eu.kanade.tachiyomi.util.view.visible @@ -46,7 +46,7 @@ class StateImageViewTarget( view.scaleType = errorScaleType val vector = VectorDrawableCompat.create(view.context.resources, errorDrawableRes, null) - vector?.setTint(ContextCompat.getColor(view.context, com.google.android.material.R.color.material_on_background_disabled)) + vector?.setTint(view.context.getResourceColor(R.attr.colorOnBackground, 0.38f)) view.setImageDrawable(vector) }