[
  {
    "path": ".gitignore",
    "content": "*.iml\n.gradle\n/local.properties\n.idea\n.DS_Store\n/build\n/captures\n"
  },
  {
    "path": "build.gradle",
    "content": "// Top-level build file where you can add configuration options common to all sub-projects/modules.\n\nbuildscript {\n    repositories {\n        jcenter()\n    }\n    dependencies {\n        classpath 'com.android.tools.build:gradle:2.1.2'\n        classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'\n\n        // NOTE: Do not place your application dependencies here; they belong\n        // in the individual module build.gradle files\n    }\n}\n\nallprojects {\n    repositories {\n        jcenter()\n        flatDir {\n            dirs 'libs'\n        }\n    }\n}\n\ntask clean(type: Delete) {\n    delete rootProject.buildDir\n}\n"
  },
  {
    "path": "gradle/wrapper/gradle-wrapper.properties",
    "content": "#Mon Dec 28 10:00:20 PST 2015\ndistributionBase=GRADLE_USER_HOME\ndistributionPath=wrapper/dists\nzipStoreBase=GRADLE_USER_HOME\nzipStorePath=wrapper/dists\ndistributionUrl=https\\://services.gradle.org/distributions/gradle-2.10-all.zip\n"
  },
  {
    "path": "gradle.properties",
    "content": "# Project-wide Gradle settings.\n\n# IDE (e.g. Android Studio) users:\n# Gradle settings configured through the IDE *will override*\n# any settings specified in this file.\n\n# For more details on how to configure your build environment visit\n# http://www.gradle.org/docs/current/userguide/build_environment.html\n\n# Specifies the JVM arguments used for the daemon process.\n# The setting is particularly useful for tweaking memory settings.\n# Default value: -Xmx10248m -XX:MaxPermSize=256m\n# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8\n\n# When configured, Gradle will run in incubating parallel mode.\n# This option should only be used with decoupled projects. More details, visit\n# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects\n# org.gradle.parallel=true"
  },
  {
    "path": "gradlew",
    "content": "#!/usr/bin/env bash\n\n##############################################################################\n##\n##  Gradle start up script for UN*X\n##\n##############################################################################\n\n# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.\nDEFAULT_JVM_OPTS=\"\"\n\nAPP_NAME=\"Gradle\"\nAPP_BASE_NAME=`basename \"$0\"`\n\n# Use the maximum available, or set MAX_FD != -1 to use that value.\nMAX_FD=\"maximum\"\n\nwarn ( ) {\n    echo \"$*\"\n}\n\ndie ( ) {\n    echo\n    echo \"$*\"\n    echo\n    exit 1\n}\n\n# OS specific support (must be 'true' or 'false').\ncygwin=false\nmsys=false\ndarwin=false\ncase \"`uname`\" in\n  CYGWIN* )\n    cygwin=true\n    ;;\n  Darwin* )\n    darwin=true\n    ;;\n  MINGW* )\n    msys=true\n    ;;\nesac\n\n# Attempt to set APP_HOME\n# Resolve links: $0 may be a link\nPRG=\"$0\"\n# Need this for relative symlinks.\nwhile [ -h \"$PRG\" ] ; do\n    ls=`ls -ld \"$PRG\"`\n    link=`expr \"$ls\" : '.*-> \\(.*\\)$'`\n    if expr \"$link\" : '/.*' > /dev/null; then\n        PRG=\"$link\"\n    else\n        PRG=`dirname \"$PRG\"`\"/$link\"\n    fi\ndone\nSAVED=\"`pwd`\"\ncd \"`dirname \\\"$PRG\\\"`/\" >/dev/null\nAPP_HOME=\"`pwd -P`\"\ncd \"$SAVED\" >/dev/null\n\nCLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar\n\n# Determine the Java command to use to start the JVM.\nif [ -n \"$JAVA_HOME\" ] ; then\n    if [ -x \"$JAVA_HOME/jre/sh/java\" ] ; then\n        # IBM's JDK on AIX uses strange locations for the executables\n        JAVACMD=\"$JAVA_HOME/jre/sh/java\"\n    else\n        JAVACMD=\"$JAVA_HOME/bin/java\"\n    fi\n    if [ ! -x \"$JAVACMD\" ] ; then\n        die \"ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME\n\nPlease set the JAVA_HOME variable in your environment to match the\nlocation of your Java installation.\"\n    fi\nelse\n    JAVACMD=\"java\"\n    which java >/dev/null 2>&1 || die \"ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.\n\nPlease set the JAVA_HOME variable in your environment to match the\nlocation of your Java installation.\"\nfi\n\n# Increase the maximum file descriptors if we can.\nif [ \"$cygwin\" = \"false\" -a \"$darwin\" = \"false\" ] ; then\n    MAX_FD_LIMIT=`ulimit -H -n`\n    if [ $? -eq 0 ] ; then\n        if [ \"$MAX_FD\" = \"maximum\" -o \"$MAX_FD\" = \"max\" ] ; then\n            MAX_FD=\"$MAX_FD_LIMIT\"\n        fi\n        ulimit -n $MAX_FD\n        if [ $? -ne 0 ] ; then\n            warn \"Could not set maximum file descriptor limit: $MAX_FD\"\n        fi\n    else\n        warn \"Could not query maximum file descriptor limit: $MAX_FD_LIMIT\"\n    fi\nfi\n\n# For Darwin, add options to specify how the application appears in the dock\nif $darwin; then\n    GRADLE_OPTS=\"$GRADLE_OPTS \\\"-Xdock:name=$APP_NAME\\\" \\\"-Xdock:icon=$APP_HOME/media/gradle.icns\\\"\"\nfi\n\n# For Cygwin, switch paths to Windows format before running java\nif $cygwin ; then\n    APP_HOME=`cygpath --path --mixed \"$APP_HOME\"`\n    CLASSPATH=`cygpath --path --mixed \"$CLASSPATH\"`\n    JAVACMD=`cygpath --unix \"$JAVACMD\"`\n\n    # We build the pattern for arguments to be converted via cygpath\n    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`\n    SEP=\"\"\n    for dir in $ROOTDIRSRAW ; do\n        ROOTDIRS=\"$ROOTDIRS$SEP$dir\"\n        SEP=\"|\"\n    done\n    OURCYGPATTERN=\"(^($ROOTDIRS))\"\n    # Add a user-defined pattern to the cygpath arguments\n    if [ \"$GRADLE_CYGPATTERN\" != \"\" ] ; then\n        OURCYGPATTERN=\"$OURCYGPATTERN|($GRADLE_CYGPATTERN)\"\n    fi\n    # Now convert the arguments - kludge to limit ourselves to /bin/sh\n    i=0\n    for arg in \"$@\" ; do\n        CHECK=`echo \"$arg\"|egrep -c \"$OURCYGPATTERN\" -`\n        CHECK2=`echo \"$arg\"|egrep -c \"^-\"`                                 ### Determine if an option\n\n        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition\n            eval `echo args$i`=`cygpath --path --ignore --mixed \"$arg\"`\n        else\n            eval `echo args$i`=\"\\\"$arg\\\"\"\n        fi\n        i=$((i+1))\n    done\n    case $i in\n        (0) set -- ;;\n        (1) set -- \"$args0\" ;;\n        (2) set -- \"$args0\" \"$args1\" ;;\n        (3) set -- \"$args0\" \"$args1\" \"$args2\" ;;\n        (4) set -- \"$args0\" \"$args1\" \"$args2\" \"$args3\" ;;\n        (5) set -- \"$args0\" \"$args1\" \"$args2\" \"$args3\" \"$args4\" ;;\n        (6) set -- \"$args0\" \"$args1\" \"$args2\" \"$args3\" \"$args4\" \"$args5\" ;;\n        (7) set -- \"$args0\" \"$args1\" \"$args2\" \"$args3\" \"$args4\" \"$args5\" \"$args6\" ;;\n        (8) set -- \"$args0\" \"$args1\" \"$args2\" \"$args3\" \"$args4\" \"$args5\" \"$args6\" \"$args7\" ;;\n        (9) set -- \"$args0\" \"$args1\" \"$args2\" \"$args3\" \"$args4\" \"$args5\" \"$args6\" \"$args7\" \"$args8\" ;;\n    esac\nfi\n\n# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules\nfunction splitJvmOpts() {\n    JVM_OPTS=(\"$@\")\n}\neval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS\nJVM_OPTS[${#JVM_OPTS[*]}]=\"-Dorg.gradle.appname=$APP_BASE_NAME\"\n\nexec \"$JAVACMD\" \"${JVM_OPTS[@]}\" -classpath \"$CLASSPATH\" org.gradle.wrapper.GradleWrapperMain \"$@\"\n"
  },
  {
    "path": "gradlew.bat",
    "content": "@if \"%DEBUG%\" == \"\" @echo off\n@rem ##########################################################################\n@rem\n@rem  Gradle startup script for Windows\n@rem\n@rem ##########################################################################\n\n@rem Set local scope for the variables with windows NT shell\nif \"%OS%\"==\"Windows_NT\" setlocal\n\n@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.\nset DEFAULT_JVM_OPTS=\n\nset DIRNAME=%~dp0\nif \"%DIRNAME%\" == \"\" set DIRNAME=.\nset APP_BASE_NAME=%~n0\nset APP_HOME=%DIRNAME%\n\n@rem Find java.exe\nif defined JAVA_HOME goto findJavaFromJavaHome\n\nset JAVA_EXE=java.exe\n%JAVA_EXE% -version >NUL 2>&1\nif \"%ERRORLEVEL%\" == \"0\" goto init\n\necho.\necho ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.\necho.\necho Please set the JAVA_HOME variable in your environment to match the\necho location of your Java installation.\n\ngoto fail\n\n:findJavaFromJavaHome\nset JAVA_HOME=%JAVA_HOME:\"=%\nset JAVA_EXE=%JAVA_HOME%/bin/java.exe\n\nif exist \"%JAVA_EXE%\" goto init\n\necho.\necho ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%\necho.\necho Please set the JAVA_HOME variable in your environment to match the\necho location of your Java installation.\n\ngoto fail\n\n:init\n@rem Get command-line arguments, handling Windowz variants\n\nif not \"%OS%\" == \"Windows_NT\" goto win9xME_args\nif \"%@eval[2+2]\" == \"4\" goto 4NT_args\n\n:win9xME_args\n@rem Slurp the command line arguments.\nset CMD_LINE_ARGS=\nset _SKIP=2\n\n:win9xME_args_slurp\nif \"x%~1\" == \"x\" goto execute\n\nset CMD_LINE_ARGS=%*\ngoto execute\n\n:4NT_args\n@rem Get arguments from the 4NT Shell from JP Software\nset CMD_LINE_ARGS=%$\n\n:execute\n@rem Setup the command line\n\nset CLASSPATH=%APP_HOME%\\gradle\\wrapper\\gradle-wrapper.jar\n\n@rem Execute Gradle\n\"%JAVA_EXE%\" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% \"-Dorg.gradle.appname=%APP_BASE_NAME%\" -classpath \"%CLASSPATH%\" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%\n\n:end\n@rem End local scope for the variables with windows NT shell\nif \"%ERRORLEVEL%\"==\"0\" goto mainEnd\n\n:fail\nrem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of\nrem the _cmd.exe /c_ return code!\nif  not \"\" == \"%GRADLE_EXIT_CONSOLE%\" exit 1\nexit /b 1\n\n:mainEnd\nif \"%OS%\"==\"Windows_NT\" endlocal\n\n:omega\n"
  },
  {
    "path": "library/.gitignore",
    "content": "/build\n"
  },
  {
    "path": "library/build.gradle",
    "content": "apply plugin: 'com.android.library'\napply plugin: 'com.github.dcendents.android-maven'\n\ngroup='com.github.bhargavms'\n\nandroid {\n    compileSdkVersion 23\n    buildToolsVersion \"23.0.3\"\n\n    defaultConfig {\n        minSdkVersion 11\n        targetSdkVersion 23\n        versionCode 1\n        versionName \"1.2.0\"\n    }\n    buildTypes {\n        release {\n            minifyEnabled false\n            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'\n        }\n    }\n}\n\ndependencies {\n    compile 'com.android.support:appcompat-v7:23.4.0'\n    compile fileTree(dir: 'libs', include: ['*.jar'])\n    testCompile 'junit:junit:4.12'\n}\n"
  },
  {
    "path": "library/proguard-rules.pro",
    "content": "# Add project specific ProGuard rules here.\n# By default, the flags in this file are appended to flags specified\n# in /home/talview23/Android/Sdk/tools/proguard/proguard-android.txt\n# You can edit the include path and order by changing the proguardFiles\n# directive in build.gradle.\n#\n# For more details, see\n#   http://developer.android.com/guide/developing/tools/proguard.html\n\n# Add any project specific keep options here:\n\n# If your project uses WebView with JS, uncomment the following\n# and specify the fully qualified class name to the JavaScript interface\n# class:\n#-keepclassmembers class fqcn.of.javascript.interface.for.webview {\n#   public *;\n#}\n"
  },
  {
    "path": "library/src/androidTest/java/com/example/podslider/ApplicationTest.java",
    "content": "package com.example.podslider;\n\nimport android.app.Application;\nimport android.test.ApplicationTestCase;\n\n/**\n * <a href=\"http://d.android.com/tools/testing/testing_android.html\">Testing Fundamentals</a>\n */\npublic class ApplicationTest extends ApplicationTestCase<Application> {\n    public ApplicationTest() {\n        super(Application.class);\n    }\n}"
  },
  {
    "path": "library/src/main/AndroidManifest.xml",
    "content": "<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    package=\"com.bhargavms.podslider\">\n\n    <application android:allowBackup=\"true\"\n        android:label=\"@string/app_name\"\n        android:supportsRtl=\"true\"\n>\n\n    </application>\n\n</manifest>\n"
  },
  {
    "path": "library/src/main/java/com/bhargavms/podslider/EaseOutElasticInterpolator.java",
    "content": "package com.bhargavms.podslider;\n\nimport android.view.animation.Interpolator;\n\n/**\n * An interpolator that eases past the final value then back towards it elastically.\n * <p/>\n * math taken from link provided in see also section.\n *\n * @see <a href=\"https://github.com/greensock/GreenSock-JS/blob/master/src/uncompressed/easing/EasePack.js\">Greensock Github</a></a>\n */\npublic class EaseOutElasticInterpolator implements Interpolator {\n    private static final float TWO_PI = (float) (2 * Math.PI);\n    private float p1;\n    private float p2;\n    private float p3;\n\n    public EaseOutElasticInterpolator(float amplitude, float period) {\n        p1 = (amplitude >= 1) ? amplitude : 1;\n        p2 = period <= 0 ? 0.3f : period / (amplitude >= 1 ? amplitude : 1);\n        p3 = (float) (p2 / TWO_PI * (Math.asin(1 / p1)));\n        p2 = TWO_PI / p2;\n    }\n\n    @Override\n    public float getInterpolation(float p) {\n        return (float) (p1 * Math.pow(2, -10 * p) * Math.sin((p - p3) * p2) + 1);\n    }\n}\n"
  },
  {
    "path": "library/src/main/java/com/bhargavms/podslider/OnPodClickListener.java",
    "content": "package com.bhargavms.podslider;\n\npublic interface OnPodClickListener {\n    void onPodClick(int position);\n}\n"
  },
  {
    "path": "library/src/main/java/com/bhargavms/podslider/Pod.java",
    "content": "package com.bhargavms.podslider;\n\nimport android.animation.ValueAnimator;\nimport android.graphics.Canvas;\nimport android.graphics.Color;\nimport android.graphics.Paint;\nimport android.graphics.Typeface;\nimport android.graphics.drawable.Drawable;\nimport android.os.Handler;\nimport android.text.TextPaint;\nimport android.view.animation.BounceInterpolator;\nimport android.view.animation.DecelerateInterpolator;\n\nclass Pod {\n    private int position = 0;\n    private String centerText;\n    private float podRadius = 0;\n    private int podColor = 0;\n    private int selectedPodColor = Color.WHITE;\n    private int mainSliderColor = 0;\n    private float cx = 0;\n    private float cy = 0;\n    private boolean selected = false;\n    private static final float MAX_RADIUS_INCREMENT_FACTOR = 0.3f;\n    private float radiusIncrementor = MAX_RADIUS_INCREMENT_FACTOR;\n    private Handler handler;\n    private Drawable mDrawable;\n\n    private Paint podCirclePaint;\n    private Paint selectedPodPaint;\n    private Paint selectedPodTextPaint;\n    private PodSlider parent;\n\n    private PodSlider.DrawableSize mDrawableSize;\n\n    public Pod(float radius, int color, int mainSliderColor, int selectedPodColor, PodSlider parent) {\n        this.mainSliderColor = mainSliderColor;\n        this.podRadius = radius;\n        this.podColor = color;\n        this.selectedPodColor = selectedPodColor;\n        this.parent = parent;\n        init();\n    }\n\n    public Pod(int mainSliderColor, int color,\n               int selectedPodColor, PodSlider parent, int position) {\n        this.mainSliderColor = mainSliderColor;\n        this.podColor = color;\n        this.selectedPodColor = selectedPodColor;\n        this.parent = parent;\n        this.position = position;\n        this.centerText = String.valueOf(position + 1);\n        init();\n    }\n\n    public Pod(int mainSliderColor, int color,\n               int selectedPodColor, PodSlider parent, int position, String centerText) {\n        this.mainSliderColor = mainSliderColor;\n        this.podColor = color;\n        this.selectedPodColor = selectedPodColor;\n        this.parent = parent;\n        this.position = position;\n        this.centerText = centerText;\n        init();\n    }\n\n    public void setCenter(float cx, float cy) {\n        this.cx = cx;\n        this.cy = cy;\n    }\n\n    public void setCenterText(String centerText) {\n        this.centerText = centerText;\n    }\n\n    public void setCenterDrawable(Drawable drawable, PodSlider.DrawableSize size) {\n        this.mDrawable = drawable;\n        mDrawableSize = size;\n    }\n\n    public int getPosition() {\n        return position;\n    }\n\n    public float getCenterX() {\n        return cx;\n    }\n\n    public float getCenterY() {\n        return cy;\n    }\n\n    public void setPodRadius(float radius) {\n        this.podRadius = radius;\n    }\n\n    public void setSelected(boolean selected) {\n        this.selected = selected;\n    }\n\n    private void init() {\n        handler = new Handler();\n        podCirclePaint = new Paint(Paint.ANTI_ALIAS_FLAG);\n        podCirclePaint.setColor(podColor);\n        podCirclePaint.setShadowLayer(5.5f, 6.0f, 6.0f, Color.BLACK);\n        podCirclePaint.setStyle(Paint.Style.FILL_AND_STROKE);\n\n        selectedPodPaint = new Paint(Paint.ANTI_ALIAS_FLAG);\n        selectedPodPaint.setColor(selectedPodColor);\n        selectedPodPaint.setShadowLayer(5.5f, 6.0f, 6.0f, Color.BLACK);\n        selectedPodPaint.setStyle(Paint.Style.FILL_AND_STROKE);\n\n        Paint mainSliderPaint = new Paint(Paint.ANTI_ALIAS_FLAG);\n        mainSliderPaint.setColor(mainSliderColor);\n        mainSliderPaint.setShadowLayer(5.5f, 6.0f, 6.0f, Color.BLACK);\n        mainSliderPaint.setStyle(Paint.Style.FILL_AND_STROKE);\n\n        selectedPodTextPaint = new TextPaint(Paint.ANTI_ALIAS_FLAG);\n        selectedPodTextPaint.setColor(mainSliderColor);\n        selectedPodTextPaint.setTypeface(Typeface.DEFAULT_BOLD);\n        selectedPodTextPaint.setStyle(Paint.Style.FILL_AND_STROKE);\n        selectedPodTextPaint.setTextAlign(Paint.Align.CENTER);\n    }\n\n    public void drawPod(Canvas canvas) {\n        if (!selected)\n            canvas.drawCircle(cx, cy, podRadius, podCirclePaint);\n        else {\n            canvas.drawCircle(cx, cy, podRadius + (podRadius * radiusIncrementor), selectedPodPaint);\n            float textSize = (podRadius + MAX_RADIUS_INCREMENT_FACTOR) * 2;\n            selectedPodTextPaint.setTextSize(textSize);\n            if (mDrawable == null) {\n                canvas.drawText(centerText,\n                        cx,\n                        // http://stackoverflow.com/questions/11120392/android-center-text-on-canvas\n                        cy - ((selectedPodTextPaint.descent() + selectedPodTextPaint.ascent()) / 2),\n                        selectedPodTextPaint);\n            } else {\n                float diameter;\n                switch (mDrawableSize) {\n                    case FIT_LARGE_CIRCLE:\n                        diameter = parent.largeCircleRadius * 2;\n                        break;\n                    case FIT_MEDIUM_CIRCLE:\n                        diameter = parent.mediumCircleRadius * 2;\n                        break;\n                    case FIT_POD_CIRCLE:\n                        diameter = (podRadius + MAX_RADIUS_INCREMENT_FACTOR) * 2;\n                        break;\n                    default:\n                        diameter = (podRadius + MAX_RADIUS_INCREMENT_FACTOR) * 2;\n                }\n                float squareSideLengthBy2 = (getSquareSideLength(diameter) / 2);\n                mDrawable.setBounds(\n                        (int) (cx - squareSideLengthBy2),\n                        (int) (cy - squareSideLengthBy2),\n                        (int) (cx + squareSideLengthBy2),\n                        (int) (cy + squareSideLengthBy2)\n                );\n                mDrawable.draw(canvas);\n            }\n        }\n    }\n\n    private float getSquareSideLength(float radius) {\n        return (float) Math.sqrt(Math.pow(radius, 2) / 2);\n    }\n\n    public boolean doesCoOrdinatesLieInSelectRange(float x, float y) {\n        float range = podRadius * (7 / 3);\n        return x > cx - range && x < cx + range && y > cy - range && y < cy + range;\n    }\n\n    public boolean isSelected() {\n        return selected;\n    }\n\n    public void animatePod() {\n        if (!selected)\n            return;\n        radiusIncrementor = 0;\n//        handler.post(new Runnable() {\n//            @Override\n//            public void run() {\n//                if (radiusIncrementor >= MAX_RADIUS_INCREMENT_FACTOR) {\n//                    handler.removeCallbacks(this);\n//                } else {\n//                    float v = (MAX_RADIUS_INCREMENT_FACTOR - radiusIncrementor) /\n//                            PodSlider.LARGE_CIRCLE_MOVE_TIME_IN_MS;\n//                    radiusIncrementor += v * PodSlider.TIME_FOR_EACH_INCREMENT_IN_MS;\n//                    handler.postDelayed(this, PodSlider.TIME_FOR_EACH_INCREMENT_IN_MS);\n//                    parent.invalidate();\n//                }\n//            }\n//        });\n\n        ValueAnimator animator = ValueAnimator.ofFloat(radiusIncrementor, MAX_RADIUS_INCREMENT_FACTOR);\n        animator.setDuration(PodSlider.ANIMATION_DURATION);\n        animator.setInterpolator(new DecelerateInterpolator());\n        animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {\n            @Override\n            public void onAnimationUpdate(ValueAnimator animation) {\n                radiusIncrementor = (float) animation.getAnimatedValue();\n                int left = (int) (cx - podRadius);\n                int right = (int) (cx + podRadius);\n                int top = (int) (cy - podRadius);\n                int bottom = (int) (cy + podRadius);\n                parent.invalidate(left, top, right, bottom);\n            }\n        });\n        animator.start();\n    }\n}\n"
  },
  {
    "path": "library/src/main/java/com/bhargavms/podslider/PodSlider.java",
    "content": "package com.bhargavms.podslider;\n\nimport android.animation.ValueAnimator;\nimport android.annotation.TargetApi;\nimport android.content.Context;\nimport android.content.res.TypedArray;\nimport android.graphics.Canvas;\nimport android.graphics.Color;\nimport android.graphics.Paint;\nimport android.graphics.Rect;\nimport android.graphics.drawable.Drawable;\nimport android.support.v4.view.PagerAdapter;\nimport android.support.v4.view.ViewPager;\nimport android.util.AttributeSet;\nimport android.view.MotionEvent;\nimport android.view.View;\nimport android.view.animation.Interpolator;\n\nimport java.lang.ref.WeakReference;\n\n/**\n * A view that looks like this http://codepen.io/chrisgannon/pen/mPoMxq\n */\npublic class PodSlider extends View {\n    public enum DrawableSize {\n        FIT_POD_CIRCLE, FIT_MEDIUM_CIRCLE, FIT_LARGE_CIRCLE\n    }\n\n    public static final int ANIMATION_DURATION = 600;\n    private int numberOfPods;\n    private Paint mainPaint;\n    private Pod[] pods;\n    private OnPodClickListener mPodClickListener;\n    private int currentlySelectedPod = -1;\n    private boolean firstDraw = true;\n    private ViewPager mViewPager;\n    private boolean isViewMeasured = false;\n    private int mainSliderColor;\n    private int podColor;\n    private int selectedPodColor;\n    private int mediumCircleColor;\n    private int largeCircleColor;\n    private Paint mediumCirclePaint;\n    private Paint largeCirclePaint;\n\n    private float touchStartX;\n    private float touchStartY;\n\n    float largeCircleRadius;\n    float mediumCircleRadius;\n\n    private float largeCircleCurrentCenterX;\n\n    private float mediumCircleCurrentCenterX;\n\n    private ValueAnimator largeCircleAnimator = null;\n    private ValueAnimator mediumCircleAnimator = null;\n    private Interpolator largeCircleInterpolator = null;\n    private Interpolator mediumCircleInterpolator = null;\n\n    private boolean usePageTitle = true;\n\n    @SuppressWarnings(\"FieldCanBeLocal\")\n    private float podRadius;\n\n    private ValueAnimator.AnimatorUpdateListener largeCircleAnimatorListener =\n            new ValueAnimator.AnimatorUpdateListener() {\n                @Override\n                public void onAnimationUpdate(ValueAnimator animation) {\n                    updateLargeCircleCenterX(animation);\n                }\n            };\n    private ValueAnimator.AnimatorUpdateListener mediumCircleAnimatorListener =\n            new ValueAnimator.AnimatorUpdateListener() {\n                @Override\n                public void onAnimationUpdate(ValueAnimator animation) {\n                    updateMediumCircleCenterX(animation);\n                }\n            };\n\n    private Rect clipBounds;\n\n    public PodSlider(Context context) {\n        super(context);\n    }\n\n    public PodSlider(Context context, AttributeSet attrs) {\n        super(context, attrs);\n        init(context, attrs);\n    }\n\n    public PodSlider(Context context, AttributeSet attrs, int defStyleAttr) {\n        super(context, attrs, defStyleAttr);\n        init(context, attrs);\n    }\n\n    @TargetApi(21)\n    public PodSlider(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {\n        super(context, attrs, defStyleAttr, defStyleRes);\n        init(context, attrs);\n    }\n\n    public void setPodClickListener(OnPodClickListener listener) {\n        this.mPodClickListener = listener;\n    }\n\n    private void init(Context c, AttributeSet attrs) {\n        TypedArray a = c.getTheme().obtainStyledAttributes(attrs, R.styleable.PodSlider, 0, 0);\n        try {\n            int mainSliderColor = a.getColor(R.styleable.PodSlider_mainSliderColor, 0);\n            int numberOfPods = a.getInt(R.styleable.PodSlider_numberOfPods, 1);\n            int podColor = a.getColor(R.styleable.PodSlider_podColor, 0);\n            int selectedPodColor = a.getColor(R.styleable.PodSlider_selectedPodColor, Color.WHITE);\n            mediumCircleColor = a.getColor(R.styleable.PodSlider_mediumCircleColor, podColor);\n            largeCircleColor = a.getColor(R.styleable.PodSlider_largeCircleColor, mainSliderColor);\n            init(numberOfPods, podColor, mainSliderColor, selectedPodColor);\n        } finally {\n            a.recycle();\n        }\n    }\n\n    @Override\n    public void setBackgroundColor(int color) {\n        mainSliderColor = color;\n        this.mainPaint.setColor(color);\n        invalidate();\n    }\n\n    public void setNumberOfPods(int numberOfPods) {\n        this.numberOfPods = numberOfPods;\n        pods = new Pod[numberOfPods];\n        for (int i = 0; i < numberOfPods; i++) {\n            pods[i] = new Pod(mainSliderColor, podColor, selectedPodColor, this, i);\n        }\n        if (currentlySelectedPod != -1 && currentlySelectedPod < PodSlider.this.numberOfPods) {\n            setCurrentlySelectedPod(currentlySelectedPod);\n        } else {\n            setCurrentlySelectedPod(0);\n        }\n        if (!isViewMeasured) {\n            return;\n        }\n        requestLayout();\n    }\n\n    public void setPodTexts(String[] texts) {\n        if (texts.length < pods.length) {\n            throw new IllegalStateException(\"The length of the texts array must be same \" +\n                    \"as the number of pods.\");\n        }\n        for (int i = 0; i < pods.length; i++) {\n            pods[i].setCenterText(texts[i]);\n        }\n        invalidate();\n    }\n\n    public void setPodDrawables(Drawable[] drawables, DrawableSize size) {\n        if (drawables.length < pods.length)\n            throw new IllegalStateException(\"The length of the drawables array must be same \" +\n                    \"as the number of pods.\");\n        for (int i = 0; i < pods.length; i++) {\n            pods[i].setCenterDrawable(drawables[i], size);\n        }\n        invalidate();\n    }\n\n    private void init(final int numberOfPods, int podColor,\n                      int mainSliderColor, int selectedPodColor) {\n        this.mainSliderColor = mainSliderColor;\n        this.podColor = podColor;\n        this.selectedPodColor = selectedPodColor;\n        clipBounds = new Rect();\n\n        mainPaint = new Paint(Paint.ANTI_ALIAS_FLAG);\n        mainPaint.setColor(mainSliderColor);\n        mainPaint.setShadowLayer(5.5f, 6.0f, 6.0f, Color.BLACK);\n        mainPaint.setStyle(Paint.Style.FILL_AND_STROKE);\n\n        mediumCirclePaint = new Paint(Paint.ANTI_ALIAS_FLAG);\n        mediumCirclePaint.setColor(mediumCircleColor);\n        mediumCirclePaint.setShadowLayer(5.5f, 6.0f, 6.0f, Color.BLACK);\n        mediumCirclePaint.setStyle(Paint.Style.FILL_AND_STROKE);\n\n        largeCirclePaint = new Paint(Paint.ANTI_ALIAS_FLAG);\n        largeCirclePaint.setColor(largeCircleColor);\n        largeCirclePaint.setShadowLayer(5.5f, 6.0f, 6.0f, Color.BLACK);\n        largeCirclePaint.setStyle(Paint.Style.FILL_AND_STROKE);\n\n        setNumberOfPods(numberOfPods);\n        currentlySelectedPod = 0;\n        largeCircleInterpolator = new EaseOutElasticInterpolator(1.0f, 1.9f);\n        mediumCircleInterpolator = new EaseOutElasticInterpolator(1.0f, 1.3f);\n    }\n\n    /**\n     * Set the currently selected pod AND also animate the view.\n     * <p/>\n     * Please remember to use this only after\n     * the view has been rendered (i.e donot use this in onCreate()/onCreateView()\n     * this will cause the large and medium circle to be drawn at (0, height/2)\n     *\n     * @param currentlySelectedPod the position of pod you want to be selected.\n     */\n    public void setCurrentlySelectedPodAndAnimate(int currentlySelectedPod) {\n        setCurrentlySelectedPod(currentlySelectedPod);\n        update(pods[currentlySelectedPod].getCenterX());\n    }\n\n    /**\n     * @param interpolator a custom interpolator to interpolate time for large circle animation\n     */\n    @SuppressWarnings(\"unused\")\n    public void setLargeCircleInterpolator(Interpolator interpolator) {\n        largeCircleInterpolator = interpolator;\n    }\n\n    /**\n     * @param interpolator a custom interpolator to interpolate time for medium circle animation.\n     */\n    @SuppressWarnings(\"unused\")\n    public void setMediumCircleInterpolator(Interpolator interpolator) {\n        this.mediumCircleInterpolator = interpolator;\n    }\n\n    public void setCurrentlySelectedPod(int currentlySelectedPod) {\n        this.currentlySelectedPod = currentlySelectedPod;\n        for (int i = 0; i < numberOfPods; i++) {\n            pods[i].setSelected(false);\n        }\n        pods[currentlySelectedPod].setSelected(true);\n    }\n\n    @Override\n    public boolean onTouchEvent(MotionEvent event) {\n        int action = event.getAction() & MotionEvent.ACTION_MASK;\n        switch (action) {\n            case MotionEvent.ACTION_DOWN:\n                touchStartX = event.getX();\n                touchStartY = event.getY();\n                return true;\n            case MotionEvent.ACTION_UP:\n                float endX = event.getX();\n                float endY = event.getY();\n                if (isAClick(touchStartX, endX, touchStartY, endY)) {\n                    onClick(endX, endY);\n                }\n                return true;\n            default:\n                return false;\n        }\n    }\n\n    private void onClick(float x, float y) {\n        for (int i = 0; i < pods.length; i++) {\n            Pod pod = pods[i];\n            if (pod.doesCoOrdinatesLieInSelectRange(x, y)) {\n                setCurrentlySelectedPodAndAnimate(i);\n                // propagate click.\n                if (mPodClickListener != null)\n                    this.mPodClickListener.onPodClick(i);\n                if (mViewPager != null)\n                    mViewPager.setCurrentItem(i);\n                return;\n            }\n        }\n    }\n\n    private void moveMediumCircle(float toX) {\n        if (mediumCircleAnimator != null && mediumCircleAnimator.isRunning())\n            mediumCircleAnimator.cancel();\n        mediumCircleAnimator = ValueAnimator.ofFloat(mediumCircleCurrentCenterX, toX);\n        mediumCircleAnimator.setDuration(ANIMATION_DURATION);\n        mediumCircleAnimator.setInterpolator(mediumCircleInterpolator);\n        mediumCircleAnimator.addUpdateListener(mediumCircleAnimatorListener);\n        mediumCircleAnimator.start();\n    }\n\n    private void moveLargeCircle(float toX) {\n        if (largeCircleAnimator != null && largeCircleAnimator.isRunning())\n            largeCircleAnimator.cancel();\n        largeCircleAnimator = ValueAnimator.ofFloat(largeCircleCurrentCenterX, toX);\n        largeCircleAnimator.setDuration(ANIMATION_DURATION);\n        largeCircleAnimator.setInterpolator(largeCircleInterpolator);\n        largeCircleAnimator.addUpdateListener(largeCircleAnimatorListener);\n        largeCircleAnimator.start();\n    }\n\n    private void updateLargeCircleCenterX(ValueAnimator animator) {\n        largeCircleCurrentCenterX = (float) animator.getAnimatedValue();\n        invalidateOnlyRectIfPossible();\n    }\n\n    private void invalidateOnlyRectIfPossible() {\n        if (clipBounds != null && clipBounds.left != 0 &&\n                clipBounds.top != 0 && clipBounds.right != 0 && clipBounds.bottom != 0)\n            invalidate(clipBounds);\n        else\n            invalidate();\n    }\n\n    private void updateMediumCircleCenterX(ValueAnimator animator) {\n        mediumCircleCurrentCenterX = (float) animator.getAnimatedValue();\n        invalidateOnlyRectIfPossible();\n    }\n\n    private void update(float toX) {\n        pods[currentlySelectedPod].animatePod();\n        moveLargeCircle(toX);\n        moveMediumCircle(toX);\n    }\n\n    public void usePageTitles(boolean usePageTitle) {\n        this.usePageTitle = usePageTitle;\n    }\n\n    public void setUpWithViewPager(ViewPager pager) {\n        mViewPager = pager;\n        final PagerAdapter adapter = pager.getAdapter();\n        if (adapter == null) {\n            throw new IllegalArgumentException(\"ViewPager does not have a PagerAdapter set\");\n        }\n        setNumberOfPods(adapter.getCount());\n        if (usePageTitle) {\n            for (int i = 0; i < pods.length; i++) {\n                String pageTitle = adapter.getPageTitle(i) != null ?\n                        adapter.getPageTitle(i).toString() : null;\n                if (pageTitle != null)\n                    pods[i].setCenterText(pageTitle);\n            }\n        }\n        pager.addOnPageChangeListener(new PodSliderOnPageChangeListener(this));\n        if (adapter.getCount() > 0) {\n            final int curItem = pager.getCurrentItem();\n            if (currentlySelectedPod != curItem) {\n                currentlySelectedPod = curItem;\n            }\n        }\n    }\n//\n//    public Pod getPod(int position) {\n//        if (pods == null) {\n//            throw new IllegalStateException(\"You need to init the pods first by calling \" +\n//                    \"setNumberOfPods() or setUpWithViewPager\");\n//        }\n//        if (position >= pods.length || position <= 0) {\n//            throw new IndexOutOfBoundsException(\"Number of pods is \" + pods.length\n//                    + \" passed position is \" + position);\n//        }\n//        return pods[position];\n//    }\n\n    private boolean isAClick(float startX, float endX, float startY, float endY) {\n        float differenceX = Math.abs(startX - endX);\n        float differenceY = Math.abs(startY - endY);\n        return !(differenceX > 5f || differenceY > 5f);\n    }\n\n    @Override\n    protected void onDraw(Canvas canvas) {\n        super.onDraw(canvas);\n        canvas.getClipBounds(clipBounds);\n        // make large circle diameter equal to the height of the canvas.\n        largeCircleRadius = Math.min((getHeight() - getPaddingTop() - getPaddingBottom()) / 2,\n                (getWidth() - getPaddingRight() - getPaddingLeft()) / 2);\n        mediumCircleRadius = largeCircleRadius / 1.5f;\n        podRadius = largeCircleRadius * 2 / 7;\n        float rectangleRight = clipBounds.right - getPaddingRight() - (largeCircleRadius / 5);\n        float rectangleLeft = clipBounds.left + getPaddingLeft() + (largeCircleRadius / 5);\n        float rectangleTop = getPaddingTop() + clipBounds.top + (largeCircleRadius / 5);\n        float rectangleBottom = clipBounds.bottom - getPaddingBottom() - (largeCircleRadius / 5);\n\n        drawRoundedRect(canvas, rectangleLeft, rectangleTop, rectangleRight, rectangleBottom);\n        float podCenterY = rectangleTop + ((rectangleBottom - rectangleTop) / 2);\n        if (numberOfPods == 1) {\n            // draw one at the center and be done.\n            float centerX = rectangleLeft + ((rectangleRight - rectangleLeft) / 2);\n            largeCircleCurrentCenterX = centerX;\n            mediumCircleCurrentCenterX = centerX;\n            Pod pod = pods[0];\n            pod.setCenter(centerX, podCenterY);\n            pod.setPodRadius(podRadius);\n            canvas.drawCircle(largeCircleCurrentCenterX, podCenterY, largeCircleRadius, largeCirclePaint);\n            canvas.drawCircle(mediumCircleCurrentCenterX, podCenterY, mediumCircleRadius, mediumCirclePaint);\n            pod.drawPod(canvas);\n            return;\n        }\n        // else you start calculation.\n        float startX = rectangleLeft + (rectangleBottom - rectangleTop) / 2;\n        float gapBetweenPodCenters = calculateGapBetweenPodCenters(rectangleLeft, rectangleRight,\n                rectangleTop, rectangleBottom);\n        if (firstDraw) {\n            firstDraw = false;\n            largeCircleCurrentCenterX = startX + currentlySelectedPod * gapBetweenPodCenters;\n            mediumCircleCurrentCenterX = startX + currentlySelectedPod * gapBetweenPodCenters;\n        }\n        canvas.drawCircle(largeCircleCurrentCenterX, podCenterY, largeCircleRadius, largeCirclePaint);\n        canvas.drawCircle(mediumCircleCurrentCenterX, podCenterY, mediumCircleRadius, mediumCirclePaint);\n        for (int i = 0, n = numberOfPods; i < n; i++) {\n            float podCenterX = startX + i * gapBetweenPodCenters;\n            Pod pod = pods[i];\n            pod.setPodRadius(podRadius);\n            pod.setCenter(podCenterX, podCenterY);\n            pod.drawPod(canvas);\n        }\n    }\n\n    private float calculateGapBetweenPodCenters(float left, float right, float top, float bottom) {\n        // The center of leftmost circle is at getHeight() / 2, getHeight() / 2 (by design)\n        // The center of rightmost circle is at getWidth() - getHeight /2, getHeight / 2 (by design)\n        // So the distance between these 2 points is the difference is their x-axis co ordinates\n        // as both have the same y-axis coordinate.\n        // Which is nothing but (getWidth() - getHeight / 2) - getHeight / 2\n        // which equal to getWidth() - 2 * getHeight / 2\n        // which is equal to getWidth() - getHeight()\n        float distanceBetweenTheCentersOfPodsAtTheEnd = (right - left) - (bottom - top);\n        // Now to determine the distance between the center of each pod\n        // I divide the distanceBetweenTheCentersOfPodsAtTheEnd by number of Pods -1\n        // because distance between one pod starts at the 0th position.\n        return distanceBetweenTheCentersOfPodsAtTheEnd / (numberOfPods - 1);\n    }\n\n    @Override\n    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {\n        int widthMode = MeasureSpec.getMode(widthMeasureSpec);\n        int widthSize = MeasureSpec.getSize(widthMeasureSpec);\n        int heightMode = MeasureSpec.getMode(heightMeasureSpec);\n        int heightSize = MeasureSpec.getSize(heightMeasureSpec);\n\n        int width;\n        int height;\n        int desiredHeight = (int) (getContext().getResources().getDisplayMetrics().density * 30);\n\n        //Measure Height\n        if (heightMode == MeasureSpec.EXACTLY) {\n            //Must be this size\n            height = heightSize;\n        } else if (heightMode == MeasureSpec.AT_MOST) {\n            //Can't be bigger than...\n            height = Math.min(desiredHeight, heightSize);\n        } else {\n            //Be whatever you want\n            height = desiredHeight;\n        }\n        int desiredWidth = getDesiredWidth(height);\n\n        //Measure Width\n        if (widthMode == MeasureSpec.EXACTLY) {\n            //Must be this size\n            width = widthSize;\n        } else if (widthMode == MeasureSpec.AT_MOST) {\n            //Can't be bigger than...\n            width = Math.min(desiredWidth, widthSize);\n        } else {\n            //Be whatever you want\n            width = desiredWidth;\n        }\n        setMeasuredDimension(width, height);\n        isViewMeasured = true;\n    }\n\n    private int getDesiredWidth(int height) {\n        return height * numberOfPods;\n    }\n\n    private void drawRoundedRect(Canvas canvas, float left, float top, float right, float bottom) {\n        float radius = Math.min((bottom - top) / 2, (right - left) / 2);\n        canvas.drawCircle(left + radius, top + radius, radius, mainPaint);\n        canvas.drawCircle(right - radius, top + radius, radius, mainPaint);\n        canvas.drawRect(left + radius, top, right - radius, bottom, mainPaint);\n    }\n\n    public static class PodSliderOnPageChangeListener implements ViewPager.OnPageChangeListener {\n        private final WeakReference<PodSlider> mPodSliderRef;\n//        private int mScrollState;\n//        private int mPendingSelection = -1;\n\n        public PodSliderOnPageChangeListener(PodSlider podSlider) {\n            mPodSliderRef = new WeakReference<>(podSlider);\n        }\n\n        @Override\n        public void onPageScrollStateChanged(int state) {\n//            mScrollState = state;\n        }\n\n        @Override\n        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {\n//            final PodSlider podSlider = mPodSliderRef.get();\n//            if (podSlider == null) {\n//                return;\n//            }\n            /*float currentX = podSlider.largeAndSmallCircleCurrentCenterX;\n            float differenceX;\n            if (position == podSlider.currentlySelectedPod) {\n                differenceX = podSlider.pods[position + 1].getCenterX() - currentX;\n                podSlider.largeAndSmallCircleCurrentCenterX += differenceX * positionOffset;\n            } else {\n                differenceX = podSlider.pods[position - 1].getCenterX() - currentX;\n                podSlider.largeAndSmallCircleCurrentCenterX -= differenceX * positionOffset;\n            }\n            podSlider.invalidate();*/\n\n            /*if (mPendingSelection == -1 ||\n                    podSlider.pods[podSlider.currentlySelectedPod].getCenterX() !=\n                            podSlider.pods[mPendingSelection].getCenterX()) {\n                float currentX = podSlider.largeAndSmallCircleCurrentCenterX;\n                float differenceX;\n                if (positionOffset > 0 || mPendingSelection == -1)\n                    differenceX = podSlider.pods[position + 1].getCenterX() - currentX;\n                else\n                    differenceX = podSlider.pods[mPendingSelection].getCenterX() - currentX;\n                podSlider.largeAndSmallCircleCurrentCenterX += differenceX * positionOffset;\n                podSlider.invalidate();\n            }\n            if (mScrollState == ViewPager.SCROLL_STATE_IDLE) {\n                if (mPendingSelection != -1) {\n                    podSlider.currentlySelectedPod = mPendingSelection;\n                    podSlider.pods[mPendingSelection].animatePod();\n                    mPendingSelection = -1;\n                }\n            }*/\n            /*if (mPendingSelection != -1 && mScrollState == ViewPager.SCROLL_STATE_IDLE) {\n                podSlider.currentlySelectedPod = mPendingSelection;\n                podSlider.pods[mPendingSelection].animatePod();\n            }*/\n        }\n\n        @Override\n        public void onPageSelected(int position) {\n            PodSlider podSlider = mPodSliderRef.get();\n            if (podSlider != null) {\n                podSlider.setCurrentlySelectedPodAndAnimate(position);\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "library/src/main/res/drawable/ic_accessibility_black_24dp.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n        android:width=\"24dp\"\n        android:height=\"24dp\"\n        android:viewportWidth=\"24.0\"\n        android:viewportHeight=\"24.0\">\n    <path\n        android:fillColor=\"#FF000000\"\n        android:pathData=\"M12,2c1.1,0 2,0.9 2,2s-0.9,2 -2,2 -2,-0.9 -2,-2 0.9,-2 2,-2zM21,9h-6v13h-2v-6h-2v6L9,22L9,9L3,9L3,7h18v2z\"/>\n</vector>\n"
  },
  {
    "path": "library/src/main/res/drawable/ic_account_circle_black_24dp.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n        android:width=\"24dp\"\n        android:height=\"24dp\"\n        android:viewportWidth=\"24.0\"\n        android:viewportHeight=\"24.0\">\n    <path\n        android:fillColor=\"#FF000000\"\n        android:pathData=\"M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,5c1.66,0 3,1.34 3,3s-1.34,3 -3,3 -3,-1.34 -3,-3 1.34,-3 3,-3zM12,19.2c-2.5,0 -4.71,-1.28 -6,-3.22 0.03,-1.99 4,-3.08 6,-3.08 1.99,0 5.97,1.09 6,3.08 -1.29,1.94 -3.5,3.22 -6,3.22z\"/>\n</vector>\n"
  },
  {
    "path": "library/src/main/res/drawable/ic_directions_car_black_24dp.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n        android:width=\"24dp\"\n        android:height=\"24dp\"\n        android:viewportWidth=\"24.0\"\n        android:viewportHeight=\"24.0\">\n    <path\n        android:fillColor=\"#FF000000\"\n        android:pathData=\"M18.92,6.01C18.72,5.42 18.16,5 17.5,5h-11c-0.66,0 -1.21,0.42 -1.42,1.01L3,12v8c0,0.55 0.45,1 1,1h1c0.55,0 1,-0.45 1,-1v-1h12v1c0,0.55 0.45,1 1,1h1c0.55,0 1,-0.45 1,-1v-8l-2.08,-5.99zM6.5,16c-0.83,0 -1.5,-0.67 -1.5,-1.5S5.67,13 6.5,13s1.5,0.67 1.5,1.5S7.33,16 6.5,16zM17.5,16c-0.83,0 -1.5,-0.67 -1.5,-1.5s0.67,-1.5 1.5,-1.5 1.5,0.67 1.5,1.5 -0.67,1.5 -1.5,1.5zM5,11l1.5,-4.5h11L19,11L5,11z\"/>\n</vector>\n"
  },
  {
    "path": "library/src/main/res/values/attrs.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <declare-styleable name=\"PodSlider\">\n        <attr name=\"mainSliderColor\" format=\"color\" />\n        <attr name=\"numberOfPods\" format=\"integer\" />\n        <attr name=\"podColor\" format=\"color\" />\n        <attr name=\"mediumCircleColor\" format=\"color\" />\n        <attr name=\"largeCircleColor\" format=\"color\" />\n        <attr name=\"selectedPodColor\" format=\"color\" />\n    </declare-styleable>\n</resources>"
  },
  {
    "path": "library/src/main/res/values/strings.xml",
    "content": "<resources>\n    <string name=\"app_name\">PodSlider</string>\n</resources>\n"
  },
  {
    "path": "library/src/test/java/com/bhargavms/podslider/ExampleUnitTest.java",
    "content": "package com.bhargavms.podslider;\n\nimport org.junit.Test;\n\nimport static org.junit.Assert.*;\n\n/**\n * To work on unit tests, switch the Test Artifact in the Build Variants view.\n */\npublic class ExampleUnitTest {\n    @Test\n    public void addition_isCorrect() throws Exception {\n        assertEquals(4, 2 + 2);\n    }\n}"
  },
  {
    "path": "readme.md",
    "content": "# PodSlider\n\n----\n[![Android Arsenal](https://img.shields.io/badge/Android%20Arsenal-PodSLider-green.svg?style=true)](https://android-arsenal.com/details/1/3836)\n[![Release](https://jitpack.io/v/bhargavms/PodSLider.svg)](https://jitpack.io/bhargavms/PodSLider)\n[![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/JStumpp/awesome-android)\n\n#### Sample:\n\n![Sample Gif](assets/gifs/ezgif.com-gif-maker.gif?raw=true)\n![Sample Gif](assets/gifs/view_pager_interaction.gif?raw=true)\n\n## A slider view.\n\n> This project is an attempt to port the svg pod slider created by Chris Gannon to android.\n> see [CodePen](http://codepen.io/chrisgannon/pen/mPoMxq)\n\n#### version 1.2.0 Update:\n - Major enhancements in how animations are done.\n - Added a ease out elastic effect(a wobble effect just before the circles stop).\n\n#### Gradle:\n\nAdd it to your project build.gradle with:\n\n```gradle\nallprojects {\n    repositories {\n        maven { url \"https://jitpack.io\" }\n    }\n}\n```\nand to your module's build.gradle dependencies block add the dependency to the library:\n> P.S Check Jitpack badge at the top of the readme for the latest version name.\n\n```gradle\ndependencies {\n    compile 'com.github.bhargavms:PodSLider:X.X.X'\n}\n```\n\n## Usage\n#### Xml Attributes\n```xml\napp:mainSliderColor=\"@color/mainPodSlider\" <!-- the color of the main rounded rectangular bar. -->\napp:numberOfPods=\"2\" <!-- the number of small circles (i.e pods) in the slider.-->\napp:podColor=\"#4CAF50\" <!-- the color of the pod when its not selected.-->\napp:selectedPodColor=\"#fff\" <!-- the color of the pod when its selected.-->\n```\n#### Setting a click listener\n```java\nPodSlider podSlider = (PodSlider) findViewById(R.id.pod_slider);\npodSlider.setPodClickListener(new OnPodClickListener() {\n    @Override\n    public void onPodClick(int position) {\n        Log.d(\"PodPosition\", \"position = \" + position);\n    }\n});\n```\n\n#### To set Currently selected Pod\n```java\npodSlider.setCurrentlySelectedPod(1);\n// if you want to change selected pod and also animate\n// then use the below method, But please remember to use this only after\n// the view has been rendered (i.e donot use this in onCreate()/onCreateView()\n// this will cause the large and medium circle to be drawn at (0, height/2)\npodSlider.setcurrentlySelectedPodAndAnimate(1);\n```\n\n#### To set up with a ViewPager\n> By default, the widget uses the String returned by the viewpager \n> adapter's `getPageTitle(int)` method, to disable it just set\n> `pager.usePageTitle(false)` as false, **before setting up with viewPager** \n\n```java\nViewPager pager = (ViewPager) findViewById(R.id.pager);\nPodSlider pagerSlider = (PodSlider) findViewById(R.id.pager_slider);\nPodPagerAdapter adapter = new PodPagerAdapter(getSupportFragmentManager());\npager.setAdapter(adapter);\npagerSlider.setUpWithViewPager(pager);\n```\n\n#### To change the number of pods programatically\n```java\npodSlider.setNumberOfPods(4);\n```\n\n#### To set custom text \n\n```\n// Use this after setting number of pods and make sure the length of texts \n// array is equal to or greater than `numberOfPods` that you set using `setNumberOfPods()`\npodSlider.setPodTexts(new String[]{\"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\"});\n```\n\n> (ideally use single character don't ever have texts with more than 1 char looks ugly)\n\n#### To set Drawables\n\n```\nDrawable access = getResources().getDrawable(R.drawable.ic_accessibility_black_24dp);\nDrawable account = getResources().getDrawable(R.drawable.ic_account_circle_black_24dp);\nDrawable car = getResources().getDrawable(R.drawable.ic_directions_car_black_24dp);\n// Use this after setting number of pods and make sure the length \n// of drawables array is equal to or greater than `numberOfPods`\n// that you set using `setNumberOfPods()`\npodSlider.setPodDrawables(\n        new Drawable[]{\n                access, account, car,\n                access, account, car,\n                access, account, car,\n                access\n        }, PodSlider.DrawableSize.FIT_POD_CIRCLE\n);\n```\n\n> I have not added (and do not plan to in the near future) support for passing in \n> drawable resource Ids, loading the drawable from resource/creating it from bitmaps\n> or whatever is left to you, if you want further customization on deciding the\n> size of the drawable please open an issue, based on the amount of traction it receives\n> I might decide to implement it.\n \n \n### LICENSE: (Apache 2.0)\n```\nCopyright [2016] [Bhargav M S]\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n```\n"
  },
  {
    "path": "sample/.gitignore",
    "content": "/build\n"
  },
  {
    "path": "sample/build.gradle",
    "content": "apply plugin: 'com.android.application'\n\nandroid {\n    compileSdkVersion 23\n    buildToolsVersion \"23.0.3\"\n\n    defaultConfig {\n        applicationId \"com.example.podslidersample\"\n        minSdkVersion 16\n        targetSdkVersion 23\n        versionCode 1\n        versionName \"1.1.3\"\n    }\n    buildTypes {\n        release {\n            minifyEnabled false\n            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'\n        }\n    }\n}\n\ndependencies {\n    compile fileTree(dir: 'libs', include: ['*.jar'])\n    compile project(':library')\n    testCompile 'junit:junit:4.12'\n    compile 'com.android.support:appcompat-v7:23.4.0'\n    compile 'com.android.support:support-v4:23.4.0'\n}\n"
  },
  {
    "path": "sample/proguard-rules.pro",
    "content": "# Add project specific ProGuard rules here.\n# By default, the flags in this file are appended to flags specified\n# in /home/talview23/Android/Sdk/tools/proguard/proguard-android.txt\n# You can edit the include path and order by changing the proguardFiles\n# directive in build.gradle.\n#\n# For more details, see\n#   http://developer.android.com/guide/developing/tools/proguard.html\n\n# Add any project specific keep options here:\n\n# If your project uses WebView with JS, uncomment the following\n# and specify the fully qualified class name to the JavaScript interface\n# class:\n#-keepclassmembers class fqcn.of.javascript.interface.for.webview {\n#   public *;\n#}\n"
  },
  {
    "path": "sample/src/androidTest/java/com/example/podslidersample/ApplicationTest.java",
    "content": "package com.example.podslidersample;\n\nimport android.app.Application;\nimport android.test.ApplicationTestCase;\n\n/**\n * <a href=\"http://d.android.com/tools/testing/testing_android.html\">Testing Fundamentals</a>\n */\npublic class ApplicationTest extends ApplicationTestCase<Application> {\n    public ApplicationTest() {\n        super(Application.class);\n    }\n}"
  },
  {
    "path": "sample/src/main/AndroidManifest.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    package=\"com.example.podslidersample\">\n\n    <application\n        android:allowBackup=\"true\"\n        android:icon=\"@mipmap/ic_launcher\"\n        android:label=\"@string/app_name\"\n        android:supportsRtl=\"true\"\n        android:theme=\"@style/AppTheme\">\n        <activity android:name=\".MainActivity\">\n            <intent-filter>\n                <action android:name=\"android.intent.action.MAIN\" />\n\n                <category android:name=\"android.intent.category.LAUNCHER\" />\n            </intent-filter>\n        </activity>\n        <activity android:name=\".PagerInteractionActivity\">\n\n        </activity>\n    </application>\n\n</manifest>"
  },
  {
    "path": "sample/src/main/java/com/example/podslidersample/BlankFragment.java",
    "content": "package com.example.podslidersample;\n\n\nimport android.os.Bundle;\nimport android.support.v4.app.Fragment;\nimport android.view.LayoutInflater;\nimport android.view.View;\nimport android.view.ViewGroup;\n\n\n/**\n * A simple {@link Fragment} subclass.\n */\npublic class BlankFragment extends Fragment {\n\n\n    public BlankFragment() {\n        // Required empty public constructor\n    }\n\n\n    @Override\n    public View onCreateView(LayoutInflater inflater, ViewGroup container,\n                             Bundle savedInstanceState) {\n        // Inflate the layout for this fragment\n        return inflater.inflate(R.layout.fragment_blank, container, false);\n    }\n\n}\n"
  },
  {
    "path": "sample/src/main/java/com/example/podslidersample/BlankFragmentTwo.java",
    "content": "package com.example.podslidersample;\n\n\nimport android.os.Bundle;\nimport android.support.v4.app.Fragment;\nimport android.view.LayoutInflater;\nimport android.view.View;\nimport android.view.ViewGroup;\nimport android.widget.TextView;\n\n/**\n * A simple {@link Fragment} subclass.\n */\npublic class BlankFragmentTwo extends Fragment {\n\n\n    public BlankFragmentTwo() {\n        // Required empty public constructor\n    }\n\n\n    @Override\n    public View onCreateView(LayoutInflater inflater, ViewGroup container,\n                             Bundle savedInstanceState) {\n        return inflater.inflate(R.layout.fragment_blank_two, container, false);\n    }\n\n}\n"
  },
  {
    "path": "sample/src/main/java/com/example/podslidersample/MainActivity.java",
    "content": "package com.example.podslidersample;\n\nimport android.graphics.drawable.Drawable;\nimport android.os.Handler;\nimport android.support.v4.app.Fragment;\nimport android.support.v4.app.FragmentManager;\nimport android.support.v4.app.FragmentStatePagerAdapter;\nimport android.support.v4.view.ViewPager;\nimport android.support.v7.app.AppCompatActivity;\nimport android.os.Bundle;\nimport android.util.Log;\n\nimport com.bhargavms.podslider.OnPodClickListener;\nimport com.bhargavms.podslider.PodSlider;\n\npublic class MainActivity extends AppCompatActivity implements OnPodClickListener {\n\n    @Override\n    protected void onCreate(Bundle savedInstanceState) {\n        super.onCreate(savedInstanceState);\n        setContentView(R.layout.activity_main);\n        final Drawable access = getResources().getDrawable(R.drawable.ic_accessibility_black_24dp);\n        final Drawable account = getResources().getDrawable(R.drawable.ic_account_circle_black_24dp);\n        final Drawable car = getResources().getDrawable(R.drawable.ic_directions_car_black_24dp);\n        final PodSlider podSlider = (PodSlider) findViewById(R.id.pod_slider);\n        assert podSlider != null;\n        podSlider.setPodClickListener(new OnPodClickListener() {\n            @Override\n            public void onPodClick(int position) {\n                Log.d(\"PodPosition\", \"position = \" + position);\n            }\n        });\n        podSlider.setCurrentlySelectedPod(1);\n        new Handler().postDelayed(new Runnable() {\n            @Override\n            public void run() {\n                podSlider.setNumberOfPods(8);\n            }\n        }, 5000);\n\n        new Handler().postDelayed(new Runnable() {\n            @Override\n            public void run() {\n                podSlider.setPodTexts(new String[]{\"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\"});\n            }\n        }, 10000);\n\n//        new Handler().postDelayed(new Runnable() {\n//            @Override\n//            public void run() {\n//                podSlider.setPodDrawables(\n//                        new Drawable[]{\n//                                access, account, car,\n//                                access, account, car,\n//                                access, account, car,\n//                                access\n//                        }, PodSlider.DrawableSize.FIT_POD_CIRCLE\n//                );\n//            }\n//        }, 15000);\n\n//        ViewPager pager = (ViewPager) findViewById(R.id.pager);\n//        PodSlider pagerSlider = (PodSlider) findViewById(R.id.pager_slider);\n//        PodPagerAdapter adapter = new PodPagerAdapter(getSupportFragmentManager());\n//        assert pager != null;\n//        pager.setAdapter(adapter);\n//        assert pagerSlider != null;\n//        pagerSlider.setUpWithViewPager(pager);\n////        int accentColor = getResources().getColor(R.color.colorAccent);\n//        Drawable[] drawables = new Drawable[]{\n//                access, account, car\n//        };\n//        pagerSlider.setPodDrawables(drawables, PodSlider.DrawableSize.FIT_MEDIUM_CIRCLE);\n    }\n\n    @Override\n    public void onPodClick(int position) {\n\n    }\n\n    private class PodPagerAdapter extends FragmentStatePagerAdapter {\n        public PodPagerAdapter(FragmentManager fm) {\n            super(fm);\n        }\n\n        @Override\n        public Fragment getItem(int position) {\n            return new BlankFragment();\n        }\n\n        @Override\n        public int getCount() {\n            return 3;\n        }\n    }\n\n}\n"
  },
  {
    "path": "sample/src/main/java/com/example/podslidersample/PagerInteractionActivity.java",
    "content": "package com.example.podslidersample;\n\nimport android.graphics.Color;\nimport android.support.v4.app.Fragment;\nimport android.support.v4.app.FragmentManager;\nimport android.support.v4.app.FragmentStatePagerAdapter;\nimport android.support.v4.view.ViewPager;\nimport android.support.v7.app.AppCompatActivity;\nimport android.os.Bundle;\n\nimport com.bhargavms.podslider.OnPodClickListener;\nimport com.bhargavms.podslider.PodSlider;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class PagerInteractionActivity extends AppCompatActivity {\n\n    @Override\n    protected void onCreate(Bundle savedInstanceState) {\n        super.onCreate(savedInstanceState);\n        setContentView(R.layout.activity_pager_interaction);\n        ViewPager pager = (ViewPager) findViewById(R.id.pager);\n        final PodSlider pagerSlider = (PodSlider) findViewById(R.id.pager_slider);\n        List<Fragment> fragments = new ArrayList<>(2);\n        fragments.add(new BlankFragment());\n        fragments.add(new BlankFragmentTwo());\n        List<String> titles = new ArrayList<>(2);\n        titles.add(\"A\");\n        titles.add(\"B\");\n//        final int[] colors = new int[]{\n//                Color.parseColor(\"#FFC169\"),\n//                Color.parseColor(\"#F68C6F\")\n//        };\n        assert pager != null;\n        pager.setAdapter(new PagerAdapter(getSupportFragmentManager(), fragments, titles));\n        assert pagerSlider != null;\n        pagerSlider.setUpWithViewPager(pager);\n//        pagerSlider.setPodClickListener(new OnPodClickListener() {\n//            @Override\n//            public void onPodClick(int position) {\n//                pagerSlider.setBackgroundColor(colors[position]);\n//            }\n//        });\n    }\n\n    private static class PagerAdapter extends FragmentStatePagerAdapter {\n        private List<Fragment> fragments;\n        private List<String> titles;\n\n        public PagerAdapter(FragmentManager fm,\n                            List<Fragment> fragments, List<String> titles) {\n            super(fm);\n            this.fragments = fragments;\n            this.titles = titles;\n        }\n\n        @Override\n        public Fragment getItem(int position) {\n            return fragments.get(position);\n        }\n\n        @Override\n        public int getCount() {\n            return fragments.size();\n        }\n\n        @Override\n        public CharSequence getPageTitle(int position) {\n            return titles.get(position);\n        }\n    }\n\n}\n"
  },
  {
    "path": "sample/src/main/res/drawable/ic_android_black_24dp.xml",
    "content": "<vector\n    xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"200dp\"\n    android:height=\"200dp\"\n    android:viewportHeight=\"505.145\"\n    android:viewportWidth=\"505.145\">\n    <path\n        android:fillColor=\"#AB4343\"\n        android:pathData=\"M68.5,164.7h-1.3c-16.6,0 -30.1,13.6 -30.1,30.1v131.1c0,16.6 13.5,30.1 30.1,30.1h1.3c16.6,0 30.1,-13.6 30.1,-30.1V194.8C98.7,178.3 85.1,164.7 68.5,164.7z\" />\n    <path\n        android:fillColor=\"#AB4343\"\n        android:pathData=\"M113.1,376.5c0,15.2 12.4,27.6 27.7,27.6h29.6v70.8c0,16.6 13.6,30.2 30.1,30.2h1.3c16.6,0 30.2,-13.5 30.2,-30.2v-70.8h41.3v70.8c0,16.6 13.6,30.2 30.2,30.2h1.3c16.6,0 30.1,-13.5 30.1,-30.2v-70.8h29.6c15.2,0 27.7,-12.4 27.7,-27.6V169.5H113.1V376.5z\" />\n    <path\n        android:fillColor=\"#AB4343\"\n        android:pathData=\"M322,44l23.5,-36.3c1.5,-2.3 0.8,-5.4 -1.5,-6.9c-2.3,-1.5 -5.4,-0.9 -6.9,1.5l-24.4,37.5c-18.3,-7.5 -38.7,-11.7 -60.2,-11.7c-21.6,0 -41.9,4.2 -60.2,11.7l-24.3,-37.5c-1.5,-2.4 -4.6,-3 -6.9,-1.5c-2.3,1.5 -3,4.6 -1.5,6.9l23.5,36.3c-42.4,20.8 -71,59.9 -71,104.8c0,2.8 0.2,5.5 0.4,8.2h280.1c0.2,-2.7 0.4,-5.4 0.4,-8.2C393,103.9 364.4,64.8 322,44zM187.7,108.9c-7.4,0 -13.5,-6 -13.5,-13.5c0,-7.5 6,-13.4 13.5,-13.4c7.5,0 13.5,6 13.5,13.4S195.1,108.9 187.7,108.9zM317.5,108.9c-7.4,0 -13.5,-6 -13.5,-13.5c0,-7.5 6,-13.4 13.5,-13.4c7.5,0 13.5,6 13.5,13.4C331,102.9 325,108.9 317.5,108.9z\" />\n    <path\n        android:fillColor=\"#AB4343\"\n        android:pathData=\"M437.9,164.7h-1.3c-16.6,0 -30.2,13.6 -30.2,30.1v131.1c0,16.6 13.6,30.1 30.2,30.1h1.3c16.6,0 30.1,-13.6 30.1,-30.1V194.8C468,178.3 454.5,164.7 437.9,164.7z\" />\n</vector>"
  },
  {
    "path": "sample/src/main/res/drawable/ic_android_black_24dp1.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n        android:width=\"24dp\"\n        android:height=\"24dp\"\n        android:viewportWidth=\"24.0\"\n        android:viewportHeight=\"24.0\">\n    <path\n        android:fillColor=\"#F48F63\"\n        android:pathData=\"M6,18c0,0.55 0.45,1 1,1h1v3.5c0,0.83 0.67,1.5 1.5,1.5s1.5,-0.67 1.5,-1.5L11,19h2v3.5c0,0.83 0.67,1.5 1.5,1.5s1.5,-0.67 1.5,-1.5L16,19h1c0.55,0 1,-0.45 1,-1L18,8L6,8v10zM3.5,8C2.67,8 2,8.67 2,9.5v7c0,0.83 0.67,1.5 1.5,1.5S5,17.33 5,16.5v-7C5,8.67 4.33,8 3.5,8zM20.5,8c-0.83,0 -1.5,0.67 -1.5,1.5v7c0,0.83 0.67,1.5 1.5,1.5s1.5,-0.67 1.5,-1.5v-7c0,-0.83 -0.67,-1.5 -1.5,-1.5zM15.53,2.16l1.3,-1.3c0.2,-0.2 0.2,-0.51 0,-0.71 -0.2,-0.2 -0.51,-0.2 -0.71,0l-1.48,1.48C13.85,1.23 12.95,1 12,1c-0.96,0 -1.86,0.23 -2.66,0.63L7.85,0.15c-0.2,-0.2 -0.51,-0.2 -0.71,0 -0.2,0.2 -0.2,0.51 0,0.71l1.31,1.31C6.97,3.26 6,5.01 6,7h12c0,-1.99 -0.97,-3.75 -2.47,-4.84zM10,5L9,5L9,4h1v1zM15,5h-1L14,4h1v1z\"/>\n</vector>\n"
  },
  {
    "path": "sample/src/main/res/drawable/ic_build_black_24dp.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n        android:width=\"24dp\"\n        android:height=\"24dp\"\n        android:viewportWidth=\"24.0\"\n        android:viewportHeight=\"24.0\">\n    <path\n        android:fillColor=\"#AB4343\"\n        android:pathData=\"M22.7,19l-9.1,-9.1c0.9,-2.3 0.4,-5 -1.5,-6.9 -2,-2 -5,-2.4 -7.4,-1.3L9,6 6,9 1.6,4.7C0.4,7.1 0.9,10.1 2.9,12.1c1.9,1.9 4.6,2.4 6.9,1.5l9.1,9.1c0.4,0.4 1,0.4 1.4,0l2.3,-2.3c0.5,-0.4 0.5,-1.1 0.1,-1.4z\"/>\n</vector>\n"
  },
  {
    "path": "sample/src/main/res/drawable/ic_weekend_black_24dp.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n        android:width=\"200dp\"\n        android:height=\"200dp\"\n        android:viewportWidth=\"24.0\"\n        android:viewportHeight=\"24.0\">\n    <path\n        android:pathData=\"M21,10c-1.1,0 -2,0.9 -2,2v3L5,15v-3c0,-1.1 -0.9,-2 -2,-2s-2,0.9 -2,2v5c0,1.1 0.9,2 2,2h18c1.1,0 2,-0.9 2,-2v-5c0,-1.1 -0.9,-2 -2,-2zM18,5L6,5c-1.1,0 -2,0.9 -2,2v2.15c1.16,0.41 2,1.51 2,2.82L6,14h12v-2.03c0,-1.3 0.84,-2.4 2,-2.82L20,7c0,-1.1 -0.9,-2 -2,-2z\"\n        android:fillColor=\"#EE8A5E\"/>\n</vector>\n"
  },
  {
    "path": "sample/src/main/res/layout/activity_main.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:app=\"http://schemas.android.com/apk/res-auto\"\n    xmlns:tools=\"http://schemas.android.com/tools\"\n    android:layout_width=\"match_parent\"\n    android:layout_height=\"match_parent\"\n    android:orientation=\"vertical\"\n    android:padding=\"16dp\"\n    android:background=\"#6DA792\"\n    tools:context=\"com.example.podslidersample.MainActivity\">\n\n    <com.bhargavms.podslider.PodSlider\n        android:id=\"@+id/pod_slider\"\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"48dp\"\n        app:mainSliderColor=\"@color/mainPodSlider\"\n        app:numberOfPods=\"2\"\n        app:podColor=\"#4CAF50\"\n        app:mediumCircleColor=\"#4CAF50\"\n        app:selectedPodColor=\"#fff\"\n        android:layout_marginTop=\"50dp\"/>\n\n    <!--<android.support.v4.view.ViewPager\n        android:id=\"@+id/pager\"\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"0dp\"\n        android:layout_weight=\"1\">\n\n\n    </android.support.v4.view.ViewPager>\n\n    <com.bhargavms.podslider.PodSlider\n        android:id=\"@+id/pager_slider\"\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"78dp\"\n        app:mainSliderColor=\"@color/mainPodSlider\"\n        app:podColor=\"#4CAF50\"\n        app:mediumCircleColor=\"#388E3C\"\n        android:layout_gravity=\"center_horizontal\"\n        app:selectedPodColor=\"#fff\" />-->\n</LinearLayout>\n"
  },
  {
    "path": "sample/src/main/res/layout/activity_pager_interaction.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<FrameLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:tools=\"http://schemas.android.com/tools\"\n    android:layout_width=\"match_parent\"\n    android:layout_height=\"match_parent\"\n    xmlns:app=\"http://schemas.android.com/apk/res-auto\"\n    tools:context=\"com.example.podslidersample.PagerInteractionActivity\">\n\n    <android.support.v4.view.ViewPager\n        android:id=\"@+id/pager\"\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"match_parent\">\n\n    </android.support.v4.view.ViewPager>\n\n    <com.bhargavms.podslider.PodSlider\n        android:id=\"@+id/pager_slider\"\n        app:largeCircleColor=\"#8C3939\"\n        app:mainSliderColor=\"#8C3939\"\n        app:mediumCircleColor=\"#E47657\"\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"72dp\"\n        android:layout_gravity=\"center|bottom\"\n        android:layout_margin=\"16dp\"\n        app:podColor=\"#E47657\"/>\n</FrameLayout>\n"
  },
  {
    "path": "sample/src/main/res/layout/fragment_blank.xml",
    "content": "<RelativeLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:tools=\"http://schemas.android.com/tools\"\n    android:layout_width=\"match_parent\"\n    android:layout_height=\"match_parent\"\n    android:background=\"#F68C6F\"\n    tools:context=\"com.example.podslidersample.BlankFragment\">\n\n    <ImageView\n        android:id=\"@+id/img_android\"\n        android:layout_width=\"200dp\"\n        android:layout_height=\"200dp\"\n        android:src=\"@drawable/ic_android_black_24dp\"\n        android:layout_centerInParent=\"true\"\n        tools:ignore=\"ContentDescription\" />\n\n    <ImageView\n        android:layout_width=\"85dp\"\n        android:layout_height=\"85dp\"\n        android:src=\"@drawable/ic_build_black_24dp\"\n        android:layout_toLeftOf=\"@+id/img_android\"\n        android:layout_centerInParent=\"true\"\n        android:layout_marginRight=\"-45dp\"/>\n\n</RelativeLayout>\n"
  },
  {
    "path": "sample/src/main/res/layout/fragment_blank_two.xml",
    "content": "<RelativeLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:tools=\"http://schemas.android.com/tools\"\n    android:layout_width=\"match_parent\"\n    android:layout_height=\"match_parent\"\n    android:background=\"#FFC169\"\n    tools:context=\"com.example.podslidersample.BlankFragmentTwo\">\n\n    <ImageView\n        android:id=\"@+id/img_sofa\"\n        android:layout_width=\"200dp\"\n        android:layout_height=\"200dp\"\n        android:src=\"@drawable/ic_weekend_black_24dp\"\n        android:layout_centerInParent=\"true\"\n        tools:ignore=\"ContentDescription\" />\n\n    <ImageView\n        android:layout_width=\"85dp\"\n        android:layout_height=\"85dp\"\n        android:src=\"@drawable/ic_android_black_24dp\"\n        android:layout_centerInParent=\"true\"\n        android:layout_above=\"@id/img_sofa\"\n        android:layout_marginBottom=\"-90dp\" />\n\n</RelativeLayout>\n"
  },
  {
    "path": "sample/src/main/res/values/colors.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <color name=\"colorPrimary\">#3F51B5</color>\n    <color name=\"colorPrimaryDark\">#303F9F</color>\n    <color name=\"colorAccent\">#FF4081</color>\n\n    <color name=\"mainPodSlider\">#2E7D31</color>\n</resources>\n"
  },
  {
    "path": "sample/src/main/res/values/dimens.xml",
    "content": "<resources>\n    <!-- Default screen margins, per the Android Design guidelines. -->\n    <dimen name=\"activity_horizontal_margin\">16dp</dimen>\n    <dimen name=\"activity_vertical_margin\">16dp</dimen>\n</resources>\n"
  },
  {
    "path": "sample/src/main/res/values/strings.xml",
    "content": "<resources>\n    <string name=\"app_name\">PodSliderSample</string>\n\n    <!-- TODO: Remove or change this placeholder text -->\n    <string name=\"hello_blank_fragment\">Hello blank fragment</string>\n</resources>\n"
  },
  {
    "path": "sample/src/main/res/values/styles.xml",
    "content": "<resources>\n\n    <!-- Base application theme. -->\n    <style name=\"AppTheme\" parent=\"Theme.AppCompat.NoActionBar\">\n        <!-- Customize your theme here. -->\n        <item name=\"colorPrimary\">@color/colorPrimary</item>\n        <item name=\"colorPrimaryDark\">#6FAA94</item>\n        <item name=\"colorAccent\">@color/colorAccent</item>\n    </style>\n\n</resources>\n"
  },
  {
    "path": "sample/src/main/res/values-w820dp/dimens.xml",
    "content": "<resources>\n    <!-- Example customization of dimensions originally defined in res/values/dimens.xml\n         (such as screen margins) for screens with more than 820dp of available width. This\n         would include 7\" and 10\" devices in landscape (~960dp and ~1280dp respectively). -->\n    <dimen name=\"activity_horizontal_margin\">64dp</dimen>\n</resources>\n"
  },
  {
    "path": "sample/src/test/java/com/example/podslidersample/ExampleUnitTest.java",
    "content": "package com.example.podslidersample;\n\nimport org.junit.Test;\n\nimport static org.junit.Assert.*;\n\n/**\n * To work on unit tests, switch the Test Artifact in the Build Variants view.\n */\npublic class ExampleUnitTest {\n    @Test\n    public void addition_isCorrect() throws Exception {\n        assertEquals(4, 2 + 2);\n    }\n}"
  },
  {
    "path": "settings.gradle",
    "content": "include ':sample', ':library'\n"
  }
]