From a680b11e960c8e9287c765fb80822a767a1a7bcb Mon Sep 17 00:00:00 2001 From: Thomas Date: Sat, 4 Jun 2022 12:14:06 +0200 Subject: [PATCH] Fix issue #128 - Better indicator for media descriptions when composing --- .../fedilab/android/helper/ThemeHelper.java | 38 +++++++++++++++++++ .../android/ui/drawer/ComposeAdapter.java | 13 ++++++- .../drawable/ic_baseline_check_circle_24.xml | 4 +- .../res/drawable/ic_baseline_mode_edit_24.xml | 10 +++++ .../res/drawable/ic_baseline_warning_24.xml | 10 +++++ .../res/layout/compose_attachment_item.xml | 27 ++++++++++--- app/src/main/res/values/colors.xml | 4 ++ 7 files changed, 97 insertions(+), 9 deletions(-) create mode 100644 app/src/main/res/drawable/ic_baseline_mode_edit_24.xml create mode 100644 app/src/main/res/drawable/ic_baseline_warning_24.xml diff --git a/app/src/main/java/app/fedilab/android/helper/ThemeHelper.java b/app/src/main/java/app/fedilab/android/helper/ThemeHelper.java index 1f27e3db5..5ceefee6d 100644 --- a/app/src/main/java/app/fedilab/android/helper/ThemeHelper.java +++ b/app/src/main/java/app/fedilab/android/helper/ThemeHelper.java @@ -263,6 +263,44 @@ public class ThemeHelper { return readValues; } + + /** + * Allow to set colors for no description on media + * + * @param context - Context + * @return - ColorStateList + */ + public static ColorStateList getNoDescriptionColorStateList(Context context) { + int[][] states = new int[][]{ + new int[]{android.R.attr.state_selected}, + new int[]{-android.R.attr.state_selected}, + }; + int[] colors = new int[]{ + ContextCompat.getColor(context, R.color.no_description), + ContextCompat.getColor(context, R.color.no_description), + }; + return new ColorStateList(states, colors); + } + + + /** + * Allow to set colors for having description on media + * + * @param context - Context + * @return - ColorStateList + */ + public static ColorStateList getHavingDescriptionColorStateList(Context context) { + int[][] states = new int[][]{ + new int[]{android.R.attr.state_selected}, + new int[]{-android.R.attr.state_selected}, + }; + int[] colors = new int[]{ + ContextCompat.getColor(context, R.color.having_description), + ContextCompat.getColor(context, R.color.having_description), + }; + return new ColorStateList(states, colors); + } + /** * Allow to set colors for tablayout * diff --git a/app/src/main/java/app/fedilab/android/ui/drawer/ComposeAdapter.java b/app/src/main/java/app/fedilab/android/ui/drawer/ComposeAdapter.java index 3c1cfc2dc..5f0f19c17 100644 --- a/app/src/main/java/app/fedilab/android/ui/drawer/ComposeAdapter.java +++ b/app/src/main/java/app/fedilab/android/ui/drawer/ComposeAdapter.java @@ -98,6 +98,7 @@ import app.fedilab.android.databinding.PopupMediaDescriptionBinding; import app.fedilab.android.exception.DBException; import app.fedilab.android.helper.Helper; import app.fedilab.android.helper.MastodonHelper; +import app.fedilab.android.helper.ThemeHelper; import app.fedilab.android.viewmodel.mastodon.AccountsVM; import app.fedilab.android.viewmodel.mastodon.SearchVM; import es.dmoral.toasty.Toasty; @@ -556,9 +557,17 @@ public class ComposeAdapter extends RecyclerView.Adapter displayAttachments(holder, position, finalMediaPosition)); if (attachment.description == null || attachment.description.trim().isEmpty()) { - ImageViewCompat.setImageTintList(composeAttachmentItemBinding.buttonDescription, ColorStateList.valueOf(ContextCompat.getColor(context, R.color.errorColor))); + composeAttachmentItemBinding.buttonDescription.setIconResource(R.drawable.ic_baseline_warning_24); + composeAttachmentItemBinding.buttonDescription.setStrokeColor(ThemeHelper.getNoDescriptionColorStateList(context)); + composeAttachmentItemBinding.buttonDescription.setTextColor(ContextCompat.getColor(context, R.color.no_description)); + Helper.changeDrawableColor(context, R.drawable.ic_baseline_warning_24, ContextCompat.getColor(context, R.color.no_description)); + composeAttachmentItemBinding.buttonDescription.setIconTint(ThemeHelper.getNoDescriptionColorStateList(context)); } else { - ImageViewCompat.setImageTintList(composeAttachmentItemBinding.buttonDescription, ColorStateList.valueOf(ContextCompat.getColor(context, R.color.successColor))); + composeAttachmentItemBinding.buttonDescription.setIconTint(ThemeHelper.getHavingDescriptionColorStateList(context)); + composeAttachmentItemBinding.buttonDescription.setIconResource(R.drawable.ic_baseline_check_circle_24); + composeAttachmentItemBinding.buttonDescription.setTextColor(ContextCompat.getColor(context, R.color.having_description)); + composeAttachmentItemBinding.buttonDescription.setStrokeColor(ThemeHelper.getHavingDescriptionColorStateList(context)); + Helper.changeDrawableColor(context, R.drawable.ic_baseline_check_circle_24, ContextCompat.getColor(context, R.color.having_description)); } holder.binding.attachmentsList.addView(composeAttachmentItemBinding.getRoot()); mediaPosition++; diff --git a/app/src/main/res/drawable/ic_baseline_check_circle_24.xml b/app/src/main/res/drawable/ic_baseline_check_circle_24.xml index 5e111ca7d..2871939f1 100644 --- a/app/src/main/res/drawable/ic_baseline_check_circle_24.xml +++ b/app/src/main/res/drawable/ic_baseline_check_circle_24.xml @@ -3,8 +3,8 @@ android:height="24dp" android:viewportWidth="24" android:viewportHeight="24" - android:tint="?attr/colorControlNormal"> + android:tint="@color/having_description"> + android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM10,17l-5,-5 1.41,-1.41L10,14.17l7.59,-7.59L19,8l-9,9z" /> diff --git a/app/src/main/res/drawable/ic_baseline_mode_edit_24.xml b/app/src/main/res/drawable/ic_baseline_mode_edit_24.xml new file mode 100644 index 000000000..5fb90ad4f --- /dev/null +++ b/app/src/main/res/drawable/ic_baseline_mode_edit_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/ic_baseline_warning_24.xml b/app/src/main/res/drawable/ic_baseline_warning_24.xml new file mode 100644 index 000000000..4fae5fc49 --- /dev/null +++ b/app/src/main/res/drawable/ic_baseline_warning_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/layout/compose_attachment_item.xml b/app/src/main/res/layout/compose_attachment_item.xml index eb3ce5d6a..0747b5e18 100644 --- a/app/src/main/res/layout/compose_attachment_item.xml +++ b/app/src/main/res/layout/compose_attachment_item.xml @@ -23,6 +23,7 @@ app:layout_constraintTop_toTopOf="parent" tools:src="@tools:sample/backgrounds/scenic" /> + + - + #d9d9d9 + #FFEA00 + #42A5F5 #f3f3f3 #606984 @@ -112,6 +114,8 @@ #0288D1 #512DA8 + #BDBDBD + #2e2e2e #EF5350