Просмотр исходного кода

extend text input layout theming

Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
Andy Scherzinger 3 лет назад
Родитель
Сommit
28aae00641
1 измененных файлов с 50 добавлено и 2 удалено
  1. 50 2
      app/src/main/java/com/nextcloud/talk/ui/theme/ViewThemeUtils.kt

+ 50 - 2
app/src/main/java/com/nextcloud/talk/ui/theme/ViewThemeUtils.kt

@@ -119,7 +119,8 @@ class ViewThemeUtils @Inject constructor(private val theme: ServerTheme) {
             val colorStateList = ColorStateList(
                 arrayOf(
                     intArrayOf(android.R.attr.state_enabled),
-                    intArrayOf(-android.R.attr.state_enabled)),
+                    intArrayOf(-android.R.attr.state_enabled)
+                ),
                 intArrayOf(color, disabledColor)
             )
             button.setTextColor(colorStateList)
@@ -212,8 +213,55 @@ class ViewThemeUtils @Inject constructor(private val theme: ServerTheme) {
 
     fun colorTextInputLayout(textInputLayout: TextInputLayout) {
         withElementColor(textInputLayout) { color ->
-            textInputLayout.hintTextColor = ColorStateList.valueOf(color)
+            // TODO calculate error color based on primary color, dark/light aware
+            val errorColor = Color.GRAY
             textInputLayout.boxStrokeColor = color
+            textInputLayout.setErrorIconTintList(
+                ColorStateList(
+                    arrayOf(
+                        intArrayOf(-android.R.attr.state_focused),
+                        intArrayOf(android.R.attr.state_focused)
+                    ),
+                    intArrayOf(
+                        errorColor,
+                        errorColor
+                    )
+                )
+            )
+            textInputLayout.setErrorTextColor(
+                ColorStateList(
+                    arrayOf(
+                        intArrayOf(-android.R.attr.state_focused),
+                        intArrayOf(android.R.attr.state_focused)
+                    ),
+                    intArrayOf(
+                        errorColor,
+                        errorColor
+                    )
+                )
+            )
+            textInputLayout.boxStrokeErrorColor =
+                ColorStateList(
+                    arrayOf(
+                        intArrayOf(-android.R.attr.state_focused),
+                        intArrayOf(android.R.attr.state_focused)
+                    ),
+                    intArrayOf(
+                        errorColor,
+                        errorColor
+                    )
+                )
+            textInputLayout.defaultHintTextColor =
+                ColorStateList(
+                    arrayOf(
+                        intArrayOf(-android.R.attr.state_focused),
+                        intArrayOf(android.R.attr.state_focused)
+                    ),
+                    intArrayOf(
+                        Color.GRAY,
+                        color
+                    )
+                )
         }
     }