// Path: app/src/main/java/com/arexperiments/justaline/AppSettings.java
// public class AppSettings {
// 
//     private static final Vector3f color = new Vector3f(1f, 1f, 1f);
// 
//     private static final float strokeDrawDistance = 0.13f;
// 
//     private static final float minDistance = 0.000001f;
// 
//     private static final float nearClip = 0.001f;
// 
//     private static final float farClip = 100.0f;
// 
//     private static final float smoothing = 0.07f;
// 
//     private static final int smoothingCount = 1500;
// 
//     public enum LineWidth {
//         SMALL(0.006f),
//         MEDIUM(0.011f),
//         LARGE(0.020f);
// 
//         private final float width;
// 
//         LineWidth(float i) {
//             this.width = i;
//         }
// 
//         public float getWidth() {
//             return width;
//         }
//     }
// 
//     public static float getStrokeDrawDistance() {
//         return strokeDrawDistance;
//     }
// 
//     public static Vector3f getColor() {
//         return color;
//     }
// 
//     public static float getMinDistance() {
//         return minDistance;
//     }
// 
//     static float getNearClip() {
//         return nearClip;
//     }
// 
//     static float getFarClip() {
//         return farClip;
//     }
// 
//     public static float getSmoothing() {
//         return smoothing;
//     }
// 
//     public static int getSmoothingCount() {
//         return smoothingCount;
//     }
// }


import android.animation.Animator;
import android.content.Context;
import android.support.constraint.ConstraintLayout;
import android.util.AttributeSet;
import android.util.Pair;
import android.util.TypedValue;
import android.view.MotionEvent;
import android.view.View;
import android.view.accessibility.AccessibilityEvent;
import com.arexperiments.justaline.AppSettings;
import com.arexperiments.justaline.R;
        mLargeButton.setOnClickListener(this);

        mBrushButton.setOnTouchListener(new OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if (event.getAction() == MotionEvent.ACTION_DOWN) {
                    performClick();
                } else if (event.getAction() == MotionEvent.ACTION_MOVE && mIsOpen) {
                    //get the point where we let go
                    float yloc = event.getRawY();

                    AppSettings.LineWidth lineWidth;

                    //determine which button was released over
                    if (mSmallButtonLoc[1] < yloc && yloc < (mSmallButtonLoc[1] + mSmallButton
                            .getHeight())) {
                        //prevent calling an update when not needed
                        if (mSelectedBrush != SMALL_BRUSH) {
                            lineWidth = AppSettings.LineWidth.SMALL;
                            onBrushSizeSelected(lineWidth);
                        }
                    } else if (mMediumButtonLoc[1] < yloc && yloc < (mMediumButtonLoc[1]
                            + mMediumButton.getHeight())) {
                        if (mSelectedBrush != MEDIUM_BRUSH) {
                            lineWidth = AppSettings.LineWidth.MEDIUM;
                            onBrushSizeSelected(lineWidth);
                        }
                    } else if (mLargeButtonLoc[1] < yloc && yloc < (mLargeButtonLoc[1]
                            + mLargeButton.getHeight())) {
                        if (mSelectedBrush != LARGE_BRUSH) {
// Path: app/src/main/java/com/arexperiments/justaline/AppSettings.java
// public class AppSettings {
// 
//     private static final Vector3f color = new Vector3f(1f, 1f, 1f);
// 
//     private static final float strokeDrawDistance = 0.13f;
// 
//     private static final float minDistance = 0.000001f;
// 
//     private static final float nearClip = 0.001f;
// 
//     private static final float farClip = 100.0f;
// 
//     private static final float smoothing = 0.07f;
// 
//     private static final int smoothingCount = 1500;
// 
//     public enum LineWidth {
//         SMALL(0.006f),
//         MEDIUM(0.011f),
//         LARGE(0.020f);
// 
//         private final float width;
// 
//         LineWidth(float i) {
//             this.width = i;
//         }
// 
//         public float getWidth() {
//             return width;
//         }
//     }
// 
//     public static float getStrokeDrawDistance() {
//         return strokeDrawDistance;
//     }
// 
//     public static Vector3f getColor() {
//         return color;
//     }
// 
//     public static float getMinDistance() {
//         return minDistance;
//     }
// 
//     static float getNearClip() {
//         return nearClip;
//     }
// 
//     static float getFarClip() {
//         return farClip;
//     }
// 
//     public static float getSmoothing() {
//         return smoothing;
//     }
// 
//     public static int getSmoothingCount() {
//         return smoothingCount;
//     }
// }


// Path: app/src/main/java/com/arexperiments/justaline/view/BrushSelector.java
import android.animation.Animator;
import android.content.Context;
import android.support.constraint.ConstraintLayout;
import android.util.AttributeSet;
import android.util.Pair;
import android.util.TypedValue;
import android.view.MotionEvent;
import android.view.View;
import android.view.accessibility.AccessibilityEvent;
import com.arexperiments.justaline.AppSettings;
import com.arexperiments.justaline.R;

        mLargeButton.setOnClickListener(this);

        mBrushButton.setOnTouchListener(new OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if (event.getAction() == MotionEvent.ACTION_DOWN) {
                    performClick();
                } else if (event.getAction() == MotionEvent.ACTION_MOVE && mIsOpen) {
                    //get the point where we let go
                    float yloc = event.getRawY();

                    AppSettings.LineWidth lineWidth;

                    //determine which button was released over
                    if (mSmallButtonLoc[1] < yloc && yloc < (mSmallButtonLoc[1] + mSmallButton
                            .getHeight())) {
                        //prevent calling an update when not needed
                        if (mSelectedBrush != SMALL_BRUSH) {
                            lineWidth = AppSettings.LineWidth.SMALL;
                            onBrushSizeSelected(lineWidth);
                        }
                    } else if (mMediumButtonLoc[1] < yloc && yloc < (mMediumButtonLoc[1]
                            + mMediumButton.getHeight())) {
                        if (mSelectedBrush != MEDIUM_BRUSH) {
                            lineWidth = AppSettings.LineWidth.MEDIUM;
                            onBrushSizeSelected(lineWidth);
                        }
                    } else if (mLargeButtonLoc[1] < yloc && yloc < (mLargeButtonLoc[1]
                            + mLargeButton.getHeight())) {
                        if (mSelectedBrush != LARGE_BRUSH) {
                            lineWidth = AppSettings.LineWidth.LARGE;