// Path: app/src/main/java/com/getiton/android/app/rgb/ColorUtils.java
// public class ColorUtils {
//     public static int[] splitColors(int color) {
//         int r = (color >> 16) & 0xFF;
//         int g = (color >> 8) & 0xFF;
//         int b = (color) & 0xFF;
//         return new int[]{r, g, b};
//     }
// 
//     public static int combineRGB(int r, int g, int b) {
//         r = (r << 16) & 0x00FF0000; //Shift red 16-bits and mask out other stuff
//         g = (g << 8) & 0x0000FF00; //Shift Green 8-bits and mask out other stuff
//         b = b & 0x000000FF; //Mask out anything not blue.
// 
//         return 0xFF000000 | r | g | b; //0xFF000000 for 100% Alpha. Bitwise OR everything together.
// 
//     }
// }
// 
// Path: app/src/main/java/com/getiton/android/app/rgb/color/SavedColor.java
// public class SavedColor implements Parcelable {
// 
//     private int id;
//     private int mColor = 0;
// 
//     public SavedColor(int id, int color) {
//         this.id = id;
//         this.mColor = color;
//     }
// 
//     public SavedColor(int id, boolean addNewColor) {
//         this.id = id;
//         this.mColor = 0;
//     }
// 
//     public void setColor(int color) {
//         mColor = color;
//     }
// 
//     public int getId() {
//         return id;
//     }
// 
//     protected SavedColor(Parcel in) {
//         id = in.readInt();
//         mColor = in.readInt();
//     }
// 
//     public static final Creator<SavedColor> CREATOR = new Creator<SavedColor>() {
//         @Override
//         public SavedColor createFromParcel(Parcel in) {
//             return new SavedColor(in);
//         }
// 
//         @Override
//         public SavedColor[] newArray(int size) {
//             return new SavedColor[size];
//         }
//     };
// 
//     public boolean isAddNewColor() {
//         return this.id==-1;
//     }
// 
//     public int getColor() {
//         return mColor;
//     }
// 
//     @Override
//     public int describeContents() {
//         return 0;
//     }
// 
//     @Override
//     public void writeToParcel(Parcel dest, int flags) {
//         dest.writeInt(id);
//         dest.writeInt(mColor);
//     }
// }
// 
// Path: app/src/main/java/com/getiton/android/app/ui/views/text/LgioEditText.java
// public class LgioEditText extends EditText {
// 
//     public LgioEditText(Context context) {
//         super(context);
//     }
// 
//     public LgioEditText(Context context, AttributeSet attrs) {
//         super(context, attrs);
//         init(context, attrs, 0);
//     }
// 
//     public LgioEditText(Context context, AttributeSet attrs, int defStyle) {
//         super(context, attrs, defStyle);
//         init(context, attrs, defStyle);
//     }
// 
//     private void init(Context context, AttributeSet attrs, int defStyle) {
//         if (!isInEditMode()) {
//             TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.LgioTextView, defStyle, 0);
// 
//             if (a != null) {
//                 try {
//                     String typeFaceFileName = a.getString(R.styleable.LgioTextView_typeface_file_name);
//                     if (typeFaceFileName != null) {
//                         Typeface typeFace = TypeFaceUtils.getInstance(context).getTypeFaceByNameFromAssets(typeFaceFileName);
//                         if (typeFace != null) {
//                             setTypeface(typeFace);
//                         }
//                     }
//                 } finally {
//                     a.recycle();
//                 }
//             }
//         }
//     }
// }


import android.graphics.PorterDuff;
import android.graphics.PorterDuffColorFilter;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.DialogFragment;
import android.support.v7.app.AppCompatDialogFragment;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.SeekBar;
import com.getiton.android.app.rgb.ColorUtils;
import com.getiton.android.app.rgb.color.SavedColor;
import com.getiton.android.app.ui.views.text.LgioEditText;
import butterknife.ButterKnife;
import butterknife.InjectView;
import com.christophesmet.ledsgetiton.R;
        if (mColor != null) {
            int[] rgb = ColorUtils.splitColors(mColor.getColor());
            setR(rgb[0]);
            setG(rgb[1]);
            setB(rgb[2]);
        }
    }

    private void setR(int requestedValue) {
        requestedValue = normalizeColor(requestedValue);
        mSeekbarR.setProgress(requestedValue);
        mTxtRValue.setText(String.valueOf(requestedValue));
        updatePreviewColor();
    }

    private void setG(int requestedValue) {
        requestedValue = normalizeColor(requestedValue);
        mSeekbarG.setProgress(requestedValue);
        mTxtGValue.setText(String.valueOf(requestedValue));
        updatePreviewColor();
    }

    private void setB(int requestedValue) {
        requestedValue = normalizeColor(requestedValue);
        mSeekbarB.setProgress(requestedValue);
        mTxtBValue.setText(String.valueOf(requestedValue));
        updatePreviewColor();
    }

    private void updatePreviewColor() {
// Path: app/src/main/java/com/getiton/android/app/rgb/ColorUtils.java
// public class ColorUtils {
//     public static int[] splitColors(int color) {
//         int r = (color >> 16) & 0xFF;
//         int g = (color >> 8) & 0xFF;
//         int b = (color) & 0xFF;
//         return new int[]{r, g, b};
//     }
// 
//     public static int combineRGB(int r, int g, int b) {
//         r = (r << 16) & 0x00FF0000; //Shift red 16-bits and mask out other stuff
//         g = (g << 8) & 0x0000FF00; //Shift Green 8-bits and mask out other stuff
//         b = b & 0x000000FF; //Mask out anything not blue.
// 
//         return 0xFF000000 | r | g | b; //0xFF000000 for 100% Alpha. Bitwise OR everything together.
// 
//     }
// }
// 
// Path: app/src/main/java/com/getiton/android/app/rgb/color/SavedColor.java
// public class SavedColor implements Parcelable {
// 
//     private int id;
//     private int mColor = 0;
// 
//     public SavedColor(int id, int color) {
//         this.id = id;
//         this.mColor = color;
//     }
// 
//     public SavedColor(int id, boolean addNewColor) {
//         this.id = id;
//         this.mColor = 0;
//     }
// 
//     public void setColor(int color) {
//         mColor = color;
//     }
// 
//     public int getId() {
//         return id;
//     }
// 
//     protected SavedColor(Parcel in) {
//         id = in.readInt();
//         mColor = in.readInt();
//     }
// 
//     public static final Creator<SavedColor> CREATOR = new Creator<SavedColor>() {
//         @Override
//         public SavedColor createFromParcel(Parcel in) {
//             return new SavedColor(in);
//         }
// 
//         @Override
//         public SavedColor[] newArray(int size) {
//             return new SavedColor[size];
//         }
//     };
// 
//     public boolean isAddNewColor() {
//         return this.id==-1;
//     }
// 
//     public int getColor() {
//         return mColor;
//     }
// 
//     @Override
//     public int describeContents() {
//         return 0;
//     }
// 
//     @Override
//     public void writeToParcel(Parcel dest, int flags) {
//         dest.writeInt(id);
//         dest.writeInt(mColor);
//     }
// }
// 
// Path: app/src/main/java/com/getiton/android/app/ui/views/text/LgioEditText.java
// public class LgioEditText extends EditText {
// 
//     public LgioEditText(Context context) {
//         super(context);
//     }
// 
//     public LgioEditText(Context context, AttributeSet attrs) {
//         super(context, attrs);
//         init(context, attrs, 0);
//     }
// 
//     public LgioEditText(Context context, AttributeSet attrs, int defStyle) {
//         super(context, attrs, defStyle);
//         init(context, attrs, defStyle);
//     }
// 
//     private void init(Context context, AttributeSet attrs, int defStyle) {
//         if (!isInEditMode()) {
//             TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.LgioTextView, defStyle, 0);
// 
//             if (a != null) {
//                 try {
//                     String typeFaceFileName = a.getString(R.styleable.LgioTextView_typeface_file_name);
//                     if (typeFaceFileName != null) {
//                         Typeface typeFace = TypeFaceUtils.getInstance(context).getTypeFaceByNameFromAssets(typeFaceFileName);
//                         if (typeFace != null) {
//                             setTypeface(typeFace);
//                         }
//                     }
//                 } finally {
//                     a.recycle();
//                 }
//             }
//         }
//     }
// }


// Path: app/src/main/java/com/getiton/android/app/dialog/EditColorDialogFragment.java
import android.graphics.PorterDuff;
import android.graphics.PorterDuffColorFilter;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.DialogFragment;
import android.support.v7.app.AppCompatDialogFragment;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.SeekBar;
import com.getiton.android.app.rgb.ColorUtils;
import com.getiton.android.app.rgb.color.SavedColor;
import com.getiton.android.app.ui.views.text.LgioEditText;
import butterknife.ButterKnife;
import butterknife.InjectView;
import com.christophesmet.ledsgetiton.R;

        if (mColor != null) {
            int[] rgb = ColorUtils.splitColors(mColor.getColor());
            setR(rgb[0]);
            setG(rgb[1]);
            setB(rgb[2]);
        }
    }

    private void setR(int requestedValue) {
        requestedValue = normalizeColor(requestedValue);
        mSeekbarR.setProgress(requestedValue);
        mTxtRValue.setText(String.valueOf(requestedValue));
        updatePreviewColor();
    }

    private void setG(int requestedValue) {
        requestedValue = normalizeColor(requestedValue);
        mSeekbarG.setProgress(requestedValue);
        mTxtGValue.setText(String.valueOf(requestedValue));
        updatePreviewColor();
    }

    private void setB(int requestedValue) {
        requestedValue = normalizeColor(requestedValue);
        mSeekbarB.setProgress(requestedValue);
        mTxtBValue.setText(String.valueOf(requestedValue));
        updatePreviewColor();
    }

    private void updatePreviewColor() {
        mFrmColor.setBackgroundColor(ColorUtils.combineRGB(mSeekbarR.getProgress(), mSeekbarG.getProgress(), mSeekbarB.getProgress()));