package com.ftinc.scoop.util;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.drawable.Drawable;
import android.support.annotation.AttrRes;
import android.support.annotation.ColorInt;
import android.support.annotation.StyleRes;
import com.ftinc.scoop.R;
import org.w3c.dom.Attr;
/**
* Project: ThemeEngineTest
* Package: com.ftinc.scoop.util
* Created by drew.heavner on 6/8/16.
*/
public class AttrUtils {
private AttrUtils(){
throw new IllegalAccessError("This class is not allowed to be instantiated");
}
/**
* Get the selectableItemBackground attribute drawable
* @return
*/
public static Drawable getSelectableItemBackground(Context ctx){
int[] attrs = new int[] { R.attr.selectableItemBackground /* index 0 */};
TypedArray ta = ctx.obtainStyledAttributes(attrs);
Drawable drawableFromTheme = ta.getDrawable(0 /* index */);
ta.recycle();
return drawableFromTheme;
}
/**
* Get the selectableItemBackground attribute drawable
* @return
*/
public static Drawable getSelectableItemBackgroundBorderless(Context ctx){
int[] attrs = new int[] { R.attr.selectableItemBackgroundBorderless /* index 0 */};
TypedArray ta = ctx.obtainStyledAttributes(attrs);
Drawable drawableFromTheme = ta.getDrawable(0 /* index */);
ta.recycle();
return drawableFromTheme;
}
/**
* Get the color value for give attribute
*/
@ColorInt
public static int getColorAttr(Context ctx, @AttrRes int colorAttrId){
int[] attrs = new int[] { colorAttrId /* index 0 */};
TypedArray ta = ctx.obtainStyledAttributes(attrs);
int colorFromTheme = ta.getColor(0, 0);
ta.recycle();
return colorFromTheme;
}
/**
* Get color from a specified style resource for a specified Id
*/
@ColorInt
public static int getColorAttr(Context ctx, @StyleRes int styleResId, @AttrRes int colorAttrId){
TypedArray a = ctx.obtainStyledAttributes(styleResId, new int[]{colorAttrId});
int colorFromTheme = a.getColor(0, 0);
a.recycle();
return colorFromTheme;
}
/**
* Get a Drawable attribute value
*/
public static Drawable getDrawableAttr(Context ctx, @AttrRes int drawableAttrId){
int[] attrs = new int[] { drawableAttrId /* index 0 */};
TypedArray ta = ctx.obtainStyledAttributes(attrs);
Drawable drawable = ta.getDrawable(0);
ta.recycle();
return drawable;
}
@StyleRes
public static int getResourceAttr(Context ctx, @AttrRes int resourceAttrId){
TypedArray a = ctx.obtainStyledAttributes(new int[]{resourceAttrId});
int resourceId = a.getResourceId(0, -1);
a.recycle();
return resourceId;
}
}