From 4e563004800af71d326077c8a4de4bee598fd336 Mon Sep 17 00:00:00 2001 From: cyBerta Date: Mon, 23 Oct 2023 17:34:57 +0200 Subject: tint actionbar subtitle and icons according to actionbar title color --- .../leap/bitmaskclient/base/utils/ViewHelper.java | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'app/src/main/java/se/leap/bitmaskclient/base/utils') diff --git a/app/src/main/java/se/leap/bitmaskclient/base/utils/ViewHelper.java b/app/src/main/java/se/leap/bitmaskclient/base/utils/ViewHelper.java index ebf26048..ed7bd9f2 100644 --- a/app/src/main/java/se/leap/bitmaskclient/base/utils/ViewHelper.java +++ b/app/src/main/java/se/leap/bitmaskclient/base/utils/ViewHelper.java @@ -9,10 +9,13 @@ import android.app.Activity; import android.content.Context; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; +import android.graphics.drawable.Drawable; import android.text.Spannable; import android.text.SpannableString; import android.text.style.ForegroundColorSpan; import android.util.Log; +import android.view.Menu; +import android.view.MenuItem; import android.view.View; import android.view.Window; import android.view.WindowManager; @@ -24,7 +27,9 @@ import androidx.annotation.NonNull; import androidx.annotation.StringRes; import androidx.appcompat.app.ActionBar; import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; import androidx.core.content.ContextCompat; +import androidx.core.graphics.drawable.DrawableCompat; import androidx.fragment.app.Fragment; import se.leap.bitmaskclient.R; @@ -116,6 +121,12 @@ public class ViewHelper { if (customView instanceof ActionBarTitle) { ActionBarTitle actionBarTitle = (ActionBarTitle) customView; actionBarTitle.setTitleTextColor(ContextCompat.getColor(bar.getThemedContext(), actionBarTextColor)); + actionBarTitle.setSubtitleTextColor(ContextCompat.getColor(bar.getThemedContext(), actionBarTextColor)); + } + + Toolbar tb = activity.findViewById(R.id.toolbar); + if (tb != null && tb.getOverflowIcon() != null) { + tb.getOverflowIcon().setTint(ContextCompat.getColor(bar.getThemedContext(), actionBarTextColor)); } } @@ -139,6 +150,17 @@ public class ViewHelper { return rtnValue; } + public static void tintMenuIcons(Context context, Menu menu, @ColorRes int color) { + for (int i = 0; i < menu.size(); i++) { + MenuItem item = menu.getItem(i); + Drawable normalDrawable = item.getIcon(); + Drawable wrapDrawable = DrawableCompat.wrap(normalDrawable); + DrawableCompat.setTint(wrapDrawable, context.getResources().getColor(color)); + + item.setIcon(wrapDrawable); + } + } + public static void setActionBarTextColor(ActionBar bar, @ColorRes int titleColor) { CharSequence titleCharSequence = bar.getTitle(); if (titleCharSequence == null || titleCharSequence.length() == 0) { -- cgit v1.2.3