mirror of
https://github.com/nextcloud/talk-android
synced 2025-06-20 03:59:35 +01:00
move disabled color calculation to ColorUtil class
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
This commit is contained in:
parent
5f1f34bdfa
commit
89a7c5e400
@ -78,7 +78,6 @@ import com.yarolegovich.mp.MaterialPreferenceCategory
|
|||||||
import com.yarolegovich.mp.MaterialSwitchPreference
|
import com.yarolegovich.mp.MaterialSwitchPreference
|
||||||
import scheme.Scheme
|
import scheme.Scheme
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import kotlin.math.roundToInt
|
|
||||||
|
|
||||||
@Suppress("TooManyFunctions")
|
@Suppress("TooManyFunctions")
|
||||||
class ViewThemeUtils @Inject constructor(private val theme: ServerTheme, private val colorUtil: ColorUtil) {
|
class ViewThemeUtils @Inject constructor(private val theme: ServerTheme, private val colorUtil: ColorUtil) {
|
||||||
@ -259,7 +258,7 @@ class ViewThemeUtils @Inject constructor(private val theme: ServerTheme, private
|
|||||||
scheme.primary,
|
scheme.primary,
|
||||||
scheme.onSurfaceVariant,
|
scheme.onSurfaceVariant,
|
||||||
scheme.onSurfaceVariant,
|
scheme.onSurfaceVariant,
|
||||||
calculateDisabledColor(scheme.onSurface, ON_SURFACE_OPACITY_BUTTON_DISABLED)
|
colorUtil.adjustOpacity(scheme.onSurface, ON_SURFACE_OPACITY_BUTTON_DISABLED)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@ -288,7 +287,7 @@ class ViewThemeUtils @Inject constructor(private val theme: ServerTheme, private
|
|||||||
intArrayOf(android.R.attr.state_pressed)
|
intArrayOf(android.R.attr.state_pressed)
|
||||||
),
|
),
|
||||||
intArrayOf(
|
intArrayOf(
|
||||||
calculateDisabledColor(scheme.primary, SURFACE_OPACITY_BUTTON_DISABLED)
|
colorUtil.adjustOpacity(scheme.primary, SURFACE_OPACITY_BUTTON_DISABLED)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@ -320,7 +319,7 @@ class ViewThemeUtils @Inject constructor(private val theme: ServerTheme, private
|
|||||||
),
|
),
|
||||||
intArrayOf(
|
intArrayOf(
|
||||||
scheme.primary,
|
scheme.primary,
|
||||||
calculateDisabledColor(scheme.onSurface, ON_SURFACE_OPACITY_BUTTON_DISABLED)
|
colorUtil.adjustOpacity(scheme.onSurface, ON_SURFACE_OPACITY_BUTTON_DISABLED)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@ -338,7 +337,7 @@ class ViewThemeUtils @Inject constructor(private val theme: ServerTheme, private
|
|||||||
),
|
),
|
||||||
intArrayOf(
|
intArrayOf(
|
||||||
scheme.primary,
|
scheme.primary,
|
||||||
calculateDisabledColor(scheme.onSurface, SURFACE_OPACITY_BUTTON_DISABLED)
|
colorUtil.adjustOpacity(scheme.onSurface, SURFACE_OPACITY_BUTTON_DISABLED)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -350,7 +349,7 @@ class ViewThemeUtils @Inject constructor(private val theme: ServerTheme, private
|
|||||||
),
|
),
|
||||||
intArrayOf(
|
intArrayOf(
|
||||||
scheme.onPrimary,
|
scheme.onPrimary,
|
||||||
calculateDisabledColor(scheme.onSurface, ON_SURFACE_OPACITY_BUTTON_DISABLED)
|
colorUtil.adjustOpacity(scheme.onSurface, ON_SURFACE_OPACITY_BUTTON_DISABLED)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@ -362,7 +361,7 @@ class ViewThemeUtils @Inject constructor(private val theme: ServerTheme, private
|
|||||||
),
|
),
|
||||||
intArrayOf(
|
intArrayOf(
|
||||||
scheme.onPrimary,
|
scheme.onPrimary,
|
||||||
calculateDisabledColor(scheme.onSurface, ON_SURFACE_OPACITY_BUTTON_DISABLED)
|
colorUtil.adjustOpacity(scheme.onSurface, ON_SURFACE_OPACITY_BUTTON_DISABLED)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@ -379,7 +378,7 @@ class ViewThemeUtils @Inject constructor(private val theme: ServerTheme, private
|
|||||||
),
|
),
|
||||||
intArrayOf(
|
intArrayOf(
|
||||||
scheme.primary,
|
scheme.primary,
|
||||||
calculateDisabledColor(scheme.onSurface, ON_SURFACE_OPACITY_BUTTON_DISABLED)
|
colorUtil.adjustOpacity(scheme.onSurface, ON_SURFACE_OPACITY_BUTTON_DISABLED)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@ -390,7 +389,7 @@ class ViewThemeUtils @Inject constructor(private val theme: ServerTheme, private
|
|||||||
),
|
),
|
||||||
intArrayOf(
|
intArrayOf(
|
||||||
scheme.primary,
|
scheme.primary,
|
||||||
calculateDisabledColor(scheme.onSurface, ON_SURFACE_OPACITY_BUTTON_DISABLED)
|
colorUtil.adjustOpacity(scheme.onSurface, ON_SURFACE_OPACITY_BUTTON_DISABLED)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@ -406,7 +405,7 @@ class ViewThemeUtils @Inject constructor(private val theme: ServerTheme, private
|
|||||||
),
|
),
|
||||||
intArrayOf(
|
intArrayOf(
|
||||||
scheme.primary,
|
scheme.primary,
|
||||||
calculateDisabledColor(scheme.onSurface, ON_SURFACE_OPACITY_BUTTON_DISABLED)
|
colorUtil.adjustOpacity(scheme.onSurface, ON_SURFACE_OPACITY_BUTTON_DISABLED)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@ -417,7 +416,7 @@ class ViewThemeUtils @Inject constructor(private val theme: ServerTheme, private
|
|||||||
),
|
),
|
||||||
intArrayOf(
|
intArrayOf(
|
||||||
scheme.primary,
|
scheme.primary,
|
||||||
calculateDisabledColor(scheme.onSurface, ON_SURFACE_OPACITY_BUTTON_DISABLED)
|
colorUtil.adjustOpacity(scheme.onSurface, ON_SURFACE_OPACITY_BUTTON_DISABLED)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@ -670,7 +669,7 @@ class ViewThemeUtils @Inject constructor(private val theme: ServerTheme, private
|
|||||||
intArrayOf(android.R.attr.state_pressed)
|
intArrayOf(android.R.attr.state_pressed)
|
||||||
),
|
),
|
||||||
intArrayOf(
|
intArrayOf(
|
||||||
calculateDisabledColor(scheme.primary, SURFACE_OPACITY_BUTTON_DISABLED)
|
colorUtil.adjustOpacity(scheme.primary, SURFACE_OPACITY_BUTTON_DISABLED)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@ -718,15 +717,6 @@ class ViewThemeUtils @Inject constructor(private val theme: ServerTheme, private
|
|||||||
return drawable
|
return drawable
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun calculateDisabledColor(color: Int, opacity: Float): Int {
|
|
||||||
return Color.argb(
|
|
||||||
(Color.alpha(color) * opacity).roundToInt(),
|
|
||||||
Color.red(color),
|
|
||||||
Color.green(color),
|
|
||||||
Color.blue(color)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
fun themePrimaryMentionChip(context: Context, chip: ChipDrawable) {
|
fun themePrimaryMentionChip(context: Context, chip: ChipDrawable) {
|
||||||
withScheme(context) { scheme ->
|
withScheme(context) { scheme ->
|
||||||
chip.chipBackgroundColor = ColorStateList.valueOf(scheme.primary)
|
chip.chipBackgroundColor = ColorStateList.valueOf(scheme.primary)
|
||||||
|
@ -28,6 +28,7 @@ import androidx.core.content.ContextCompat
|
|||||||
import androidx.core.graphics.ColorUtils
|
import androidx.core.graphics.ColorUtils
|
||||||
import com.nextcloud.talk.R
|
import com.nextcloud.talk.R
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
import kotlin.math.roundToInt
|
||||||
|
|
||||||
class ColorUtil @Inject constructor(private val context: Context) {
|
class ColorUtil @Inject constructor(private val context: Context) {
|
||||||
|
|
||||||
@ -73,6 +74,16 @@ class ColorUtil @Inject constructor(private val context: Context) {
|
|||||||
return this?.let { Color.parseColor(this) } ?: fallback()
|
return this?.let { Color.parseColor(this) } ?: fallback()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ColorInt
|
||||||
|
fun adjustOpacity(color: Int, opacity: Float): Int {
|
||||||
|
return Color.argb(
|
||||||
|
(Color.alpha(color) * opacity).roundToInt(),
|
||||||
|
Color.red(color),
|
||||||
|
Color.green(color),
|
||||||
|
Color.blue(color)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private const val HSL_SIZE: Int = 3
|
private const val HSL_SIZE: Int = 3
|
||||||
private const val INDEX_LIGHTNESS: Int = 2
|
private const val INDEX_LIGHTNESS: Int = 2
|
||||||
|
Loading…
Reference in New Issue
Block a user