Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/stefan-niedermann/nextcloud-notes.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Niedermann <info@niedermann.it>2022-11-04 13:46:54 +0300
committerStefan Niedermann <info@niedermann.it>2022-11-12 11:02:24 +0300
commit35a378b845ba8d9f6cd3b752701fcb06a35e1633 (patch)
tree1aaaeb817a63a86ae1791fb1d3c6ee5f5aa67ec4
parent20bb9481300d02baf9e7f286717e2ce6b3140d90 (diff)
Material 3: Navbar highlighting, TextInputLayouts in dialogs, Buttons
Signed-off-by: Stefan Niedermann <info@niedermann.it>
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/branding/BrandingUtil.java14
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/edit/category/CategoryDialogFragment.java2
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/edit/title/EditTitleDialogFragment.java10
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/shared/util/NotesColorUtil.java11
-rw-r--r--app/src/main/res/color/text_input_layout_color.xml7
-rw-r--r--app/src/main/res/layout/dialog_account_switcher.xml4
-rw-r--r--app/src/main/res/layout/dialog_change_category.xml22
-rw-r--r--app/src/main/res/layout/dialog_edit_title.xml4
-rw-r--r--app/src/main/res/layout/fragment_about_license_tab.xml2
-rw-r--r--app/src/main/res/values/colors.xml4
-rw-r--r--app/src/main/res/values/styles.xml5
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>