@Nullable
    @SuppressWarnings("deprecation")
    public static Drawable getDrawable(@NonNull Resources res, @DrawableRes int id,
                                       @Nullable Theme theme) throws NotFoundException {
        if (SDK_INT >= 21) {
            return res.getDrawable(id, theme);
        } else {
            return res.getDrawable(id);
        }
    }
Return a drawable object associated with a particular resource ID and
styled for the specified theme. Various types of objects will be
returned depending on the underlying resource -- for example, a solid
color, PNG image, scalable image, etc.
<p>
Prior to API level 21, the theme will not be applied and this method
simply calls through to {@link Resources#getDrawable(int)}.

@param id    The desired resource identifier, as generated by the aapt
             tool. This integer encodes the package, type, and resource
             entry. The value 0 is an invalid identifier.
@param theme The theme used to style the drawable attributes, may be
             {@code null}.
@return Drawable An object that can be used to draw this resource.
@throws NotFoundException Throws NotFoundException if the given ID does
                          not exist.
android/android_framework/base/src/main/java/github/tornaco/android/thanos/core/compat/ResourcesCompat.java