Skip to content

Commit

Permalink
Feat: Feature progress changed.
Browse files Browse the repository at this point in the history
 Implemented changing progress value by touching progress line and sending new value to progressChangedListener.
  • Loading branch information
yatsinskiyCR committed Sep 1, 2016
1 parent 9e07e2b commit 7df421c
Show file tree
Hide file tree
Showing 14 changed files with 226 additions and 83 deletions.
2 changes: 1 addition & 1 deletion PlayWidget.iml
Expand Up @@ -13,7 +13,7 @@
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/.gradle" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
39 changes: 29 additions & 10 deletions README.MD
Expand Up @@ -96,16 +96,35 @@ void setProgress(float progress)
For providing buttons listener use:
```JAVA
void setOnButtonsClickListener(new OnButtonsClickListener() {
@Override
public void onShuffleClicked() { }
@Override
public void onSkipPreviousClicked() { }
@Override
public void onSkipNextClicked() { }
@Override
public void onRepeatClicked() { }
@Override
public void onPlayButtonClicked() { }
@Override
public void onShuffleClicked() { }
@Override
public void onSkipPreviousClicked() { }
@Override
public void onSkipNextClicked() { }
@Override
public void onRepeatClicked() { }
@Override
public void onPlayButtonClicked() { }
});
void setOnButtonsLongClickListener(new OnButtonsLongClickListener() {
@Override
public void onShuffleLongClicked() {}
@Override
public void onSkipPreviousLongClicked() {}
@Override
public void onSkipNextLongClicked() {}
@Override
public void onRepeatLongClicked() {}
@Override
public void onPlayButtonLongClicked() {}
});
```
For providing progress changed listener use:
```JAVA
void setOnProgressChangedListener(new OnProgressChangedListener() {
@Override
public void onProgressChanged(float progress) {}
});
```
For changing shadow params you can use method:
Expand Down
2 changes: 1 addition & 1 deletion build.gradle
Expand Up @@ -6,7 +6,7 @@ buildscript {
maven { url "https://oss.sonatype.org/content/repositories/snapshots" }
}
dependencies {
classpath 'com.android.tools.build:gradle:2.1.2'
classpath 'com.android.tools.build:gradle:2.1.3'
}
}

Expand Down
4 changes: 2 additions & 2 deletions gradle.properties
Expand Up @@ -17,8 +17,8 @@
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true

VERSION_NAME=1.0.0
VERSION_CODE=1
VERSION_NAME=1.0.2-SNAPSHOT
VERSION_CODE=3
GROUP=com.cleveroad
POM_DESCRIPTION=Play widget is simple library that help other developers easy create great player interface
POM_URL=https://github.com/Cleveroad/PlayWidget
Expand Down
4 changes: 2 additions & 2 deletions gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
#Thu Jun 23 17:03:52 EEST 2016
#Thu Sep 01 11:36:02 EEST 2016
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
2 changes: 1 addition & 1 deletion play_widget/gradle.properties
@@ -1,4 +1,4 @@
POM_NAME=Play Widget
POM_ARTIFACT_ID=play_widget
POM_ARTIFACT_ID=play-widget
POM_PACKAGING=aar

23 changes: 8 additions & 15 deletions play_widget/play_widget.iml
Expand Up @@ -65,14 +65,6 @@
<sourceFolder url="file://$MODULE_DIR$/src/main/jni" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/shaders" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" />
Expand All @@ -81,8 +73,14 @@
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/shaders" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/build/distributions" />
<excludeFolder url="file://$MODULE_DIR$/build/docs" />
<sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/annotations" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" />
Expand All @@ -104,12 +102,7 @@
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/shaders" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/transforms" />
<excludeFolder url="file://$MODULE_DIR$/build/ivy.xml" />
<excludeFolder url="file://$MODULE_DIR$/build/libs" />
<excludeFolder url="file://$MODULE_DIR$/build/outputs" />
<excludeFolder url="file://$MODULE_DIR$/build/poms" />
<excludeFolder url="file://$MODULE_DIR$/build/reports" />
<excludeFolder url="file://$MODULE_DIR$/build/test-results" />
<excludeFolder url="file://$MODULE_DIR$/build/tmp" />
</content>
<orderEntry type="jdk" jdkName="Android API 23 Platform" jdkType="Android SDK" />
Expand Down
65 changes: 52 additions & 13 deletions play_widget/src/main/java/com/cleveroad/play_widget/PlayLayout.java
Expand Up @@ -79,7 +79,6 @@ public class PlayLayout extends RelativeLayout implements OnShadowChangeListener
private int mButtonsSize;

private int mDiffusersPadding;
private int mProgressViewPadding;

private ImageView mIvShuffle;
private ImageView mIvSkipPrevious;
Expand Down Expand Up @@ -145,7 +144,8 @@ private void init(Context context, AttributeSet attrs) {
mProgressLineView.setEnabled(typedArrayValues.getBoolean(R.styleable.PlayWidget_pw_progress_line_enabled, true));

mDiffusersPadding = typedArrayValues.getDimensionPixelSize(R.styleable.PlayWidget_pw_diffusers_padding, context.getResources().getDimensionPixelSize(R.dimen.pw_default_diffusers_padding));
mProgressViewPadding = typedArrayValues.getDimensionPixelSize(R.styleable.PlayWidget_pw_progress_line_padding, context.getResources().getDimensionPixelSize(R.dimen.pw_default_progress_line_padding));

mProgressLineView.setPadding(typedArrayValues.getDimensionPixelSize(R.styleable.PlayWidget_pw_progress_line_padding, context.getResources().getDimensionPixelSize(R.dimen.pw_default_progress_line_padding)));

int progressCompleteLineStrokeWidth = typedArrayValues.getDimensionPixelSize(R.styleable.PlayWidget_pw_progress_complete_line_stroke_width, context.getResources().getDimensionPixelSize(R.dimen.pw_progress_complete_line_stroke_width));
int progressLineStrokeWidth = typedArrayValues.getDimensionPixelSize(R.styleable.PlayWidget_pw_progress_line_stroke_width, context.getResources().getDimensionPixelSize(R.dimen.pw_progress_line_stroke_width));
Expand Down Expand Up @@ -341,10 +341,10 @@ protected void onLayout(boolean changed, int l, int t, int r, int b) {
);

mProgressLineView.layout(
mProgressViewPadding + additionalPadding,
mProgressViewPadding,
containerSize - mProgressViewPadding + additionalPadding,
containerSize - mProgressViewPadding
additionalPadding,
0,
containerSize + additionalPadding,
containerSize
);

float bigDiffuserHalfRadius = (mBigDiffuserImageView.getRight() - mBigDiffuserImageView.getLeft()) / 2.0f;
Expand Down Expand Up @@ -754,7 +754,17 @@ public void setPlayButtonBackgroundTintList(@Nullable ColorStateList tint) {
* @param padding Padding for progress line
*/
public void setProgressLinePadding(int padding) {
mProgressViewPadding = padding;
mProgressLineView.setPadding(padding);
requestLayout();
}

/**
* Set padding for progress line
*
* @param padding Padding for progress line
*/
public void setProgressLinePadding(float padding) {
mProgressLineView.setPadding(padding);
requestLayout();
}

Expand Down Expand Up @@ -899,6 +909,14 @@ public void setProgressBallColorResource(@ColorRes int colorRes) {
setProgressBallColor(ContextCompat.getColor(getContext(), colorRes));
}

/**
* Set progressChangedListener
* @param progressChangedListener PlayLayout.OnProgressChangedListener listener for the event;
*/
public void setOnProgressChangedListener(PlayLayout.OnProgressChangedListener progressChangedListener) {
mProgressLineView.setOnProgressChangedListener(progressChangedListener);
}

private boolean isOpenInner() {
return mRadiusPercentage > 0.5f;
}
Expand Down Expand Up @@ -945,6 +963,7 @@ public void shadowChanged(float bigDiffuserShadowPercentage, float mediumDiffuse

/**
* Getter for ImageView shuffle button
*
* @return ImageView shuffle button
*/
public ImageView getIvShuffle() {
Expand All @@ -953,6 +972,7 @@ public ImageView getIvShuffle() {

/**
* Getter for ImageView skip previous button
*
* @return ImageView skipPrevious button
*/
public ImageView getIvSkipPrevious() {
Expand All @@ -961,6 +981,7 @@ public ImageView getIvSkipPrevious() {

/**
* Getter for ImageView skip next button
*
* @return ImageView skip next button
*/
public ImageView getIvSkipNext() {
Expand All @@ -969,6 +990,7 @@ public ImageView getIvSkipNext() {

/**
* Getter for ImageView repeat button
*
* @return ImageView repeat button
*/
public ImageView getIvRepeat() {
Expand All @@ -977,6 +999,7 @@ public ImageView getIvRepeat() {

/**
* Getter for ImageView playButton button
*
* @return ImageView play button button
*/
public FloatingActionButton getPlayButton() {
Expand Down Expand Up @@ -1017,7 +1040,7 @@ public Parcelable onSaveInstanceState() {
ss.smallDiffuserShadowWidth = mSmallDiffuserShadowWidth;

ss.diffuserPadding = mDiffusersPadding;
ss.progressViewPadding = mProgressViewPadding;
ss.progressViewPadding = mProgressLineView.getPadding();
ss.buttonSize = mButtonsSize;

ss.progressBallRadius = mProgressLineView.getProgressBallRadius();
Expand All @@ -1027,7 +1050,7 @@ public Parcelable onSaveInstanceState() {
ss.progressBallColor = mProgressLineView.getProgressBallColor();
ss.progressCompleteLineColor = mProgressLineView.getProgressCompleteLineColor();
ss.progressLineColor = mProgressLineView.getProgressLineColor();
if (mShadowProvider!=null) {
if (mShadowProvider != null) {
ss.isAllowShadowChanging = mShadowProvider.isAllowChangeShadow();
}
return ss;
Expand Down Expand Up @@ -1075,7 +1098,7 @@ public void onRestoreInstanceState(Parcelable state) {
mIvBackground.setRevealDrawingAlpha(1.0f);
mIvBackground.setRadiusPercentage(mRadiusPercentage);

if (mShadowProvider!=null) {
if (mShadowProvider != null) {
mShadowProvider.setAllowChangeShadow(ss.isAllowShadowChanging);
}

Expand All @@ -1099,7 +1122,7 @@ private static class SavedState extends BaseSavedState {
private int smallDiffuserShadowWidth;

private int diffuserPadding;
private int progressViewPadding;
private float progressViewPadding;
private int buttonSize;

private float progressBallRadius;
Expand Down Expand Up @@ -1160,7 +1183,7 @@ public void writeToParcel(Parcel out, int flags) {
out.writeInt(this.smallDiffuserShadowWidth);

out.writeInt(this.diffuserPadding);
out.writeInt(this.progressViewPadding);
out.writeFloat(this.progressViewPadding);
out.writeInt(this.buttonSize);

out.writeFloat(this.progressBallRadius);
Expand All @@ -1186,7 +1209,6 @@ public SavedState[] newArray(int size) {
}



public static abstract class ShadowPercentageProvider {
private boolean allowChangeShadow = false;

Expand All @@ -1212,6 +1234,13 @@ public void setAllowChangeShadow(boolean allowChangeShadow) {
}
}

/**
* Interface for sending events about changing of progress by user interaction.
*/
public interface OnProgressChangedListener {
void onProgressChanged(float progress);
}

/**
* Interface for buttons click listeners
*/
Expand Down Expand Up @@ -1306,6 +1335,7 @@ public Builder(Context context) {

/**
* Set layout params for PlayLayout
*
* @param params LayoutParam for playLayout
* @return
*/
Expand Down Expand Up @@ -1655,6 +1685,15 @@ public Builder setProgressBallColorResource(@ColorRes int colorRes) {
return this;
}

/**
* Set progressChanged Listener
* @param progressChangedListener PlayLayout.OnProgressChangedListener listener for the event;
*/
public Builder setProgressChangedListener(PlayLayout.OnProgressChangedListener progressChangedListener) {
playLayout.setOnProgressChangedListener(progressChangedListener);
return this;
}

/**
* Set buttons click listener
*/
Expand Down

0 comments on commit 7df421c

Please sign in to comment.