pull/32/head
gedoor 6 years ago
parent 44307e3701
commit b36058dedf
  1. 40
      app/src/main/java/io/legado/app/lib/theme/TintHelper.kt

@ -134,25 +134,18 @@ object TintHelper {
view: View, @ColorInt color: Int,
background: Boolean, isDark: Boolean
) {
var background = background
if (!background) {
if (view is RadioButton)
setTint(view, color, isDark)
else if (view is SeekBar)
setTint(view, color, isDark)
else if (view is ProgressBar)
setTint(view, color)
else if (view is AppCompatEditText)
setTint(view, color, isDark)
else if (view is CheckBox)
setTint(view, color, isDark)
else if (view is ImageView)
setTint(view, color)
else if (view is Switch)
setTint(view, color, isDark)
else if (view is SwitchCompat)
setTint(view, color, isDark)
else if (view is SearchView) {
var isBg = background
if (!isBg) {
when (view) {
is RadioButton -> setTint(view, color, isDark)
is SeekBar -> setTint(view, color, isDark)
is ProgressBar -> setTint(view, color)
is AppCompatEditText -> setTint(view, color, isDark)
is CheckBox -> setTint(view, color, isDark)
is ImageView -> setTint(view, color)
is Switch -> setTint(view, color, isDark)
is SwitchCompat -> setTint(view, color, isDark)
is SearchView -> {
val iconIdS =
intArrayOf(androidx.appcompat.R.id.search_button, androidx.appcompat.R.id.search_close_btn)
for (iconId in iconIdS) {
@ -161,13 +154,12 @@ object TintHelper {
setTint(icon, color)
}
}
} else {
background = true
}
else -> isBg = true
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP &&
!background && view.background is RippleDrawable
!isBg && view.background is RippleDrawable
) {
// Ripples for the above views (e.g. when you tap and hold a switch or checkbox)
val rd = view.background as RippleDrawable
@ -187,7 +179,7 @@ object TintHelper {
rd.setColor(sl)
}
}
if (background) {
if (isBg) {
// Need to tint the background of a view
if (view is FloatingActionButton || view is Button) {
setTintSelector(view, color, false, isDark)

Loading…
Cancel
Save