From afc7dcbb2bf2a69c6091d9dd3f34aeed3c989e09 Mon Sep 17 00:00:00 2001 From: Stephen Paul Weber Date: Fri, 31 May 2024 23:07:17 -0500 Subject: [PATCH] Darken dark mode text input background By treating the material surface cover as if it were alpha overlaid on the background. Use the opacity from account settings within reason, but keep the box visible. --- .../eu/siacs/conversations/ui/ConversationFragment.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java index 9e15b39ff6309ff648266e04ceb89ced94d5505d..c298c6f79279e873683e2acf712970b075864010 100644 --- a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java +++ b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java @@ -25,6 +25,7 @@ import android.content.IntentSender.SendIntentException; import android.content.SharedPreferences; import android.content.pm.PackageManager; import android.content.res.ColorStateList; +import android.graphics.Color; import android.icu.util.Calendar; import android.icu.util.TimeZone; import android.net.Uri; @@ -77,6 +78,7 @@ import androidx.annotation.StringRes; import androidx.appcompat.app.AlertDialog; import androidx.core.content.pm.ShortcutInfoCompat; import androidx.core.content.pm.ShortcutManagerCompat; +import androidx.core.graphics.ColorUtils; import androidx.core.view.inputmethod.InputConnectionCompat; import androidx.core.view.inputmethod.InputContentInfoCompat; import androidx.databinding.DataBindingUtil; @@ -3153,9 +3155,12 @@ public class ConversationFragment extends XmppFragment final var cursord = getResources().getDrawable(R.drawable.cursor_on_tertiary_container); if (activity.xmppConnectionService != null && activity.xmppConnectionService.getAccounts().size() > 1) { - final var colors = MaterialColors.getColorRoles(activity, conversation.getAccount().getColor(activity.isDark())); + final var bg = MaterialColors.getColor(binding.textinput, com.google.android.material.R.attr.colorSurface); + final var accountColor = conversation.getAccount().getColor(activity.isDark()); + final var colors = MaterialColors.getColorRoles(activity, accountColor); + final var accent = activity.isDark() ? ColorUtils.blendARGB(colors.getAccentContainer(), bg, 1.0f - Math.max(0.25f, Color.alpha(accountColor) / 255.0f)) : colors.getAccentContainer(); cursord.setTintList(ColorStateList.valueOf(colors.getOnAccentContainer())); - binding.inputLayout.setBackgroundTintList(ColorStateList.valueOf(colors.getAccentContainer())); + binding.inputLayout.setBackgroundTintList(ColorStateList.valueOf(accent)); binding.textinputSubject.setTextColor(colors.getOnAccentContainer()); binding.textinput.setTextColor(colors.getOnAccentContainer()); binding.textinputSubject.setHintTextColor(ColorStateList.valueOf(colors.getOnAccentContainer()).withAlpha(115));