From 550a67a564d82d2274b1a34121b06f09fa84a255 Mon Sep 17 00:00:00 2001 From: GIGAMOLE Date: Thu, 28 Apr 2016 21:32:15 +0300 Subject: [PATCH 01/30] Update 1.0.1 --- .../gigamole/arcprogressstackview/MainActivity.java | 9 +++++++++ library/build.gradle | 4 ++-- .../com/gigamole/library/ArcProgressStackView.java | 12 ++++++++++++ 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/gigamole/arcprogressstackview/MainActivity.java b/app/src/main/java/com/gigamole/arcprogressstackview/MainActivity.java index 76f366b..168f0a7 100644 --- a/app/src/main/java/com/gigamole/arcprogressstackview/MainActivity.java +++ b/app/src/main/java/com/gigamole/arcprogressstackview/MainActivity.java @@ -1,9 +1,11 @@ package com.gigamole.arcprogressstackview; import android.animation.Animator; +import android.animation.ValueAnimator; import android.graphics.Color; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; +import android.util.Log; import android.view.View; import android.view.animation.OvershootInterpolator; import android.widget.Button; @@ -149,6 +151,13 @@ private void init() { sbSweepAngle.setOnSeekBarChangeListener(this); // Set animator listener + mArcProgressStackView.setAnimatorUpdateListener(new ValueAnimator.AnimatorUpdateListener() { + @Override + public void onAnimationUpdate(final ValueAnimator animation) { + // Update goes here + Log.d("onAnimationUpdate: ", String.valueOf(animation.getAnimatedValue())); + } + }); mArcProgressStackView.setAnimatorListener(new Animator.AnimatorListener() { @Override public void onAnimationStart(final Animator animation) { diff --git a/library/build.gradle b/library/build.gradle index d7c7c83..b5207bd 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -18,7 +18,7 @@ apply plugin: 'com.android.library' apply plugin: "com.jfrog.bintray" apply plugin: 'com.github.dcendents.android-maven' -version = "1.0.0" +version = "1.0.1" android { compileSdkVersion 23 @@ -28,7 +28,7 @@ android { minSdkVersion 8 targetSdkVersion 23 versionCode 1 - versionName "1.0.0" + versionName "1.0.1" } buildTypes { release { diff --git a/library/src/main/java/com/gigamole/library/ArcProgressStackView.java b/library/src/main/java/com/gigamole/library/ArcProgressStackView.java index 3875eff..0be43e0 100644 --- a/library/src/main/java/com/gigamole/library/ArcProgressStackView.java +++ b/library/src/main/java/com/gigamole/library/ArcProgressStackView.java @@ -113,6 +113,7 @@ public class ArcProgressStackView extends View { // ValueAnimator and interpolator for progress animating private final ValueAnimator mProgressAnimator = new ValueAnimator(); private ValueAnimator.AnimatorListener mAnimatorListener; + private ValueAnimator.AnimatorUpdateListener mAnimatorUpdateListener; private Interpolator mInterpolator; private int mAnimationDuration; private float mAnimatedFraction; @@ -283,6 +284,9 @@ public ArcProgressStackView(final Context context, final AttributeSet attrs, fin @Override public void onAnimationUpdate(final ValueAnimator animation) { mAnimatedFraction = (float) animation.getAnimatedValue(); + if (mAnimatorUpdateListener != null) + mAnimatorUpdateListener.onAnimationUpdate(animation); + postInvalidate(); } }); @@ -352,6 +356,14 @@ public void setAnimatorListener(final ValueAnimator.AnimatorListener animatorLis mProgressAnimator.addListener(mAnimatorListener); } + public ValueAnimator.AnimatorUpdateListener getAnimatorUpdateListener() { + return mAnimatorUpdateListener; + } + + public void setAnimatorUpdateListener(final ValueAnimator.AnimatorUpdateListener animatorUpdateListener) { + mAnimatorUpdateListener = animatorUpdateListener; + } + public float getStartAngle() { return mStartAngle; } From 62686c06aa0e7f84b33a8e5b88860bb8d0031565 Mon Sep 17 00:00:00 2001 From: GIGAMOLE Date: Thu, 28 Apr 2016 21:41:59 +0300 Subject: [PATCH 02/30] Update 1.0.1 --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d2929ba..1a4b23e 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ dependencies { Or Gradle Maven Central: ```groovy -compile 'com.github.gigamole.arcprogressstackview:library:1.0.0' +compile 'com.github.gigamole.arcprogressstackview:library:1.0.1' ``` Or Maven: @@ -40,7 +40,7 @@ Or Maven: com.github.gigamole.arcprogressstackview library - 1.0.0 + 1.0.1 aar ``` From fa05e0f59bc2b81f511a0a3ff4e4c3c2a0cb79b5 Mon Sep 17 00:00:00 2001 From: GIGAMOLE Date: Fri, 29 Apr 2016 09:42:26 +0300 Subject: [PATCH 03/30] Update 1.0.2 --- README.md | 4 ++-- build.gradle | 2 +- gradle/wrapper/gradle-wrapper.properties | 4 ++-- library/build.gradle | 4 ++-- .../java/com/gigamole/library/ArcProgressStackView.java | 8 +++++--- 5 files changed, 12 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 1a4b23e..ce9256d 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ dependencies { Or Gradle Maven Central: ```groovy -compile 'com.github.gigamole.arcprogressstackview:library:1.0.1' +compile 'com.github.gigamole.arcprogressstackview:library:1.0.2' ``` Or Maven: @@ -40,7 +40,7 @@ Or Maven: com.github.gigamole.arcprogressstackview library - 1.0.1 + 1.0.2 aar ``` diff --git a/build.gradle b/build.gradle index ba818b7..cd70ee5 100644 --- a/build.gradle +++ b/build.gradle @@ -7,7 +7,7 @@ buildscript { dependencies { classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3' classpath "com.jfrog.bintray.gradle:gradle-bintray-plugin:1.1" - classpath 'com.android.tools.build:gradle:1.5.0' + classpath 'com.android.tools.build:gradle:2.1.0' } } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index f4a3eee..bfdf916 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Thu Mar 17 12:05:08 EET 2016 +#Fri Apr 29 09:30:08 EEST 2016 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.4-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip diff --git a/library/build.gradle b/library/build.gradle index b5207bd..ddb43f0 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -18,7 +18,7 @@ apply plugin: 'com.android.library' apply plugin: "com.jfrog.bintray" apply plugin: 'com.github.dcendents.android-maven' -version = "1.0.1" +version = "1.0.2" android { compileSdkVersion 23 @@ -28,7 +28,7 @@ android { minSdkVersion 8 targetSdkVersion 23 versionCode 1 - versionName "1.0.1" + versionName "1.0.2" } buildTypes { release { diff --git a/library/src/main/java/com/gigamole/library/ArcProgressStackView.java b/library/src/main/java/com/gigamole/library/ArcProgressStackView.java index 0be43e0..4ed143c 100644 --- a/library/src/main/java/com/gigamole/library/ArcProgressStackView.java +++ b/library/src/main/java/com/gigamole/library/ArcProgressStackView.java @@ -639,8 +639,10 @@ public void animateProgress() { mProgressAnimator.cancel(); mProgressAnimator.setDuration(mAnimationDuration); mProgressAnimator.setInterpolator(mInterpolator); - mProgressAnimator.removeListener(mAnimatorListener); - mProgressAnimator.addListener(mAnimatorListener); + if (mAnimatorListener != null) { + mProgressAnimator.removeListener(mAnimatorListener); + mProgressAnimator.addListener(mAnimatorListener); + } mProgressAnimator.start(); } @@ -653,7 +655,7 @@ private void animateActionMoveProgress() { mProgressAnimator.cancel(); mProgressAnimator.setDuration(DEFAULT_ACTION_MOVE_ANIMATION_DURATION); mProgressAnimator.setInterpolator(null); - mProgressAnimator.removeListener(mAnimatorListener); + if (mAnimatorListener != null) mProgressAnimator.removeListener(mAnimatorListener); mProgressAnimator.start(); } From 7212497d9c53d95193f212f8621d3cf53d21b1a1 Mon Sep 17 00:00:00 2001 From: GIGAMOLE Date: Sat, 14 May 2016 13:15:57 +0300 Subject: [PATCH 04/30] Update 1.0.3 --- README.md | 4 ++-- .../com/gigamole/arcprogressstackview/MainActivity.java | 6 ++++++ library/build.gradle | 4 ++-- .../java/com/gigamole/library/ArcProgressStackView.java | 2 -- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index ce9256d..dce6c37 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ dependencies { Or Gradle Maven Central: ```groovy -compile 'com.github.gigamole.arcprogressstackview:library:1.0.2' +compile 'com.github.gigamole.arcprogressstackview:library:1.0.3' ``` Or Maven: @@ -40,7 +40,7 @@ Or Maven: com.github.gigamole.arcprogressstackview library - 1.0.2 + 1.0.3 aar ``` diff --git a/app/src/main/java/com/gigamole/arcprogressstackview/MainActivity.java b/app/src/main/java/com/gigamole/arcprogressstackview/MainActivity.java index 168f0a7..5391220 100644 --- a/app/src/main/java/com/gigamole/arcprogressstackview/MainActivity.java +++ b/app/src/main/java/com/gigamole/arcprogressstackview/MainActivity.java @@ -201,10 +201,12 @@ public void onCheckedChanged(final CompoundButton buttonView, final boolean isCh break; case R.id.cb_shadowing: mArcProgressStackView.setIsShadowed(isChecked); + mArcProgressStackView.postInvalidate(); mWrapperShadow.setVisibility(isChecked ? View.VISIBLE : View.GONE); break; case R.id.cb_rounding: mArcProgressStackView.setIsRounded(isChecked); + mArcProgressStackView.postInvalidate(); break; case R.id.cb_show_model_bg: mArcProgressStackView.setModelBgEnabled(isChecked); @@ -228,6 +230,7 @@ public void onCheckedChanged(final CompoundButton buttonView, final boolean isCh model.setColors(isChecked ? new int[]{mStartColors[i], mEndColors[i]} : null); } mArcProgressStackView.requestLayout(); + mArcProgressStackView.postInvalidate(); break; } } @@ -266,12 +269,15 @@ public void onProgressChanged(final SeekBar seekBar, final int progress, final b break; case R.id.pb_shadow_distance: mArcProgressStackView.setShadowDistance(progress); + mArcProgressStackView.postInvalidate(); break; case R.id.pb_shadow_angle: mArcProgressStackView.setShadowAngle(progress); + mArcProgressStackView.postInvalidate(); break; case R.id.pb_shadow_radius: mArcProgressStackView.setShadowRadius(progress); + mArcProgressStackView.postInvalidate(); break; case R.id.pb_animation_duration: mArcProgressStackView.setAnimationDuration(progress); diff --git a/library/build.gradle b/library/build.gradle index ddb43f0..1581cbc 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -18,7 +18,7 @@ apply plugin: 'com.android.library' apply plugin: "com.jfrog.bintray" apply plugin: 'com.github.dcendents.android-maven' -version = "1.0.2" +version = "1.0.3" android { compileSdkVersion 23 @@ -28,7 +28,7 @@ android { minSdkVersion 8 targetSdkVersion 23 versionCode 1 - versionName "1.0.2" + versionName "1.0.3" } buildTypes { release { diff --git a/library/src/main/java/com/gigamole/library/ArcProgressStackView.java b/library/src/main/java/com/gigamole/library/ArcProgressStackView.java index 4ed143c..b7727eb 100644 --- a/library/src/main/java/com/gigamole/library/ArcProgressStackView.java +++ b/library/src/main/java/com/gigamole/library/ArcProgressStackView.java @@ -596,7 +596,6 @@ private void resetShadowLayer() { mIsShadowed ? LAYER_TYPE_SOFTWARE : LAYER_TYPE_HARDWARE, mIsShadowed ? mProgressPaint : null ); - postInvalidate(); } // Set start elevation pin if gradient round progress @@ -614,7 +613,6 @@ private void setStartGradientRoundedShadowLayer() { mIsShadowed ? LAYER_TYPE_SOFTWARE : LAYER_TYPE_HARDWARE, mIsShadowed ? mProgressPaint : null ); - postInvalidate(); } // Adjust color alpha(used for shadow reduce) From 203dc984a77f6de820a6bd8a73621a36fabdfc8c Mon Sep 17 00:00:00 2001 From: GIGAMOLE Date: Tue, 26 Jul 2016 17:12:12 +0300 Subject: [PATCH 05/30] Code issue tracking and readme update. --- README.md | 56 ++++++++++++------- .../arcprogressstackview/MainActivity.java | 34 +++++------ build.gradle | 2 +- .../library/ArcProgressStackView.java | 19 +++---- 4 files changed, 60 insertions(+), 51 deletions(-) diff --git a/README.md b/README.md index dce6c37..2935d71 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,26 @@ -[![Android Arsenal](https://img.shields.io/badge/Android%20Arsenal-ArcProgressStackView-blue.svg?style=flat-square)](http://android-arsenal.com/details/1/3308) - ArcProgressStackView -=================== +==================== + Present your progress bars in arc mode with information and total control. -View size, CB controls |Typeface, animation |Draw width, offset, gradient |Angle, orientation |Shadow +[![DevLight](https://lh4.googleusercontent.com/-9btnRFp_eVo/V5cfwZsBpMI/AAAAAAAAC4E/s4NGoezKhpAVdVofAoez1QWpzK5Na8_cQCL0B/w147-h20-no/devlight-badge.png)](http://devlight.com.ua) + +[![Android Arsenal](https://img.shields.io/badge/Android%20Arsenal-ArcProgressStackView-yellow.svg?style=flat)](http://android-arsenal.com/details/1/3308) +[![Android](https://img.shields.io/badge/platform-android-brightgreen.svg?style=flat&label=Platform)](https://github.com/DevLight-Mobile-Agency) +[![Download](https://api.bintray.com/packages/gigamole/maven/arcprogressstackview/images/download.svg)](https://bintray.com/gigamole/maven/arcprogressstackview/_latestVersion) +[![Crates.io](https://img.shields.io/crates/l/rustc-serialize.svg?maxAge=2592000&label=License)](https://github.com/DevLight-Mobile-Agency/ArcProgressStackView/blob/master/LICENSE.txt) +[![Codacy Badge](https://api.codacy.com/project/badge/Grade/cc3e2c54db41455e83228d9db0803fae)](https://www.codacy.com/app/gigamole53/ArcProgressStackView?utm_source=github.com&utm_medium=referral&utm_content=DevLight-Mobile-Agency/ArcProgressStackView&utm_campaign=Badge_Grade) + +| | | | | | :-------------------------:|:-------------------------:|:-------------------------:|:-------------------------:|:-------------------------: ![](https://lh3.googleusercontent.com/-5wahrBgdCTw/VuwHChXS3FI/AAAAAAAACNQ/eqpqhfnN5G0l3EnETDQ_I5qu4kqQYSysA/w327-h551-no/apsv_preview_size_cb.gif)|![](https://lh4.googleusercontent.com/-c6X1XyKY1go/VuwHCkNghpI/AAAAAAAACNQ/x_xtWAytFPkNrbuEDylIGKNR8mh1jW-rg/w323-h552-no/apsv_preview_typeface_animation.gif)|![](https://lh6.googleusercontent.com/-mz_x7ViHvpQ/VuwHCrwvy-I/AAAAAAAACNQ/vShu09gRxDYv1eekjOLDeSKoHMSluph3w/w325-h552-no/apsv_preview_offset.gif)|![](https://lh6.googleusercontent.com/-iuYi_G-OGrc/VuwHCgvlRNI/AAAAAAAACNQ/LNaGspht3gYsAMJfclfF9InQBzTamHj0Q/w325-h552-no/apsv_preview_angle.gif)|![](https://lh6.googleusercontent.com/-ifOq29FoVrE/VuwHCprAWrI/AAAAAAAACNQ/wLdEYiyV2kwd2rQDQf0QSMe-amHIbhogQ/w325-h552-no/apsv_preview_shadow.gif) -U can check the sample app [here](https://github.com/GIGAMOLE/ArcProgressStackView/tree/master/app). +You can check the sample app [here](https://github.com/DevLight-Mobile-Agency/ArcProgressStackView/tree/master/app). Download ------------ -You can download a .aar` from GitHub's [releases page](https://github.com/GIGAMOLE/ArcProgressStackView/releases). +You can download a `.aar` from GitHub's [releases page](https://github.com/DevLight-Mobile-Agency/ArcProgressStackView/releases). Or use Gradle jCenter: @@ -36,6 +43,7 @@ compile 'com.github.gigamole.arcprogressstackview:library:1.0.3' ``` Or Maven: + ```xml com.github.gigamole.arcprogressstackview @@ -46,17 +54,20 @@ Or Maven: ``` Android SDK Version -========= -ArcProgressStackView requires a minimum sdk version of 8, but if you want animation and shadow support it requires a minimum sdk version of 11. +=================== -Sample -======== +`ArcProgressStackView` requires a minimum SDK version of 8, but if you want animation and shadow support it requires a minimum SDK version of 11. -For APSV you can set such parameters as: +SampleParameters +====== + +Parameters + +For `APSV` you can set such parameters as: - models: - allows you to set APSV models, where you set title, progress and colors. Can be set up only via code. + allows you to set `APSV` models, where you set title, progress and colors. Can be set up only via code. - animation: @@ -64,7 +75,7 @@ For APSV you can set such parameters as: - shadow: - allows you to add shadow to your progress models, but remember, the shadow need LAYER_TYPE_SOFTWARE, so it decrease FPS. + allows you to add shadow to your progress models, but remember, the shadow need `LAYER_TYPE_SOFTWARE`, so it decrease FPS. - round corners: @@ -142,9 +153,13 @@ For APSV you can set such parameters as: allows you to set models background preview color. +Tips + All angle variables can only be positive and be in range from 0 to 360 degrees. -The size of view automatically set up in square mode. +The size of `View` automatically set up in square mode. + +Init Check out in code init: @@ -193,19 +208,22 @@ And XML init: Getting Help ====== -To report a specific problem or feature request, [open a new issue on Github](https://github.com/GIGAMOLE/ArcProgressStackView/issues/new). +To report a specific problem or feature request, [open a new issue on Github](https://github.com/DevLight-Mobile-Agency/ArcProgressStackView/issues/new). License ====== - -Apache 2.0. See LICENSE file for details. +Apache 2.0 and MIT. See [LICENSE](https://github.com/DevLight-Mobile-Agency/ArcProgressStackView/blob/master/LICENSE.txt) file for details. Inspiration ====== -[Here](https://www.behance.net/gallery/33128783/12-weeks-marathon-in-Sketch), [here](https://www.pinterest.com/pin/460915343094746684/), [here] (https://www.pinterest.com/pin/531424824760607320/), also [here] (https://www.pinterest.com/pin/149111437639569450/) and [here] (https://www.pinterest.com/pin/438538082442328565/) +| | | | | | | +|:-: |:-: |:-: |:-: |:-: |:-: | +![](https://lh5.googleusercontent.com/-7BVqroskfPs/V5dtQZVAlhI/AAAAAAAAC4c/PXf2UAkDhxQVJhF96wSXyi-L52gejAN_ACL0B/w304-h530-no/apsv.png)|![](https://d13yacurqjgara.cloudfront.net/users/224485/screenshots/2088708/new-loan1-2.gif)|![](https://d13yacurqjgara.cloudfront.net/users/124059/screenshots/1926158/attachments/352243/shot.gif)|![](https://s-media-cache-ak0.pinimg.com/564x/47/82/e0/4782e07bd49cc2d1d19f73ff5735a1ea.jpg)|![](https://d13yacurqjgara.cloudfront.net/users/107759/screenshots/2060933/awuikit.gif) Author ======= -Basil Miller - @gigamole +Made in [DevLight Mobile Agency](https://github.com/DevLight-Mobile-Agency) + +Created by [Basil Miller](https://github.com/GIGAMOLE) - [@gigamole](mailto:gigamole53@gmail.com) diff --git a/app/src/main/java/com/gigamole/arcprogressstackview/MainActivity.java b/app/src/main/java/com/gigamole/arcprogressstackview/MainActivity.java index 5391220..3abd812 100644 --- a/app/src/main/java/com/gigamole/arcprogressstackview/MainActivity.java +++ b/app/src/main/java/com/gigamole/arcprogressstackview/MainActivity.java @@ -1,6 +1,7 @@ package com.gigamole.arcprogressstackview; import android.animation.Animator; +import android.animation.AnimatorListenerAdapter; import android.animation.ValueAnimator; import android.graphics.Color; import android.os.Bundle; @@ -158,26 +159,11 @@ public void onAnimationUpdate(final ValueAnimator animation) { Log.d("onAnimationUpdate: ", String.valueOf(animation.getAnimatedValue())); } }); - mArcProgressStackView.setAnimatorListener(new Animator.AnimatorListener() { - @Override - public void onAnimationStart(final Animator animation) { - - } - + mArcProgressStackView.setAnimatorListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(final Animator animation) { Toast.makeText(MainActivity.this, "ANIMATION", Toast.LENGTH_SHORT).show(); } - - @Override - public void onAnimationCancel(final Animator animation) { - - } - - @Override - public void onAnimationRepeat(final Animator animation) { - - } }); // Start apsv animation on start @@ -219,8 +205,8 @@ public void onCheckedChanged(final CompoundButton buttonView, final boolean isCh break; case R.id.cb_use_vertical_orientation: mArcProgressStackView.setIndicatorOrientation(isChecked ? - ArcProgressStackView.IndicatorOrientation.VERTICAL : - ArcProgressStackView.IndicatorOrientation.HORIZONTAL + ArcProgressStackView.IndicatorOrientation.VERTICAL : + ArcProgressStackView.IndicatorOrientation.HORIZONTAL ); break; case R.id.cb_use_gradient: @@ -232,6 +218,8 @@ public void onCheckedChanged(final CompoundButton buttonView, final boolean isCh mArcProgressStackView.requestLayout(); mArcProgressStackView.postInvalidate(); break; + default: + break; } } @@ -254,6 +242,8 @@ public void onClick(final View v) { finish(); startActivity(getIntent()); break; + default: + break; } } @@ -264,7 +254,7 @@ public void onProgressChanged(final SeekBar seekBar, final int progress, final b if (mFullSize == -1) mFullSize = mArcProgressStackView.getSize(); mArcProgressStackView.getLayoutParams().height = (int) ((mFullSize * 0.5f) + - (int) ((float) mFullSize * 0.5f * ((float) progress / 100.0f))); + (int) ((float) mFullSize * 0.5f * ((float) progress / 100.0f))); mArcProgressStackView.requestLayout(); break; case R.id.pb_shadow_distance: @@ -294,17 +284,19 @@ public void onProgressChanged(final SeekBar seekBar, final int progress, final b case R.id.pb_sweep_angle: mArcProgressStackView.setSweepAngle(progress); break; + default: + break; } } @Override public void onStartTrackingTouch(final SeekBar seekBar) { - + // Empty cause of implement } @Override public void onStopTrackingTouch(final SeekBar seekBar) { - + // Empty cause of implement } private void showColorPicker(final boolean isShadowColor) { diff --git a/build.gradle b/build.gradle index cd70ee5..c618080 100644 --- a/build.gradle +++ b/build.gradle @@ -7,7 +7,7 @@ buildscript { dependencies { classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3' classpath "com.jfrog.bintray.gradle:gradle-bintray-plugin:1.1" - classpath 'com.android.tools.build:gradle:2.1.0' + classpath 'com.android.tools.build:gradle:2.1.2' } } diff --git a/library/src/main/java/com/gigamole/library/ArcProgressStackView.java b/library/src/main/java/com/gigamole/library/ArcProgressStackView.java index b7727eb..d9da520 100644 --- a/library/src/main/java/com/gigamole/library/ArcProgressStackView.java +++ b/library/src/main/java/com/gigamole/library/ArcProgressStackView.java @@ -698,16 +698,15 @@ else if (currentAngle > NEGATIVE_ANGLE && currentAngle < MAX_ANGLE) actionMoveCurrentSlice = DEFAULT_SLICE; // Check for handling counter - if (actionMoveCurrentSlice != 0) { - if ((mActionMoveLastSlice == NEGATIVE_SLICE && actionMoveCurrentSlice == POSITIVE_SLICE) || - (actionMoveCurrentSlice == NEGATIVE_SLICE && mActionMoveLastSlice == POSITIVE_SLICE)) { - if (mActionMoveLastSlice == NEGATIVE_SLICE) mActionMoveSliceCounter++; - else mActionMoveSliceCounter--; - - // Limit counter for 1 and -1, we don`t need take the race - if (mActionMoveSliceCounter > 1) mActionMoveSliceCounter = 1; - else if (mActionMoveSliceCounter < -1) mActionMoveSliceCounter = -1; - } + if (actionMoveCurrentSlice != 0 && + ((mActionMoveLastSlice == NEGATIVE_SLICE && actionMoveCurrentSlice == POSITIVE_SLICE) || + (actionMoveCurrentSlice == NEGATIVE_SLICE && mActionMoveLastSlice == POSITIVE_SLICE))) { + if (mActionMoveLastSlice == NEGATIVE_SLICE) mActionMoveSliceCounter++; + else mActionMoveSliceCounter--; + + // Limit counter for 1 and -1, we don`t need take the race + if (mActionMoveSliceCounter > 1) mActionMoveSliceCounter = 1; + else if (mActionMoveSliceCounter < -1) mActionMoveSliceCounter = -1; } mActionMoveLastSlice = actionMoveCurrentSlice; From d48bdadb857b43287de2404941c28374b6cbd8c9 Mon Sep 17 00:00:00 2001 From: GIGAMOLE Date: Tue, 26 Jul 2016 17:18:09 +0300 Subject: [PATCH 06/30] Code issue tracking and readme update. --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 2935d71..8aaf070 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,7 @@ Android SDK Version `ArcProgressStackView` requires a minimum SDK version of 8, but if you want animation and shadow support it requires a minimum SDK version of 11. -SampleParameters +Sample ====== Parameters @@ -217,9 +217,9 @@ Apache 2.0 and MIT. See [LICENSE](https://github.com/DevLight-Mobile-Agency/ArcP Inspiration ====== -| | | | | | | -|:-: |:-: |:-: |:-: |:-: |:-: | -![](https://lh5.googleusercontent.com/-7BVqroskfPs/V5dtQZVAlhI/AAAAAAAAC4c/PXf2UAkDhxQVJhF96wSXyi-L52gejAN_ACL0B/w304-h530-no/apsv.png)|![](https://d13yacurqjgara.cloudfront.net/users/224485/screenshots/2088708/new-loan1-2.gif)|![](https://d13yacurqjgara.cloudfront.net/users/124059/screenshots/1926158/attachments/352243/shot.gif)|![](https://s-media-cache-ak0.pinimg.com/564x/47/82/e0/4782e07bd49cc2d1d19f73ff5735a1ea.jpg)|![](https://d13yacurqjgara.cloudfront.net/users/107759/screenshots/2060933/awuikit.gif) +| | | | | | +|:-: |:-: |:-: |:-: |:-: | +![](https://lh5.googleusercontent.com/-7BVqroskfPs/V5dtQZVAlhI/AAAAAAAAC4c/PXf2UAkDhxQVJhF96wSXyi-L52gejAN_ACL0B/w304-h530-no/apsv.png)|![](https://d13yacurqjgara.cloudfront.net/users/124059/screenshots/1926158/attachments/352243/shot.gif)|![](https://s-media-cache-ak0.pinimg.com/564x/47/82/e0/4782e07bd49cc2d1d19f73ff5735a1ea.jpg)|![](https://d13yacurqjgara.cloudfront.net/users/107759/screenshots/2060933/awuikit.gif) Author ======= From 5b48d11b7409faedcfd4555b4d946bf38bff28cd Mon Sep 17 00:00:00 2001 From: GIGAMOLE Date: Tue, 26 Jul 2016 17:18:57 +0300 Subject: [PATCH 07/30] Code issue tracking and readme update. --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 8aaf070..10e465f 100644 --- a/README.md +++ b/README.md @@ -217,8 +217,8 @@ Apache 2.0 and MIT. See [LICENSE](https://github.com/DevLight-Mobile-Agency/ArcP Inspiration ====== -| | | | | | -|:-: |:-: |:-: |:-: |:-: | +| | | | | +|:-: |:-: |:-: |:-: | ![](https://lh5.googleusercontent.com/-7BVqroskfPs/V5dtQZVAlhI/AAAAAAAAC4c/PXf2UAkDhxQVJhF96wSXyi-L52gejAN_ACL0B/w304-h530-no/apsv.png)|![](https://d13yacurqjgara.cloudfront.net/users/124059/screenshots/1926158/attachments/352243/shot.gif)|![](https://s-media-cache-ak0.pinimg.com/564x/47/82/e0/4782e07bd49cc2d1d19f73ff5735a1ea.jpg)|![](https://d13yacurqjgara.cloudfront.net/users/107759/screenshots/2060933/awuikit.gif) Author From aa67cb6a16ce6b796f170e38c092b5138bf50200 Mon Sep 17 00:00:00 2001 From: GIGAMOLE Date: Tue, 26 Jul 2016 17:20:44 +0300 Subject: [PATCH 08/30] Readme update. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 10e465f..b74aff0 100644 --- a/README.md +++ b/README.md @@ -219,7 +219,7 @@ Inspiration | | | | | |:-: |:-: |:-: |:-: | -![](https://lh5.googleusercontent.com/-7BVqroskfPs/V5dtQZVAlhI/AAAAAAAAC4c/PXf2UAkDhxQVJhF96wSXyi-L52gejAN_ACL0B/w304-h530-no/apsv.png)|![](https://d13yacurqjgara.cloudfront.net/users/124059/screenshots/1926158/attachments/352243/shot.gif)|![](https://s-media-cache-ak0.pinimg.com/564x/47/82/e0/4782e07bd49cc2d1d19f73ff5735a1ea.jpg)|![](https://d13yacurqjgara.cloudfront.net/users/107759/screenshots/2060933/awuikit.gif) +![](https://lh5.googleusercontent.com/-7BVqroskfPs/V5dtQZVAlhI/AAAAAAAAC4c/PXf2UAkDhxQVJhF96wSXyi-L52gejAN_ACL0B/w304-h530-no/apsv.png)|![](https://d13yacurqjgara.cloudfront.net/users/124059/screenshots/1926158/attachments/352244/real-pixels.png)|![](https://s-media-cache-ak0.pinimg.com/564x/47/82/e0/4782e07bd49cc2d1d19f73ff5735a1ea.jpg)|![](https://d13yacurqjgara.cloudfront.net/users/107759/screenshots/2060933/awuikit.gif) Author ======= From 2a8c04381bbaaeace9a6d7680cb8463355b41db4 Mon Sep 17 00:00:00 2001 From: GIGAMOLE Date: Tue, 26 Jul 2016 17:29:36 +0300 Subject: [PATCH 09/30] Readme update. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b74aff0..e96e07a 100644 --- a/README.md +++ b/README.md @@ -219,7 +219,7 @@ Inspiration | | | | | |:-: |:-: |:-: |:-: | -![](https://lh5.googleusercontent.com/-7BVqroskfPs/V5dtQZVAlhI/AAAAAAAAC4c/PXf2UAkDhxQVJhF96wSXyi-L52gejAN_ACL0B/w304-h530-no/apsv.png)|![](https://d13yacurqjgara.cloudfront.net/users/124059/screenshots/1926158/attachments/352244/real-pixels.png)|![](https://s-media-cache-ak0.pinimg.com/564x/47/82/e0/4782e07bd49cc2d1d19f73ff5735a1ea.jpg)|![](https://d13yacurqjgara.cloudfront.net/users/107759/screenshots/2060933/awuikit.gif) +![](https://lh5.googleusercontent.com/-7BVqroskfPs/V5dtQZVAlhI/AAAAAAAAC4c/PXf2UAkDhxQVJhF96wSXyi-L52gejAN_ACL0B/w304-h530-no/apsv.png)|![](https://lh6.googleusercontent.com/-KSpOkui03LI/V5dzntfZDlI/AAAAAAAAC6Q/gWLhxSPPyU03snJk5UsS1DQ0CM6g4bDqwCL0B/w236-h414-no/apsv2.png)|![](https://s-media-cache-ak0.pinimg.com/564x/47/82/e0/4782e07bd49cc2d1d19f73ff5735a1ea.jpg)|![](https://d13yacurqjgara.cloudfront.net/users/107759/screenshots/2060933/awuikit.gif) Author ======= From 33859643e98745cd5461f36d174ab00a614da730 Mon Sep 17 00:00:00 2001 From: GIGAMOLE Date: Mon, 1 Aug 2016 12:51:31 +0300 Subject: [PATCH 10/30] Add Beerpay's badge --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index e96e07a..a46a0c0 100644 --- a/README.md +++ b/README.md @@ -227,3 +227,8 @@ Author Made in [DevLight Mobile Agency](https://github.com/DevLight-Mobile-Agency) Created by [Basil Miller](https://github.com/GIGAMOLE) - [@gigamole](mailto:gigamole53@gmail.com) + +## Support on Beerpay +Hey dude! Help me out for a couple of :beers:! + +[![Beerpay](https://beerpay.io/DevLight-Mobile-Agency/ArcProgressStackView/badge.svg?style=beer-square)](https://beerpay.io/DevLight-Mobile-Agency/ArcProgressStackView) [![Beerpay](https://beerpay.io/DevLight-Mobile-Agency/ArcProgressStackView/make-wish.svg?style=flat-square)](https://beerpay.io/DevLight-Mobile-Agency/ArcProgressStackView?focus=wish) \ No newline at end of file From 24d89ae392c7e464ca31ff8c9fcfcee052c04fe9 Mon Sep 17 00:00:00 2001 From: GIGAMOLE Date: Mon, 1 Aug 2016 16:31:46 +0300 Subject: [PATCH 11/30] Readme update. --- README.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/README.md b/README.md index e96e07a..bf25698 100644 --- a/README.md +++ b/README.md @@ -227,3 +227,16 @@ Author Made in [DevLight Mobile Agency](https://github.com/DevLight-Mobile-Agency) Created by [Basil Miller](https://github.com/GIGAMOLE) - [@gigamole](mailto:gigamole53@gmail.com) + +Support +======= + +If you'd like to support future development and new product features, please make a payments on Gratipay and Beerpay or become a patron on Patreon. + +[![Gratipay](https://img.shields.io/gratipay/user/gigamole.svg?maxAge=2592000)](https://gratipay.com/~GIGAMOLE/) +[![Beerpay](https://beerpay.io/DevLight-Mobile-Agency/ArcProgressStackView/badge.svg?style=flat)](https://beerpay.io/DevLight-Mobile-Agency/ArcProgressStackView) +[![Patreon](https://lh5.googleusercontent.com/-lXI_oKp5724/V58ysdDtxHI/AAAAAAAAC7s/g91W_YT2SM0Q_VaIhDAMmoe-jHPP3ijJwCL0B/w140-h20-no/patreon-badge.png)](https://www.patreon.com/gigamole) + +Also, if you use this library in applications that are available on Google Play, please report it to us or author. + +Thanks in advance. \ No newline at end of file From 119ee4afeff4ea71ae44eb2d0330a8d51e6bd7c7 Mon Sep 17 00:00:00 2001 From: GIGAMOLE Date: Mon, 1 Aug 2016 16:33:27 +0300 Subject: [PATCH 12/30] Readme update. --- README.md | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/README.md b/README.md index bf25698..6e088e9 100644 --- a/README.md +++ b/README.md @@ -226,17 +226,4 @@ Author Made in [DevLight Mobile Agency](https://github.com/DevLight-Mobile-Agency) -Created by [Basil Miller](https://github.com/GIGAMOLE) - [@gigamole](mailto:gigamole53@gmail.com) - -Support -======= - -If you'd like to support future development and new product features, please make a payments on Gratipay and Beerpay or become a patron on Patreon. - -[![Gratipay](https://img.shields.io/gratipay/user/gigamole.svg?maxAge=2592000)](https://gratipay.com/~GIGAMOLE/) -[![Beerpay](https://beerpay.io/DevLight-Mobile-Agency/ArcProgressStackView/badge.svg?style=flat)](https://beerpay.io/DevLight-Mobile-Agency/ArcProgressStackView) -[![Patreon](https://lh5.googleusercontent.com/-lXI_oKp5724/V58ysdDtxHI/AAAAAAAAC7s/g91W_YT2SM0Q_VaIhDAMmoe-jHPP3ijJwCL0B/w140-h20-no/patreon-badge.png)](https://www.patreon.com/gigamole) - -Also, if you use this library in applications that are available on Google Play, please report it to us or author. - -Thanks in advance. \ No newline at end of file +Created by [Basil Miller](https://github.com/GIGAMOLE) - [@gigamole](mailto:gigamole53@gmail.com) \ No newline at end of file From 66f3221f14a624dbb2cdac1cac5f1fcea349b91b Mon Sep 17 00:00:00 2001 From: GIGAMOLE Date: Mon, 1 Aug 2016 16:35:41 +0300 Subject: [PATCH 13/30] Update readme. --- README.md | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index a46a0c0..bf25698 100644 --- a/README.md +++ b/README.md @@ -228,7 +228,15 @@ Made in [DevLight Mobile Agency](https://github.com/DevLight-Mobile-Agency) Created by [Basil Miller](https://github.com/GIGAMOLE) - [@gigamole](mailto:gigamole53@gmail.com) -## Support on Beerpay -Hey dude! Help me out for a couple of :beers:! +Support +======= + +If you'd like to support future development and new product features, please make a payments on Gratipay and Beerpay or become a patron on Patreon. + +[![Gratipay](https://img.shields.io/gratipay/user/gigamole.svg?maxAge=2592000)](https://gratipay.com/~GIGAMOLE/) +[![Beerpay](https://beerpay.io/DevLight-Mobile-Agency/ArcProgressStackView/badge.svg?style=flat)](https://beerpay.io/DevLight-Mobile-Agency/ArcProgressStackView) +[![Patreon](https://lh5.googleusercontent.com/-lXI_oKp5724/V58ysdDtxHI/AAAAAAAAC7s/g91W_YT2SM0Q_VaIhDAMmoe-jHPP3ijJwCL0B/w140-h20-no/patreon-badge.png)](https://www.patreon.com/gigamole) + +Also, if you use this library in applications that are available on Google Play, please report it to us or author. -[![Beerpay](https://beerpay.io/DevLight-Mobile-Agency/ArcProgressStackView/badge.svg?style=beer-square)](https://beerpay.io/DevLight-Mobile-Agency/ArcProgressStackView) [![Beerpay](https://beerpay.io/DevLight-Mobile-Agency/ArcProgressStackView/make-wish.svg?style=flat-square)](https://beerpay.io/DevLight-Mobile-Agency/ArcProgressStackView?focus=wish) \ No newline at end of file +Thanks in advance. \ No newline at end of file From 6b8432289d21ca518916ebce558b8c87a0b7f103 Mon Sep 17 00:00:00 2001 From: GIGAMOLE Date: Thu, 15 Sep 2016 16:14:49 +0300 Subject: [PATCH 14/30] Update readme and sample. --- README.md | 152 +++++++++++------------ app/build.gradle | 2 +- build.gradle | 4 +- gradle/wrapper/gradle-wrapper.properties | 4 +- library/build.gradle | 6 +- 5 files changed, 81 insertions(+), 87 deletions(-) diff --git a/README.md b/README.md index bf25698..dedb6d5 100644 --- a/README.md +++ b/README.md @@ -1,24 +1,42 @@ +
+

+ + Devlight + +

+
+ ArcProgressStackView ==================== Present your progress bars in arc mode with information and total control. -[![DevLight](https://lh4.googleusercontent.com/-9btnRFp_eVo/V5cfwZsBpMI/AAAAAAAAC4E/s4NGoezKhpAVdVofAoez1QWpzK5Na8_cQCL0B/w147-h20-no/devlight-badge.png)](http://devlight.com.ua) - -[![Android Arsenal](https://img.shields.io/badge/Android%20Arsenal-ArcProgressStackView-yellow.svg?style=flat)](http://android-arsenal.com/details/1/3308) -[![Android](https://img.shields.io/badge/platform-android-brightgreen.svg?style=flat&label=Platform)](https://github.com/DevLight-Mobile-Agency) -[![Download](https://api.bintray.com/packages/gigamole/maven/arcprogressstackview/images/download.svg)](https://bintray.com/gigamole/maven/arcprogressstackview/_latestVersion) -[![Crates.io](https://img.shields.io/crates/l/rustc-serialize.svg?maxAge=2592000&label=License)](https://github.com/DevLight-Mobile-Agency/ArcProgressStackView/blob/master/LICENSE.txt) -[![Codacy Badge](https://api.codacy.com/project/badge/Grade/cc3e2c54db41455e83228d9db0803fae)](https://www.codacy.com/app/gigamole53/ArcProgressStackView?utm_source=github.com&utm_medium=referral&utm_content=DevLight-Mobile-Agency/ArcProgressStackView&utm_campaign=Badge_Grade) - -| | | | | | -:-------------------------:|:-------------------------:|:-------------------------:|:-------------------------:|:-------------------------: -![](https://lh3.googleusercontent.com/-5wahrBgdCTw/VuwHChXS3FI/AAAAAAAACNQ/eqpqhfnN5G0l3EnETDQ_I5qu4kqQYSysA/w327-h551-no/apsv_preview_size_cb.gif)|![](https://lh4.googleusercontent.com/-c6X1XyKY1go/VuwHCkNghpI/AAAAAAAACNQ/x_xtWAytFPkNrbuEDylIGKNR8mh1jW-rg/w323-h552-no/apsv_preview_typeface_animation.gif)|![](https://lh6.googleusercontent.com/-mz_x7ViHvpQ/VuwHCrwvy-I/AAAAAAAACNQ/vShu09gRxDYv1eekjOLDeSKoHMSluph3w/w325-h552-no/apsv_preview_offset.gif)|![](https://lh6.googleusercontent.com/-iuYi_G-OGrc/VuwHCgvlRNI/AAAAAAAACNQ/LNaGspht3gYsAMJfclfF9InQBzTamHj0Q/w325-h552-no/apsv_preview_angle.gif)|![](https://lh6.googleusercontent.com/-ifOq29FoVrE/VuwHCprAWrI/AAAAAAAACNQ/wLdEYiyV2kwd2rQDQf0QSMe-amHIbhogQ/w325-h552-no/apsv_preview_shadow.gif) +[![Android Arsenal](https://drive.google.com/uc?export=download&id=0BxPO_UeS7wScTm9HT0JzcmpHOVE)](http://android-arsenal.com/details/1/3308) +      +[![Android](https://drive.google.com/uc?export=download&id=0BxPO_UeS7wSccEZaclNGN0R5OWc)](https://github.com/DevLight-Mobile-Agency) +      +[![Download](https://drive.google.com/uc?export=download&id=0BxPO_UeS7wScaDl2U0QtWUx3emM)](https://bintray.com/gigamole/maven/arcprogressstackview/_latestVersion) +      +[![License](https://drive.google.com/uc?export=download&id=0BxPO_UeS7wScU0tmeFpGMHVWNWs)](https://github.com/DevLight-Mobile-Agency/ArcProgressStackView/blob/master/LICENSE.txt) +      +[![Codacy](https://drive.google.com/uc?export=download&id=0BxPO_UeS7wScSHhmckZyeGJDcXc)](https://www.codacy.com/app/gigamole53/ArcProgressStackView?utm_source=github.com&utm_medium=referral&utm_content=DevLight-Mobile-Agency/ArcProgressStackView&utm_campaign=Badge_Grade) + +
+ + + + + + + + + +
You can check the sample app [here](https://github.com/DevLight-Mobile-Agency/ArcProgressStackView/tree/master/app). Download ------------- +======== You can download a `.aar` from GitHub's [releases page](https://github.com/DevLight-Mobile-Agency/ArcProgressStackView/releases). @@ -65,98 +83,75 @@ Sample For `APSV` you can set such parameters as: - - models: - + - models: allows you to set `APSV` models, where you set title, progress and colors. Can be set up only via code. - - animation: - + - animation: allows you to animate progress with func call or with touch event. - - shadow: - + - shadow: allows you to add shadow to your progress models, but remember, the shadow need `LAYER_TYPE_SOFTWARE`, so it decrease FPS. - - round corners: - + - round corners: allows you to set round corners to models. - - drag/seek: - + - drag/seek: allows you to make your progress model seek like. - - typeface: - + - typeface: allows you to set custom typeface. - - text color: - + - text color: allows you to set text(title and progress indicator) color. - - shadow distance: - + - shadow distance: allows you to set shadow distance. - - shadow angle: - + - shadow angle: allows you to set shadow angle. - - shadow radius: - + - shadow radius: allows you to set shadow radius. - - shadow color: - + - shadow color: allows you to set shadow color. - - animation duration: - + - animation duration: allows you to set animation duration. - - animation listener: - + - animation listener: allows you to set animation listener. - - interpolator: - + - interpolator: allows you to set interpolator to animation. - - draw width: - + - draw width: allows you to set draw width in fraction mode(e.g. 55%) or dimension mode. - - model offset: - + - model offset: allows you to set model offset(positive or negative). - - model background: - + - model background: allows you to set model background track from start angle to sweep angle. - - start angle: - + - start angle: allows you to set start angle of models. - - sweep angle: - + - sweep angle: allows you to set sweep angle of models. - - progress indicator orientation: - + - progress indicator orientation: allows you to set progress indicator orientation. - - preview colors: - + - preview colors: allows you to set preview colors, which generate count of models equals to count of colors. - - preview background: - + - preview background: allows you to set models background preview color. Tips -All angle variables can only be positive and be in range from 0 to 360 degrees. - +All angle variables can only be positive and be in range from 0 to 360 degrees. The size of `View` automatically set up in square mode. Init @@ -176,7 +171,7 @@ arcProgressStackView.setModels(models); Other methods check out in sample. -And XML init: +And `XML` init: ```xml Date: Thu, 15 Sep 2016 16:27:10 +0300 Subject: [PATCH 15/30] Update readme. --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index dedb6d5..b1ca45e 100644 --- a/README.md +++ b/README.md @@ -21,8 +21,6 @@ Present your progress bars in arc mode with information and total control.       [![Codacy](https://drive.google.com/uc?export=download&id=0BxPO_UeS7wScSHhmckZyeGJDcXc)](https://www.codacy.com/app/gigamole53/ArcProgressStackView?utm_source=github.com&utm_medium=referral&utm_content=DevLight-Mobile-Agency/ArcProgressStackView&utm_campaign=Badge_Grade) -
- @@ -210,7 +208,7 @@ Credits |[Ron Evgeniy](https://www.behance.net/RonEvgeniy)|[Virgil Pana](https://dribbble.com/virgilpana)| | | |:-----------------------------------------------:|:--------------------------------------------:|:-:|:-:| -|[![](https://mir-s3-cdn-cf.behance.net/project_modules/1400/47e59433128783.570c133a2084b.png)](https://www.behance.net/gallery/33128783/12-weeks-marathon-in-Sketch)|[![](https://d13yacurqjgara.cloudfront.net/users/124059/screenshots/1926158/attachments/352243/shot.gif)](https://dribbble.com/shots/1926158-Data-Visualization)|| +|[![](https://drive.google.com/uc?export=download&id=0BxPO_UeS7wScZmFTcTQ3NlhMRWM)](https://www.behance.net/gallery/33128783/12-weeks-marathon-in-Sketch)|[![](https://d13yacurqjgara.cloudfront.net/users/124059/screenshots/1926158/attachments/352243/shot.gif)](https://dribbble.com/shots/1926158-Data-Visualization)|| Author ====== From ecb87ac9bfc623d7a7b5c886ef0d615c6f3d5423 Mon Sep 17 00:00:00 2001 From: GIGAMOLE Date: Thu, 15 Sep 2016 16:31:32 +0300 Subject: [PATCH 16/30] Update readme. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b1ca45e..4559b16 100644 --- a/README.md +++ b/README.md @@ -208,7 +208,7 @@ Credits |[Ron Evgeniy](https://www.behance.net/RonEvgeniy)|[Virgil Pana](https://dribbble.com/virgilpana)| | | |:-----------------------------------------------:|:--------------------------------------------:|:-:|:-:| -|[![](https://drive.google.com/uc?export=download&id=0BxPO_UeS7wScZmFTcTQ3NlhMRWM)](https://www.behance.net/gallery/33128783/12-weeks-marathon-in-Sketch)|[![](https://d13yacurqjgara.cloudfront.net/users/124059/screenshots/1926158/attachments/352243/shot.gif)](https://dribbble.com/shots/1926158-Data-Visualization)|| +|[![](https://drive.google.com/file/d/0BxPO_UeS7wScQm9QbjV4VWh2R2c/view?usp=sharing)](https://www.behance.net/gallery/33128783/12-weeks-marathon-in-Sketch)|[![](https://drive.google.com/uc?export=download&id=0BxPO_UeS7wScc1Qyd0pMQm5vd0U)](https://dribbble.com/shots/1926158-Data-Visualization)|| Author ====== From 5413de7e59b0fdddeeff966ea37e5f8b50fd5c60 Mon Sep 17 00:00:00 2001 From: GIGAMOLE Date: Thu, 15 Sep 2016 16:32:59 +0300 Subject: [PATCH 17/30] Update readme. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4559b16..57e03df 100644 --- a/README.md +++ b/README.md @@ -208,7 +208,7 @@ Credits |[Ron Evgeniy](https://www.behance.net/RonEvgeniy)|[Virgil Pana](https://dribbble.com/virgilpana)| | | |:-----------------------------------------------:|:--------------------------------------------:|:-:|:-:| -|[![](https://drive.google.com/file/d/0BxPO_UeS7wScQm9QbjV4VWh2R2c/view?usp=sharing)](https://www.behance.net/gallery/33128783/12-weeks-marathon-in-Sketch)|[![](https://drive.google.com/uc?export=download&id=0BxPO_UeS7wScc1Qyd0pMQm5vd0U)](https://dribbble.com/shots/1926158-Data-Visualization)|| +|[![](https://drive.google.com/uc?export=download&id=0BxPO_UeS7wScQm9QbjV4VWh2R2c)](https://www.behance.net/gallery/33128783/12-weeks-marathon-in-Sketch)|[![](https://drive.google.com/uc?export=download&id=0BxPO_UeS7wScc1Qyd0pMQm5vd0U)](https://dribbble.com/shots/1926158-Data-Visualization)|| Author ====== From fb9943e7f923d2572479974c3b0542c76669fc7d Mon Sep 17 00:00:00 2001 From: GIGAMOLE Date: Thu, 15 Sep 2016 16:34:52 +0300 Subject: [PATCH 18/30] Update readme. --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 57e03df..b863478 100644 --- a/README.md +++ b/README.md @@ -206,9 +206,9 @@ To report a specific problem or feature request, [open a new issue on Github](ht Credits ======= -|[Ron Evgeniy](https://www.behance.net/RonEvgeniy)|[Virgil Pana](https://dribbble.com/virgilpana)| | | -|:-----------------------------------------------:|:--------------------------------------------:|:-:|:-:| -|[![](https://drive.google.com/uc?export=download&id=0BxPO_UeS7wScQm9QbjV4VWh2R2c)](https://www.behance.net/gallery/33128783/12-weeks-marathon-in-Sketch)|[![](https://drive.google.com/uc?export=download&id=0BxPO_UeS7wScc1Qyd0pMQm5vd0U)](https://dribbble.com/shots/1926158-Data-Visualization)|| +|[Ron Evgeniy](https://www.behance.net/RonEvgeniy)|[Virgil Pana](https://dribbble.com/virgilpana)|[Gleb Kuznetsov](https://dribbble.com/glebich)| +|:-----------------------------------------------:|:--------------------------------------------:|:--------------------------------------------:| +|[![](https://drive.google.com/uc?export=download&id=0BxPO_UeS7wScQm9QbjV4VWh2R2c)](https://www.behance.net/gallery/33128783/12-weeks-marathon-in-Sketch)|[![](https://drive.google.com/uc?export=download&id=0BxPO_UeS7wScc1Qyd0pMQm5vd0U)](https://dribbble.com/shots/1926158-Data-Visualization)|[![](https://d13yacurqjgara.cloudfront.net/users/32512/screenshots/2123768/untitled-1kj.png)](https://dribbble.com/shots/2123768-graph-ios-app)| Author ====== From 4bb2b242af89a93fe5ff7a1b9d97223ae6556cd0 Mon Sep 17 00:00:00 2001 From: GIGAMOLE Date: Thu, 15 Sep 2016 16:37:41 +0300 Subject: [PATCH 19/30] Update readme. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b863478..483e13c 100644 --- a/README.md +++ b/README.md @@ -208,7 +208,7 @@ Credits |[Ron Evgeniy](https://www.behance.net/RonEvgeniy)|[Virgil Pana](https://dribbble.com/virgilpana)|[Gleb Kuznetsov](https://dribbble.com/glebich)| |:-----------------------------------------------:|:--------------------------------------------:|:--------------------------------------------:| -|[![](https://drive.google.com/uc?export=download&id=0BxPO_UeS7wScQm9QbjV4VWh2R2c)](https://www.behance.net/gallery/33128783/12-weeks-marathon-in-Sketch)|[![](https://drive.google.com/uc?export=download&id=0BxPO_UeS7wScc1Qyd0pMQm5vd0U)](https://dribbble.com/shots/1926158-Data-Visualization)|[![](https://d13yacurqjgara.cloudfront.net/users/32512/screenshots/2123768/untitled-1kj.png)](https://dribbble.com/shots/2123768-graph-ios-app)| +|[![](https://drive.google.com/uc?export=download&id=0BxPO_UeS7wScQm9QbjV4VWh2R2c)](https://www.behance.net/gallery/33128783/12-weeks-marathon-in-Sketch)|[![](https://drive.google.com/uc?export=download&id=0BxPO_UeS7wScc1Qyd0pMQm5vd0U)](https://dribbble.com/shots/1926158-Data-Visualization)|[![](https://drive.google.com/uc?export=download&id=0BxPO_UeS7wScakVhdXpENlJQdXc)](https://dribbble.com/shots/2123768-graph-ios-app)| Author ====== From a47360e956f644c9e971a0358542bd8e3f14e8bd Mon Sep 17 00:00:00 2001 From: GIGAMOLE Date: Thu, 22 Sep 2016 11:45:15 +0300 Subject: [PATCH 20/30] Update 1.0.4. --- README.md | 16 +- app/build.gradle | 2 +- .../devlight/io/sample}/ApplicationTest.java | 2 +- app/src/main/AndroidManifest.xml | 16 +- .../io/sample}/MainActivity.java | 29 +- .../io/sample/PresentationActivity.java | 94 +++++++ app/src/main/res/layout/activity_main.xml | 24 +- .../main/res/layout/activity_presentation.xml | 102 +++++++ app/src/main/res/values/arrays.xml | 16 ++ app/src/main/res/values/colors.xml | 6 - app/src/main/res/values/styles.xml | 5 +- {library => arcprogressstackview}/.gitignore | 0 .../build.gradle | 24 +- .../proguard-rules.pro | 0 .../devlight/io/library}/ApplicationTest.java | 2 +- .../src/main/AndroidManifest.xml | 2 +- .../io}/library/ArcProgressStackView.java | 257 +++++++++--------- .../src/main/res/values/arrays.xml | 0 .../src/main/res/values/attrs.xml | 1 + .../src/main/res/values/strings.xml | 0 settings.gradle | 2 +- 21 files changed, 428 insertions(+), 172 deletions(-) rename {library/src/androidTest/java/com/gigamole/library => app/src/androidTest/java/devlight/io/sample}/ApplicationTest.java (91%) rename app/src/main/java/{com/gigamole/arcprogressstackview => devlight/io/sample}/MainActivity.java (91%) create mode 100644 app/src/main/java/devlight/io/sample/PresentationActivity.java create mode 100644 app/src/main/res/layout/activity_presentation.xml delete mode 100644 app/src/main/res/values/colors.xml rename {library => arcprogressstackview}/.gitignore (100%) rename {library => arcprogressstackview}/build.gradle (88%) rename {library => arcprogressstackview}/proguard-rules.pro (100%) rename {app/src/androidTest/java/com/gigamole/arcprogressstackview => arcprogressstackview/src/androidTest/java/devlight/io/library}/ApplicationTest.java (88%) rename {library => arcprogressstackview}/src/main/AndroidManifest.xml (95%) rename {library/src/main/java/com/gigamole => arcprogressstackview/src/main/java/devlight/io}/library/ArcProgressStackView.java (86%) rename {library => arcprogressstackview}/src/main/res/values/arrays.xml (100%) rename {library => arcprogressstackview}/src/main/res/values/attrs.xml (97%) rename {library => arcprogressstackview}/src/main/res/values/strings.xml (100%) diff --git a/README.md b/README.md index 483e13c..8eacd83 100644 --- a/README.md +++ b/README.md @@ -21,15 +21,9 @@ Present your progress bars in arc mode with information and total control.       [![Codacy](https://drive.google.com/uc?export=download&id=0BxPO_UeS7wScSHhmckZyeGJDcXc)](https://www.codacy.com/app/gigamole53/ArcProgressStackView?utm_source=github.com&utm_medium=referral&utm_content=DevLight-Mobile-Agency/ArcProgressStackView&utm_campaign=Badge_Grade) -
- - - - - - - -
+

+ +

You can check the sample app [here](https://github.com/DevLight-Mobile-Agency/ArcProgressStackView/tree/master/app). @@ -172,14 +166,14 @@ Other methods check out in sample. And `XML` init: ```xml - - + - + - + + + diff --git a/app/src/main/java/com/gigamole/arcprogressstackview/MainActivity.java b/app/src/main/java/devlight/io/sample/MainActivity.java similarity index 91% rename from app/src/main/java/com/gigamole/arcprogressstackview/MainActivity.java rename to app/src/main/java/devlight/io/sample/MainActivity.java index 3abd812..0fc4bd3 100644 --- a/app/src/main/java/com/gigamole/arcprogressstackview/MainActivity.java +++ b/app/src/main/java/devlight/io/sample/MainActivity.java @@ -1,8 +1,9 @@ -package com.gigamole.arcprogressstackview; +package devlight.io.sample; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.ValueAnimator; +import android.content.Intent; import android.graphics.Color; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; @@ -17,11 +18,12 @@ import com.commonsware.cwac.colormixer.ColorMixer; import com.commonsware.cwac.colormixer.ColorMixerDialog; -import com.gigamole.library.ArcProgressStackView; import java.util.ArrayList; import java.util.Random; +import devlight.io.library.ArcProgressStackView; + public class MainActivity extends AppCompatActivity implements View.OnClickListener, CompoundButton.OnCheckedChangeListener, @@ -59,7 +61,7 @@ private void init() { mArcProgressStackView = (ArcProgressStackView) findViewById(R.id.apsv); // Get colors - final String[] startColors = getResources().getStringArray(R.array.polluted_waves); + final String[] startColors = getResources().getStringArray(R.array.devlight); final String[] endColors = getResources().getStringArray(R.array.default_preview); final String[] bgColors = getResources().getStringArray(R.array.medical_express); @@ -71,10 +73,10 @@ private void init() { // Set models final ArrayList models = new ArrayList<>(); - models.add(new ArcProgressStackView.Model("Circle", 0, Color.parseColor(bgColors[0]), mStartColors[0])); - models.add(new ArcProgressStackView.Model("Progress", 0, Color.parseColor(bgColors[1]), mStartColors[1])); - models.add(new ArcProgressStackView.Model("Stack", 0, Color.parseColor(bgColors[2]), mStartColors[2])); - models.add(new ArcProgressStackView.Model("View", 0, Color.parseColor(bgColors[3]), mStartColors[3])); + models.add(new ArcProgressStackView.Model("Strategy", 0, Color.parseColor(bgColors[0]), mStartColors[0])); + models.add(new ArcProgressStackView.Model("Design", 0, Color.parseColor(bgColors[1]), mStartColors[1])); + models.add(new ArcProgressStackView.Model("Development", 0, Color.parseColor(bgColors[2]), mStartColors[2])); + models.add(new ArcProgressStackView.Model("QA", 0, Color.parseColor(bgColors[3]), mStartColors[3])); mArcProgressStackView.setModels(models); // Get wrappers @@ -86,6 +88,7 @@ private void init() { final CheckBox cbDragging = (CheckBox) findViewById(R.id.cb_dragging); final CheckBox cbShadowing = (CheckBox) findViewById(R.id.cb_shadowing); final CheckBox cbRounding = (CheckBox) findViewById(R.id.cb_rounding); + final CheckBox cbLeveling = (CheckBox) findViewById(R.id.cb_leveling); final CheckBox cbShowModelBg = (CheckBox) findViewById(R.id.cb_show_model_bg); final CheckBox cbUseCustomTypeface = (CheckBox) findViewById(R.id.cb_use_custom_typeface); final CheckBox cbUseOvershootInterpolator = (CheckBox) findViewById(R.id.cb_use_overshoot_interpolator); @@ -98,6 +101,7 @@ private void init() { cbShadowing.setOnCheckedChangeListener(this); cbRounding.setOnCheckedChangeListener(this); cbShowModelBg.setOnCheckedChangeListener(this); + cbLeveling.setOnCheckedChangeListener(this); cbUseCustomTypeface.setOnCheckedChangeListener(this); cbUseOvershootInterpolator.setOnCheckedChangeListener(this); cbUseVerticalOrientation.setOnCheckedChangeListener(this); @@ -107,6 +111,7 @@ private void init() { onCheckedChanged(cbDragging, cbDragging.isChecked()); onCheckedChanged(cbShadowing, cbShadowing.isChecked()); onCheckedChanged(cbRounding, cbRounding.isChecked()); + onCheckedChanged(cbLeveling, cbLeveling.isChecked()); onCheckedChanged(cbShowModelBg, cbShowModelBg.isChecked()); onCheckedChanged(cbUseCustomTypeface, cbUseCustomTypeface.isChecked()); onCheckedChanged(cbUseOvershootInterpolator, cbUseOvershootInterpolator.isChecked()); @@ -117,12 +122,14 @@ private void init() { mBtnTextColor = (Button) findViewById(R.id.btn_text_color); mBtnShadowColor = (Button) findViewById(R.id.btn_shadow_color); final Button btnAnimate = (Button) findViewById(R.id.btn_animate); + final Button btnPresentation = (Button) findViewById(R.id.btn_presentation); final Button btnReset = (Button) findViewById(R.id.btn_reset); // Set buttons mBtnTextColor.setOnClickListener(this); mBtnShadowColor.setOnClickListener(this); btnAnimate.setOnClickListener(this); + btnPresentation.setOnClickListener(this); btnReset.setOnClickListener(this); // Set default colors @@ -187,13 +194,16 @@ public void onCheckedChanged(final CompoundButton buttonView, final boolean isCh break; case R.id.cb_shadowing: mArcProgressStackView.setIsShadowed(isChecked); - mArcProgressStackView.postInvalidate(); + mArcProgressStackView.requestLayout(); mWrapperShadow.setVisibility(isChecked ? View.VISIBLE : View.GONE); break; case R.id.cb_rounding: mArcProgressStackView.setIsRounded(isChecked); mArcProgressStackView.postInvalidate(); break; + case R.id.cb_leveling: + mArcProgressStackView.setIsLeveled(isChecked); + break; case R.id.cb_show_model_bg: mArcProgressStackView.setModelBgEnabled(isChecked); break; @@ -242,6 +252,9 @@ public void onClick(final View v) { finish(); startActivity(getIntent()); break; + case R.id.btn_presentation: + startActivity(new Intent(MainActivity.this, PresentationActivity.class)); + break; default: break; } diff --git a/app/src/main/java/devlight/io/sample/PresentationActivity.java b/app/src/main/java/devlight/io/sample/PresentationActivity.java new file mode 100644 index 0000000..3097d0e --- /dev/null +++ b/app/src/main/java/devlight/io/sample/PresentationActivity.java @@ -0,0 +1,94 @@ +package devlight.io.sample; + +import android.animation.Animator; +import android.animation.AnimatorListenerAdapter; +import android.animation.ValueAnimator; +import android.app.Activity; +import android.graphics.Color; +import android.os.Bundle; +import android.view.View; + +import java.util.ArrayList; + +import devlight.io.library.ArcProgressStackView; + +import static devlight.io.library.ArcProgressStackView.Model; +import static devlight.io.sample.MainActivity.MODEL_COUNT; + +/** + * Created by GIGAMOLE on 9/21/16. + */ + +public class PresentationActivity extends Activity { + + private int mCounter = 0; + + private ArcProgressStackView mArcProgressStackView; + + @Override + protected void onCreate(final Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_presentation); + + mArcProgressStackView = (ArcProgressStackView) findViewById(R.id.apsv_presentation); + mArcProgressStackView.setShadowColor(Color.argb(200, 0, 0, 0)); + mArcProgressStackView.setAnimationDuration(1000); + mArcProgressStackView.setSweepAngle(270); + + final String[] stringColors = getResources().getStringArray(R.array.devlight); + final String[] stringBgColors = getResources().getStringArray(R.array.bg); + + final int[] colors = new int[MODEL_COUNT]; + final int[] bgColors = new int[MODEL_COUNT]; + for (int i = 0; i < MODEL_COUNT; i++) { + colors[i] = Color.parseColor(stringColors[i]); + bgColors[i] = Color.parseColor(stringBgColors[i]); + } + + final ArrayList models = new ArrayList<>(); + models.add(new Model("STRATEGY", 1, bgColors[0], colors[0])); + models.add(new Model("DESIGN", 1, bgColors[1], colors[1])); + models.add(new Model("DEVELOPMENT", 1, bgColors[2], colors[2])); + models.add(new Model("QA", 1, bgColors[3], colors[3])); + mArcProgressStackView.setModels(models); + + final ValueAnimator valueAnimator = ValueAnimator.ofFloat(1.0F, 105.0F); + valueAnimator.setDuration(800); + valueAnimator.setStartDelay(200); + valueAnimator.setRepeatMode(ValueAnimator.RESTART); + valueAnimator.setRepeatCount(MODEL_COUNT - 1); + valueAnimator.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(final Animator animation) { + animation.removeListener(this); + animation.addListener(this); + mCounter = 0; + + for (final Model model : mArcProgressStackView.getModels()) model.setProgress(1); + mArcProgressStackView.animateProgress(); + } + + @Override + public void onAnimationRepeat(final Animator animation) { + mCounter++; + } + }); + valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { + @Override + public void onAnimationUpdate(final ValueAnimator animation) { + mArcProgressStackView.getModels().get(Math.min(mCounter, MODEL_COUNT - 1)) + .setProgress((Float) animation.getAnimatedValue()); + mArcProgressStackView.postInvalidate(); + } + }); + + mArcProgressStackView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(final View v) { + if (valueAnimator.isRunning()) return; + if (mArcProgressStackView.getProgressAnimator().isRunning()) return; + valueAnimator.start(); + } + }); + } +} diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 668dcba..ae0bed5 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -14,12 +14,12 @@ android:layout_height="wrap_content" android:padding="15dp"> - @@ -98,6 +98,20 @@ + + + + + + + +