package skin.support.widget;
import android.annotation.TargetApi;
import android.content.Context;
import android.content.res.TypedArray;
import android.os.Build;
import android.support.annotation.RequiresApi;
import static skin.support.widget.SkinCompatHelper.INVALID_ID;
/**
* Created by ximsfei on 2017/3/25.
*/
public class SkinCompatThemeUtils {
private static final int[] APPCOMPAT_COLOR_PRIMARY_ATTRS = {
android.support.v7.appcompat.R.attr.colorPrimary
};
private static final int[] APPCOMPAT_COLOR_PRIMARY_DARK_ATTRS = {
android.support.v7.appcompat.R.attr.colorPrimaryDark
};
private static final int[] APPCOMPAT_COLOR_ACCENT_ATTRS = {
android.support.v7.appcompat.R.attr.colorAccent
};
public static int getColorPrimaryResId(Context context) {
return getResId(context, APPCOMPAT_COLOR_PRIMARY_ATTRS);
}
public static int getColorPrimaryDarkResId(Context context) {
return getResId(context, APPCOMPAT_COLOR_PRIMARY_DARK_ATTRS);
}
public static int getColorAccentResId(Context context) {
return getResId(context, APPCOMPAT_COLOR_ACCENT_ATTRS);
}
public static int getTextColorPrimaryResId(Context context) {
return getResId(context, new int[]{android.R.attr.textColorPrimary});
}
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
public static int getStatusBarColorResId(Context context) {
return getResId(context, new int[]{android.R.attr.statusBarColor});
}
public static int getWindowBackgroundResId(Context context) {
return getResId(context, new int[]{android.R.attr.windowBackground});
}
private static int getResId(Context context, int[] attrs) {
TypedArray a = context.obtainStyledAttributes(attrs);
final int resId = a.getResourceId(0, INVALID_ID);
if (a != null) {
a.recycle();
}
return resId;
}
}