package ren.solid.skinloader.attr; import android.util.Log; /** * Created by _SOLID * Date:2016/4/14 * Time:9:47 */ public class AttrFactory { private static String TAG = "AttrFactory"; public static final String BACKGROUND = "background"; public static final String TEXT_COLOR = "textColor"; public static final String TAB_INDICATOR_COLOR = "tabIndicatorColor"; public static final String CONTENT_SCRIM_COLOR = "contentScrimColor"; public static final String BACKGROUND_TINTLIST = "backgroundTint"; public static final String NAVIGATION_VIEW_MENU = "navigationViewMenu"; public static SkinAttr get(String attrName, int attrValueRefId, String attrValueRefName, String typeName) { Log.i(TAG, "attrName:" + attrName); SkinAttr mSkinAttr = null; if (BACKGROUND.equals(attrName)) { mSkinAttr = new BackgroundAttr(); Log.i(TAG, "create:BackgroundAttr"); } else if (TEXT_COLOR.equals(attrName)) { mSkinAttr = new TextColorAttr(); Log.i(TAG, "create:TextColorAttr"); } else if (TAB_INDICATOR_COLOR.equals(attrName)) { mSkinAttr = new TabLayoutAttr(); Log.i(TAG, "create:TabLayoutAttr"); } else if (CONTENT_SCRIM_COLOR.equals(attrName)) { mSkinAttr = new CollapsingToolbarLayoutAttr(); Log.i(TAG, "create:CollapsingToolbarLayoutAttr"); } else if (BACKGROUND_TINTLIST.equals(attrName)) { mSkinAttr = new FabButtonAttr(); Log.i(TAG, "create:FabButtonAttr"); } else if (NAVIGATION_VIEW_MENU.equals(attrName)) { mSkinAttr = new NavigationViewAttr(); Log.i(TAG, "create:FabButtonAttr"); } else { return null; } mSkinAttr.attrName = attrName; mSkinAttr.attrValueRefId = attrValueRefId; mSkinAttr.attrValueRefName = attrValueRefName; mSkinAttr.attrValueTypeName = typeName; return mSkinAttr; } /** * 检测属性是否被支持 * * @param attrName * @return true : supported <br> * false: not supported */ public static boolean isSupportedAttr(String attrName) { if (BACKGROUND.equals(attrName)) { return true; } if (TEXT_COLOR.equals(attrName)) { return true; } if (TAB_INDICATOR_COLOR.equals(attrName)) { return true; } if (CONTENT_SCRIM_COLOR.equals(attrName)) { return true; } if (BACKGROUND_TINTLIST.equals(attrName)) { return true; } return NAVIGATION_VIEW_MENU.equals(attrName); } }