From b04a7873cdb7b6522a0dfea9ce96de6b4991b03c Mon Sep 17 00:00:00 2001 From: M66B Date: Mon, 10 Jun 2024 08:00:19 +0200 Subject: [PATCH] Highlight custom account --- .../eu/faircode/email/FragmentAccount.java | 26 ++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentAccount.java b/app/src/main/java/eu/faircode/email/FragmentAccount.java index d47bdf3938..c224a9d0d9 100644 --- a/app/src/main/java/eu/faircode/email/FragmentAccount.java +++ b/app/src/main/java/eu/faircode/email/FragmentAccount.java @@ -32,6 +32,7 @@ import android.content.Intent; import android.content.SharedPreferences; import android.graphics.Color; import android.graphics.Paint; +import android.graphics.Typeface; import android.net.Uri; import android.os.Build; import android.os.Bundle; @@ -1621,12 +1622,35 @@ public class FragmentAccount extends FragmentBase { protected void onExecuted(Bundle args, final EntityAccount account) { // Get providers final Context context = getContext(); + + int colorAccent = Helper.resolveColor(context, androidx.appcompat.R.attr.colorAccent); + int textColorSecondary = Helper.resolveColor(context, android.R.attr.textColorSecondary); + List providers = EmailProvider.getProviders(context); providers.add(0, new EmailProvider(getString(R.string.title_select))); providers.add(1, new EmailProvider(getString(R.string.title_custom))); ArrayAdapter aaProvider = - new ArrayAdapter<>(context, R.layout.spinner_item1, android.R.id.text1, providers); + new ArrayAdapter(context, R.layout.spinner_item1, android.R.id.text1, providers) { + @NonNull + @Override + public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) { + return updateView(position, super.getView(position, convertView, parent)); + } + + @Override + public View getDropDownView(int position, @Nullable View convertView, @NonNull ViewGroup parent) { + return updateView(position, super.getDropDownView(position, convertView, parent)); + } + + private View updateView(int position, View view) { + TextView tv = view.findViewById(android.R.id.text1); + tv.setTypeface(null, position == 1 ? Typeface.BOLD : Typeface.NORMAL); + tv.setTextColor(position == 1 ? colorAccent : textColorSecondary); + + return view; + } + }; aaProvider.setDropDownViewResource(R.layout.spinner_item1_dropdown); spProvider.setAdapter(aaProvider);