/* * Copyright (C) 2015 AChep@xda <artemchep@gmail.com> * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301, USA. */ package com.achep.base.utils; import android.annotation.SuppressLint; import android.content.Context; import android.content.res.Resources; import android.graphics.drawable.Drawable; import android.support.annotation.DrawableRes; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.annotation.StringRes; import com.achep.base.Device; import java.util.IllegalFormatException; import java.util.Locale; /** * Created by Artem Chepurnoy on 20.02.2015. */ public class ResUtils { /** * @see #getString(android.content.res.Resources, int, Object...) */ @NonNull public static String getString(@NonNull Context context, @StringRes int id, Object... formatArgs) { return getString(context.getResources(), id, formatArgs); } /** * Return the string value associated with a particular resource ID, * substituting the format arguments as defined in {@link java.util.Formatter} * and {@link java.lang.String#format}. It will be stripped of any styled text * information. * * @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 formatArgs The format arguments that will be used for substitution. * @return String The string data associated with the resource, * stripped of styled text information. * @throws Resources.NotFoundException Throws NotFoundException if the given ID does not exist. */ @NonNull public static String getString(@NonNull Resources resources, @StringRes int id, Object... formatArgs) { try { return resources.getString(id, formatArgs); } catch (IllegalFormatException e) { final String message = "Failed to format the string resource! The user locale is:" + Locale.getDefault().toString(); throw new IllegalArgumentException(message, e); } } @SuppressLint("NewApi") @SuppressWarnings("deprecation") @Nullable public static Drawable getDrawable(@NonNull Context context, @DrawableRes int drawableRes) { return Device.hasLollipopApi() ? context.getResources().getDrawable(drawableRes, context.getTheme()) : context.getResources().getDrawable(drawableRes); } }