Remove usage of alpha color selectors (fixes #2957)

Doesn't work properly in API < 23
This commit is contained in:
arkon 2020-04-26 17:24:31 -04:00
parent b25ab941ba
commit 0a509cb382
6 changed files with 22 additions and 13 deletions

View File

@ -1,7 +1,6 @@
package eu.kanade.tachiyomi.ui.manga.chapter package eu.kanade.tachiyomi.ui.manga.chapter
import android.content.Context import android.content.Context
import androidx.core.content.ContextCompat
import eu.davidea.flexibleadapter.FlexibleAdapter import eu.davidea.flexibleadapter.FlexibleAdapter
import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.data.preference.PreferencesHelper
@ -21,7 +20,7 @@ class ChaptersAdapter(
var items: List<ChapterItem> = emptyList() 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 unreadColor = context.getResourceColor(R.attr.colorOnSurface)
val bookmarkedColor = context.getResourceColor(R.attr.colorAccent) val bookmarkedColor = context.getResourceColor(R.attr.colorAccent)

View File

@ -1,7 +1,6 @@
package eu.kanade.tachiyomi.ui.recent.updates package eu.kanade.tachiyomi.ui.recent.updates
import android.view.View import android.view.View
import androidx.core.content.ContextCompat
import com.bumptech.glide.load.engine.DiskCacheStrategy import com.bumptech.glide.load.engine.DiskCacheStrategy
import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.data.download.model.Download 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) : class UpdatesHolder(private val view: View, private val adapter: UpdatesAdapter) :
BaseFlexibleViewHolder(view, adapter) { 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) private var unreadColor = view.context.getResourceColor(R.attr.colorOnSurface)
/** /**

View File

@ -1,7 +1,6 @@
package eu.kanade.tachiyomi.ui.source.browse package eu.kanade.tachiyomi.ui.source.browse
import android.view.View import android.view.View
import androidx.core.content.ContextCompat
import com.bumptech.glide.load.engine.DiskCacheStrategy import com.bumptech.glide.load.engine.DiskCacheStrategy
import eu.davidea.flexibleadapter.FlexibleAdapter import eu.davidea.flexibleadapter.FlexibleAdapter
import eu.kanade.tachiyomi.R 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<*>) : class SourceListHolder(private val view: View, adapter: FlexibleAdapter<*>) :
SourceHolder(view, adapter) { 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) private val unfavoriteColor = view.context.getResourceColor(R.attr.colorOnSurface)
/** /**

View File

@ -2,7 +2,6 @@ package eu.kanade.tachiyomi.ui.source.filter
import android.view.View import android.view.View
import android.widget.CheckedTextView import android.widget.CheckedTextView
import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import androidx.vectordrawable.graphics.drawable.VectorDrawableCompat import androidx.vectordrawable.graphics.drawable.VectorDrawableCompat
import com.google.android.material.R 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) { val color = if (filter.state == Filter.TriState.STATE_INCLUDE) {
view.context.getResourceColor(R.attr.colorAccent) view.context.getResourceColor(R.attr.colorAccent)
} else { } else {
ContextCompat.getColor(view.context, R.color.material_on_background_disabled) view.context.getResourceColor(R.attr.colorOnBackground, 0.38f)
} }
setTint(color) setTint(color)

View File

@ -9,11 +9,13 @@ import android.content.Intent
import android.content.IntentFilter import android.content.IntentFilter
import android.content.pm.PackageManager import android.content.pm.PackageManager
import android.content.res.Resources import android.content.res.Resources
import android.graphics.Color
import android.net.ConnectivityManager import android.net.ConnectivityManager
import android.net.Uri import android.net.Uri
import android.os.PowerManager import android.os.PowerManager
import android.widget.Toast import android.widget.Toast
import androidx.annotation.AttrRes import androidx.annotation.AttrRes
import androidx.annotation.ColorInt
import androidx.annotation.StringRes import androidx.annotation.StringRes
import androidx.browser.customtabs.CustomTabsIntent import androidx.browser.customtabs.CustomTabsIntent
import androidx.core.app.NotificationCompat import androidx.core.app.NotificationCompat
@ -22,6 +24,7 @@ import androidx.localbroadcastmanager.content.LocalBroadcastManager
import com.nononsenseapps.filepicker.FilePickerActivity import com.nononsenseapps.filepicker.FilePickerActivity
import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.widget.CustomLayoutPickerActivity import eu.kanade.tachiyomi.widget.CustomLayoutPickerActivity
import kotlin.math.roundToInt
/** /**
* Display a toast in this context. * Display a toast in this context.
@ -96,12 +99,22 @@ fun Context.hasPermission(permission: String) = ContextCompat.checkSelfPermissio
* Returns the color for the given attribute. * Returns the color for the given attribute.
* *
* @param resource the 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 typedArray = obtainStyledAttributes(intArrayOf(resource))
val attrValue = typedArray.getColor(0, 0) val color = typedArray.getColor(0, 0)
typedArray.recycle() 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
} }
/** /**

View File

@ -4,11 +4,11 @@ import android.graphics.drawable.Drawable
import android.view.View import android.view.View
import android.widget.ImageView import android.widget.ImageView
import android.widget.ImageView.ScaleType import android.widget.ImageView.ScaleType
import androidx.core.content.ContextCompat
import androidx.vectordrawable.graphics.drawable.VectorDrawableCompat import androidx.vectordrawable.graphics.drawable.VectorDrawableCompat
import com.bumptech.glide.request.target.ImageViewTarget import com.bumptech.glide.request.target.ImageViewTarget
import com.bumptech.glide.request.transition.Transition import com.bumptech.glide.request.transition.Transition
import eu.kanade.tachiyomi.R 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.gone
import eu.kanade.tachiyomi.util.view.visible import eu.kanade.tachiyomi.util.view.visible
@ -46,7 +46,7 @@ class StateImageViewTarget(
view.scaleType = errorScaleType view.scaleType = errorScaleType
val vector = VectorDrawableCompat.create(view.context.resources, errorDrawableRes, null) 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) view.setImageDrawable(vector)
} }