From c5b37e6ea654b400dcf0dcfe8ab6dfa5ecb3f0af Mon Sep 17 00:00:00 2001 From: dsn5ft <1420597+dsn5ft@users.noreply.github.com> Date: Mon, 6 Jun 2022 09:51:30 -0700 Subject: [PATCH] [MaterialToolbar] Add clearNavigationIconTint() method Resolves https://github.com/material-components/material-components-android/issues/2678 PiperOrigin-RevId: 453220817 --- .../android/material/appbar/MaterialToolbar.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/lib/java/com/google/android/material/appbar/MaterialToolbar.java b/lib/java/com/google/android/material/appbar/MaterialToolbar.java index cbd327ee67c..493f193ac8f 100644 --- a/lib/java/com/google/android/material/appbar/MaterialToolbar.java +++ b/lib/java/com/google/android/material/appbar/MaterialToolbar.java @@ -286,6 +286,22 @@ public void setNavigationIconTint(@ColorInt int navigationIconTint) { } } + /** + * Clears the tint list of the toolbar's navigation icon. E.g., if the navigation icon is an XML + * based vector drawable, calling this method will clear the {@code android:tint}. + * + * @see #setNavigationIconTint(int) + */ + public void clearNavigationIconTint() { + this.navigationIconTint = null; + Drawable navigationIcon = getNavigationIcon(); + if (navigationIcon != null) { + Drawable wrappedNavigationIcon = DrawableCompat.wrap(navigationIcon.mutate()); + DrawableCompat.setTintList(wrappedNavigationIcon, null); + setNavigationIcon(navigationIcon); + } + } + /** * Gets the tint color of the toolbar's navigation icon, or null if no tint color has been set. *