Post appreduce, a lot of DrawableUtils methods are horizontally merged into other classes. Since these methods are not available on older Android platform versions, ART instructs the runtime to re-verify when the app loads. When one of these methods is present in a very large horizontally merged class, it can take a lot of time to verify. On Pixel 2XL for Android Q, I have seen 12-15ms being very common.
Related docs and see linked bug:
https://chromium.googlesource.com/chromium/src/+/HEAD/build/android/docs/class_verification_failures.md#understanding-the-reason-for-the-failure
PiperOrigin-RevId: 605643227
Wrapping and mutating a given drawable which is supposed to be tinted is a standard practice across the Material library. This CL applies the same logic to Tab's selected indicator drawables and also refactoring the relevant logic a bit to make it cleaner.
Resolves https://github.com/material-components/material-components-android/issues/2794
PiperOrigin-RevId: 460765659