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

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

Loading…
Cancel
Save