// Path: baselibrary/src/main/java/com/dim/skin/SkinConfig.java
// public class SkinConfig {
// 
//     public static SkinStyle getSkinStyle(Context context) {
//         SharedPreferences sharedPreferences = context.getSharedPreferences("SkinStyle",
//                 Activity.MODE_PRIVATE);
//         boolean nightMode = sharedPreferences.getBoolean("nightMode", false);
//         return nightMode ? SkinStyle.Dark : SkinStyle.Light;
//     }
// 
//     public static void setSkinStyle(Context context, SkinStyle skinStyle) {
//         SharedPreferences.Editor editor = context.getSharedPreferences("SkinStyle",
//                 Activity.MODE_PRIVATE).edit();
//         editor.putBoolean("nightMode", skinStyle == SkinStyle.Dark).apply();
//     }
// 
// }
// 
// Path: baselibrary/src/main/java/com/dim/skin/SkinStyle.java
// public enum SkinStyle {
// 
//     Dark,
//     Light//默认Light
// }
// 
// Path: baselibrary/src/main/java/com/dim/widget/LinearLayout.java
// public class LinearLayout extends android.widget.LinearLayout implements CircleRevealEnable,SkinEnable {
// 
//     private CircleRevealHelper mCircleRevealHelper ;
//     private  SkinHelper mSkinHelper;
// 
//     public LinearLayout(Context context) {
//         super(context);
//         init(null);
//     }
// 
//     public LinearLayout(Context context, AttributeSet attrs) {
//         super(context, attrs);
//         init(attrs);
//     }
// 
//     private void init(AttributeSet attrs) {
// 
//         mSkinHelper=SkinHelper.create(this);
//         mSkinHelper.init(this, attrs);
//         mSkinHelper.setCurrentTheme();
//         mCircleRevealHelper=new CircleRevealHelper(this);
//     }
// 
//     @TargetApi(Build.VERSION_CODES.HONEYCOMB)
//     public LinearLayout(Context context, AttributeSet attrs, int defStyleAttr) {
//         super(context, attrs, defStyleAttr);
//         init(attrs);
//     }
// 
//     @Override
//     public void setDividerDrawable(Drawable divider) {
//         super.setDividerDrawable(divider);
//     }
// 
//     @Override
//     public void setOnClickListener(OnClickListener l) {
//         super.setOnClickListener(new SingleClickListener(l));
//     }
// 
//     @Override
//     public void draw(Canvas canvas) {
// 
//         mSkinHelper.preDraw(this);
//         mCircleRevealHelper.draw(canvas);
//     }
// 
// 
//     @Override
//     public void superDraw(Canvas canvas) {
//         super.draw(canvas);
//     }
// 
// 
//     @Override
//     public CRAnimation circularReveal(int centerX, int centerY, float startRadius, float endRadius) {
// 
//         return mCircleRevealHelper.circularReveal(centerX,centerY,startRadius,endRadius);
//     }
// 
//     @Override
//     public void setSkinStyle(SkinStyle skinStyle) {
// 
// 
//         mSkinHelper.setSkinStyle(skinStyle);
//     }
// 
//     @Override
//     public LayoutParams generateLayoutParams(AttributeSet attrs) {
// 
// 
//         return new SLayoutParams(getContext(),attrs);
//     }
// 
//     @Override
//     public void addView(View child, int index, ViewGroup.LayoutParams params) {
//         super.addView(child, index, params);
//         if(params instanceof SLayoutParams){
//             ((SLayoutParams) params).setSkinHelper(child);
//         }
//     }
// 
//     @Override
//     protected LayoutParams generateDefaultLayoutParams() {
//         return super.generateDefaultLayoutParams();
//     }
// 
// 
//     public  class  SLayoutParams extends android.widget.LinearLayout.LayoutParams implements SLayoutParamsI  {
// 
//         private DefaultViewSkinHelper mSkinHelper;
// 
//         public SLayoutParams(Context c, AttributeSet attrs) {
//             super(c, attrs);
//             mSkinHelper=SkinHelper.createDeFault(c);
//             mSkinHelper.init(null,attrs);
//         }
// 
//         public void setSkinHelper(View view){
//             mSkinHelper.setView(view);
//         }
//         public void setSkinStyle(SkinStyle skinStyle){
//             mSkinHelper.setSkinStyle(skinStyle);
//         }
// 
//         public SLayoutParams(int width, int height) {
//             super(width, height);
//         }
// 
//         public SLayoutParams(int width, int height, float weight) {
//             super(width, height, weight);
//         }
// 
//         public SLayoutParams(ViewGroup.LayoutParams p) {
//             super(p);
//         }
// 
//         public SLayoutParams(MarginLayoutParams source) {
//             super(source);
//         }
// 
//         @TargetApi(Build.VERSION_CODES.KITKAT)
//         public SLayoutParams(LayoutParams source) {
//             super(source);
//         }
//     }
// }


import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.widget.ListView;
import android.widget.TextView;
import com.dim.skin.SkinConfig;
import com.dim.skin.SkinStyle;
import com.dim.widget.LinearLayout;
package com.dim.skin.hepler;



/**
 * /**
 *
 * @attr ref android.R.styleable#View_background
 * @attr ref android.R.styleable#TextView_text
 * @attr ref android.R.styleable#TextView_textColor
 * @attr ref android.R.styleable#TextView_textColorHighlight
 * @attr ref android.R.styleable#TextView_textColorHint
 * @attr ref android.R.styleable#TextView_textAppearance
 * @attr ref android.R.styleable#TextView_textColorLink
 * Created by dim on 15/8/27.
 */
public abstract class SkinHelper {


    private SkinStyle mSkinStyle;
    private Context mContext;

    public SkinHelper(Context context) {
// Path: baselibrary/src/main/java/com/dim/skin/SkinConfig.java
// public class SkinConfig {
// 
//     public static SkinStyle getSkinStyle(Context context) {
//         SharedPreferences sharedPreferences = context.getSharedPreferences("SkinStyle",
//                 Activity.MODE_PRIVATE);
//         boolean nightMode = sharedPreferences.getBoolean("nightMode", false);
//         return nightMode ? SkinStyle.Dark : SkinStyle.Light;
//     }
// 
//     public static void setSkinStyle(Context context, SkinStyle skinStyle) {
//         SharedPreferences.Editor editor = context.getSharedPreferences("SkinStyle",
//                 Activity.MODE_PRIVATE).edit();
//         editor.putBoolean("nightMode", skinStyle == SkinStyle.Dark).apply();
//     }
// 
// }
// 
// Path: baselibrary/src/main/java/com/dim/skin/SkinStyle.java
// public enum SkinStyle {
// 
//     Dark,
//     Light//默认Light
// }
// 
// Path: baselibrary/src/main/java/com/dim/widget/LinearLayout.java
// public class LinearLayout extends android.widget.LinearLayout implements CircleRevealEnable,SkinEnable {
// 
//     private CircleRevealHelper mCircleRevealHelper ;
//     private  SkinHelper mSkinHelper;
// 
//     public LinearLayout(Context context) {
//         super(context);
//         init(null);
//     }
// 
//     public LinearLayout(Context context, AttributeSet attrs) {
//         super(context, attrs);
//         init(attrs);
//     }
// 
//     private void init(AttributeSet attrs) {
// 
//         mSkinHelper=SkinHelper.create(this);
//         mSkinHelper.init(this, attrs);
//         mSkinHelper.setCurrentTheme();
//         mCircleRevealHelper=new CircleRevealHelper(this);
//     }
// 
//     @TargetApi(Build.VERSION_CODES.HONEYCOMB)
//     public LinearLayout(Context context, AttributeSet attrs, int defStyleAttr) {
//         super(context, attrs, defStyleAttr);
//         init(attrs);
//     }
// 
//     @Override
//     public void setDividerDrawable(Drawable divider) {
//         super.setDividerDrawable(divider);
//     }
// 
//     @Override
//     public void setOnClickListener(OnClickListener l) {
//         super.setOnClickListener(new SingleClickListener(l));
//     }
// 
//     @Override
//     public void draw(Canvas canvas) {
// 
//         mSkinHelper.preDraw(this);
//         mCircleRevealHelper.draw(canvas);
//     }
// 
// 
//     @Override
//     public void superDraw(Canvas canvas) {
//         super.draw(canvas);
//     }
// 
// 
//     @Override
//     public CRAnimation circularReveal(int centerX, int centerY, float startRadius, float endRadius) {
// 
//         return mCircleRevealHelper.circularReveal(centerX,centerY,startRadius,endRadius);
//     }
// 
//     @Override
//     public void setSkinStyle(SkinStyle skinStyle) {
// 
// 
//         mSkinHelper.setSkinStyle(skinStyle);
//     }
// 
//     @Override
//     public LayoutParams generateLayoutParams(AttributeSet attrs) {
// 
// 
//         return new SLayoutParams(getContext(),attrs);
//     }
// 
//     @Override
//     public void addView(View child, int index, ViewGroup.LayoutParams params) {
//         super.addView(child, index, params);
//         if(params instanceof SLayoutParams){
//             ((SLayoutParams) params).setSkinHelper(child);
//         }
//     }
// 
//     @Override
//     protected LayoutParams generateDefaultLayoutParams() {
//         return super.generateDefaultLayoutParams();
//     }
// 
// 
//     public  class  SLayoutParams extends android.widget.LinearLayout.LayoutParams implements SLayoutParamsI  {
// 
//         private DefaultViewSkinHelper mSkinHelper;
// 
//         public SLayoutParams(Context c, AttributeSet attrs) {
//             super(c, attrs);
//             mSkinHelper=SkinHelper.createDeFault(c);
//             mSkinHelper.init(null,attrs);
//         }
// 
//         public void setSkinHelper(View view){
//             mSkinHelper.setView(view);
//         }
//         public void setSkinStyle(SkinStyle skinStyle){
//             mSkinHelper.setSkinStyle(skinStyle);
//         }
// 
//         public SLayoutParams(int width, int height) {
//             super(width, height);
//         }
// 
//         public SLayoutParams(int width, int height, float weight) {
//             super(width, height, weight);
//         }
// 
//         public SLayoutParams(ViewGroup.LayoutParams p) {
//             super(p);
//         }
// 
//         public SLayoutParams(MarginLayoutParams source) {
//             super(source);
//         }
// 
//         @TargetApi(Build.VERSION_CODES.KITKAT)
//         public SLayoutParams(LayoutParams source) {
//             super(source);
//         }
//     }
// }


// Path: baselibrary/src/main/java/com/dim/skin/hepler/SkinHelper.java
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.widget.ListView;
import android.widget.TextView;
import com.dim.skin.SkinConfig;
import com.dim.skin.SkinStyle;
import com.dim.widget.LinearLayout;

package com.dim.skin.hepler;



/**
 * /**
 *
 * @attr ref android.R.styleable#View_background
 * @attr ref android.R.styleable#TextView_text
 * @attr ref android.R.styleable#TextView_textColor
 * @attr ref android.R.styleable#TextView_textColorHighlight
 * @attr ref android.R.styleable#TextView_textColorHint
 * @attr ref android.R.styleable#TextView_textAppearance
 * @attr ref android.R.styleable#TextView_textColorLink
 * Created by dim on 15/8/27.
 */
public abstract class SkinHelper {


    private SkinStyle mSkinStyle;
    private Context mContext;

    public SkinHelper(Context context) {
        mSkinStyle = SkinConfig.getSkinStyle(context);