diff options
Diffstat (limited to 'app/src')
11 files changed, 72 insertions, 13 deletions
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/branding/BrandingUtil.java b/app/src/main/java/it/niedermann/owncloud/notes/branding/BrandingUtil.java index 44b34eb7..2de58640 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/branding/BrandingUtil.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/branding/BrandingUtil.java @@ -28,6 +28,9 @@ import it.niedermann.owncloud.notes.NotesApplication; import it.niedermann.owncloud.notes.R; import static it.niedermann.owncloud.notes.shared.util.NotesColorUtil.contrastRatioIsSufficient; +import static it.niedermann.owncloud.notes.shared.util.NotesColorUtil.contrastRatioIsSufficientBigAreas; + +import com.google.android.material.textfield.TextInputLayout; public class BrandingUtil { @@ -146,6 +149,17 @@ public class BrandingUtil { )); } + public static void applyBrandToEditTextInputLayout(@ColorInt int color, @NonNull TextInputLayout til) { + final int colorPrimary = ContextCompat.getColor(til.getContext(), R.color.primary); + final int colorAccent = ContextCompat.getColor(til.getContext(), R.color.accent); + final var colorDanger = ColorStateList.valueOf(ContextCompat.getColor(til.getContext(), R.color.danger)); + til.setBoxStrokeColor(contrastRatioIsSufficientBigAreas(color, colorPrimary) ? color : colorAccent); + til.setHintTextColor(ColorStateList.valueOf(contrastRatioIsSufficient(color, colorPrimary) ? color : colorAccent)); + til.setErrorTextColor(colorDanger); + til.setBoxStrokeErrorColor(colorDanger); + til.setErrorIconTintList(colorDanger); + } + public static void tintMenuIcon(@NonNull MenuItem menuItem, @ColorInt int color) { var drawable = menuItem.getIcon(); if (drawable != null) { diff --git a/app/src/main/java/it/niedermann/owncloud/notes/edit/category/CategoryDialogFragment.java b/app/src/main/java/it/niedermann/owncloud/notes/edit/category/CategoryDialogFragment.java index 530a5549..16e0686b 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/edit/category/CategoryDialogFragment.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/edit/category/CategoryDialogFragment.java @@ -49,7 +49,7 @@ public class CategoryDialogFragment extends BrandedDialogFragment { @Override public void applyBrand(int mainColor, int textColor) { - BrandingUtil.applyBrandToEditText(mainColor, textColor, binding.search); + BrandingUtil.applyBrandToEditTextInputLayout(mainColor, binding.inputWrapper); } /** diff --git a/app/src/main/java/it/niedermann/owncloud/notes/edit/title/EditTitleDialogFragment.java b/app/src/main/java/it/niedermann/owncloud/notes/edit/title/EditTitleDialogFragment.java index 4d2a770a..b4221d98 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/edit/title/EditTitleDialogFragment.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/edit/title/EditTitleDialogFragment.java @@ -1,5 +1,7 @@ package it.niedermann.owncloud.notes.edit.title; +import static it.niedermann.owncloud.notes.branding.BrandingUtil.applyBrandToEditTextInputLayout; + import android.app.Dialog; import android.content.Context; import android.os.Bundle; @@ -15,9 +17,10 @@ import androidx.fragment.app.DialogFragment; import com.google.android.material.dialog.MaterialAlertDialogBuilder; import it.niedermann.owncloud.notes.R; +import it.niedermann.owncloud.notes.branding.BrandedDialogFragment; import it.niedermann.owncloud.notes.databinding.DialogEditTitleBinding; -public class EditTitleDialogFragment extends DialogFragment { +public class EditTitleDialogFragment extends BrandedDialogFragment { private static final String TAG = EditTitleDialogFragment.class.getSimpleName(); static final String PARAM_OLD_TITLE = "old_title"; @@ -83,6 +86,11 @@ public class EditTitleDialogFragment extends DialogFragment { return fragment; } + @Override + public void applyBrand(int mainColor, int textColor) { + applyBrandToEditTextInputLayout(mainColor, binding.inputWrapper); + } + /** * Interface that must be implemented by the calling Activity. */ diff --git a/app/src/main/java/it/niedermann/owncloud/notes/shared/util/NotesColorUtil.java b/app/src/main/java/it/niedermann/owncloud/notes/shared/util/NotesColorUtil.java index 035aab9a..70c5316e 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/shared/util/NotesColorUtil.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/shared/util/NotesColorUtil.java @@ -28,6 +28,17 @@ public final class NotesColorUtil { return ret; } + public static boolean contrastRatioIsSufficientBigAreas(@ColorInt int colorOne, @ColorInt int colorTwo) { + final var key = new ColorPair(colorOne, colorTwo); + var ret = CONTRAST_RATIO_SUFFICIENT_CACHE.get(key); + if (ret == null) { + ret = ColorUtil.INSTANCE.getContrastRatio(colorOne, colorTwo) > 1.47d; + CONTRAST_RATIO_SUFFICIENT_CACHE.put(key, ret); + return ret; + } + return ret; + } + private static class ColorPair extends Pair<Integer, Integer> { private ColorPair(@Nullable Integer first, @Nullable Integer second) { diff --git a/app/src/main/res/color/text_input_layout_color.xml b/app/src/main/res/color/text_input_layout_color.xml new file mode 100644 index 00000000..fcd5fa09 --- /dev/null +++ b/app/src/main/res/color/text_input_layout_color.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?> +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <item android:state_enabled="true" android:color="@color/accent"/> + <item android:state_hovered="true" android:color="@color/accent"/> + <item android:state_focused="true" android:color="@color/accent"/> + <item android:color="@color/grey600" /> +</selector> diff --git a/app/src/main/res/layout/dialog_account_switcher.xml b/app/src/main/res/layout/dialog_account_switcher.xml index 8e8634b2..965f1df8 100644 --- a/app/src/main/res/layout/dialog_account_switcher.xml +++ b/app/src/main/res/layout/dialog_account_switcher.xml @@ -6,7 +6,6 @@ android:layout_height="wrap_content" android:orientation="vertical"> - <LinearLayout android:id="@+id/accountLayout" android:layout_width="match_parent" @@ -28,7 +27,6 @@ android:scaleType="center" app:srcCompat="@drawable/ic_account_circle_grey_24dp" /> - <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" @@ -83,7 +81,6 @@ tools:itemCount="3" tools:listitem="@layout/item_account_choose" /> - <LinearLayout android:id="@+id/add_account" android:layout_width="match_parent" @@ -111,7 +108,6 @@ android:text="@string/add_account" android:textAppearance="@style/TextAppearance.AppCompat.Widget.TextView.SpinnerItem" android:textColor="?android:textColorPrimary" /> - </LinearLayout> <LinearLayout diff --git a/app/src/main/res/layout/dialog_change_category.xml b/app/src/main/res/layout/dialog_change_category.xml index 86243c23..bdd19c88 100644 --- a/app/src/main/res/layout/dialog_change_category.xml +++ b/app/src/main/res/layout/dialog_change_category.xml @@ -8,13 +8,27 @@ android:orientation="vertical" android:padding="?attr/dialogPreferredPadding"> - <EditText - android:id="@+id/search" + <com.google.android.material.textfield.TextInputLayout + android:id="@+id/inputWrapper" + style="@style/textInputLayoutStyle" android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_marginBottom="@dimen/spacer_1x" android:hint="@string/change_category_title" - android:importantForAutofill="no" - android:inputType="text" /> + android:labelFor="@id/search"> + + <com.google.android.material.textfield.TextInputEditText + android:id="@+id/search" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:imeOptions="actionDone" + android:importantForAutofill="no" + android:inputType="text"> + + <requestFocus /> + </com.google.android.material.textfield.TextInputEditText> + </com.google.android.material.textfield.TextInputLayout> + <androidx.recyclerview.widget.RecyclerView android:id="@+id/recycler_view" diff --git a/app/src/main/res/layout/dialog_edit_title.xml b/app/src/main/res/layout/dialog_edit_title.xml index 805926bd..b7d3fa5a 100644 --- a/app/src/main/res/layout/dialog_edit_title.xml +++ b/app/src/main/res/layout/dialog_edit_title.xml @@ -1,8 +1,10 @@ <?xml version="1.0" encoding="utf-8"?> <com.google.android.material.textfield.TextInputLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:id="@+id/inputWrapper" + style="@style/textInputLayoutStyle" android:layout_width="match_parent" android:layout_height="wrap_content" - android:padding="16dp"> + android:padding="@dimen/spacer_2x"> <EditText android:id="@+id/title" diff --git a/app/src/main/res/layout/fragment_about_license_tab.xml b/app/src/main/res/layout/fragment_about_license_tab.xml index 24e6163f..9e425d4e 100644 --- a/app/src/main/res/layout/fragment_about_license_tab.xml +++ b/app/src/main/res/layout/fragment_about_license_tab.xml @@ -25,7 +25,7 @@ <com.google.android.material.button.MaterialButton android:id="@+id/about_app_license_button" - style="@style/Widget.MaterialComponents.Button" + style="@style/Widget.Material3.Button" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/about_app_license_button" diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 87944d9d..4e33728d 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -4,6 +4,7 @@ <color name="primary">#ffffff</color> <color name="accent">#121212</color> + <color name="danger">#d40000</color> <color name="defaultBrand">#0082C9</color> @@ -21,7 +22,8 @@ <color name="fg_secondary">#999999</color> <color name="fg_contrast">#ffffff</color> - <color name="icon_color_default">#757575</color> + <color name="grey600">#757575</color> + <color name="icon_color_default">@color/grey600</color> <color name="category_background">@color/bg_normal</color> <color name="category_border">@color/defaultBrand</color> diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 6a09ce60..2e06afb0 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -40,6 +40,11 @@ <item name="tabIconTint">?attr/colorAccent</item> </style> + <style name="textInputLayoutStyle" parent="Widget.Material3.TextInputLayout.OutlinedBox.Dense"> + <item name="boxStrokeColor">@color/text_input_layout_color</item> + <item name="hintTextColor">@color/text_input_layout_color</item> + </style> + <style name="MaterialAlertDialogTheme" parent="ThemeOverlay.Material3.MaterialAlertDialog"> <item name="buttonBarPositiveButtonStyle">@style/buttonStyle</item> <item name="buttonBarNegativeButtonStyle">@style/buttonStyle</item> |