Skip to content

Commit

Permalink
refactor: Implemented Utils.betweenZeroOne method. Added @nullable an…
Browse files Browse the repository at this point in the history
…notations. Added non null condition to setShadowProvider.
  • Loading branch information
yatsinskiyCR committed Sep 5, 2016
1 parent 84100e4 commit 544c625
Show file tree
Hide file tree
Showing 5 changed files with 43 additions and 19 deletions.
39 changes: 26 additions & 13 deletions play_widget/src/main/java/com/cleveroad/play_widget/PlayLayout.java
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
import com.cleveroad.play_widget.internal.DiffuserView;
import com.cleveroad.play_widget.internal.ProgressLineView;
import com.cleveroad.play_widget.internal.RoundRectImageView;
import com.cleveroad.play_widget.internal.Utils;

/**
* PlayLayout View implementation
Expand Down Expand Up @@ -84,8 +85,8 @@ public class PlayLayout extends RelativeLayout implements OnShadowChangeListener
private ImageView mIvSkipNext;
private ImageView mIvRepeat;

private OnButtonsClickListener mClickListener;
private OnButtonsLongClickListener mLongClickListener;
private @Nullable OnButtonsClickListener mClickListener;
private @Nullable OnButtonsLongClickListener mLongClickListener;

public PlayLayout(Context context) {
this(context, null);
Expand Down Expand Up @@ -418,12 +419,20 @@ public void addView(View child, int width, int height) {
}
}

public void setOnButtonsClickListener(OnButtonsClickListener listener) {
this.mClickListener = listener;
/**
* Set OnButtonsClickListener for layout
* @param listener -> OnButtonsClickListener
*/
public void setOnButtonsClickListener(@Nullable OnButtonsClickListener listener) {
mClickListener = listener;
}

public void setOnButtonsLongClickListener(OnButtonsLongClickListener listener) {
this.mLongClickListener = listener;
/**
* Set OnButtonsLongClickListener for layout
* @param listener -> OnButtonsLongClickListener
*/
public void setOnButtonsLongClickListener(@Nullable OnButtonsLongClickListener listener) {
mLongClickListener = listener;
}

@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
Expand Down Expand Up @@ -929,7 +938,7 @@ public void setProgressBallColorResource(@ColorRes int colorRes) {
*
* @param progressChangedListener PlayLayout.OnProgressChangedListener listener for the event;
*/
public void setOnProgressChangedListener(PlayLayout.OnProgressChangedListener progressChangedListener) {
public void setOnProgressChangedListener(@Nullable PlayLayout.OnProgressChangedListener progressChangedListener) {
mProgressLineView.setOnProgressChangedListener(progressChangedListener);
}

Expand Down Expand Up @@ -959,6 +968,10 @@ private void setRadiusPercentage(float radiusPercentage) {
* @param provider ShadowPercentageProvider
*/
public void setShadowProvider(@NonNull ShadowPercentageProvider provider) {
//noinspection ConstantConditions
if (provider==null) {
throw new IllegalArgumentException("ShadowPercentageProvider cannot be null");
}
mShadowProvider = provider;
provider.setShadowChangerListener(this);
if (isOpenInner()) {
Expand All @@ -975,9 +988,9 @@ public void setShadowProvider(@NonNull ShadowPercentageProvider provider) {
*/
@Override
public void shadowChanged(float bigDiffuserShadowPercentage, float mediumDiffuserShadowPercentage, float smallDiffuserShadowPercentage) {
mBigShadowDrawable.setShadowSizeMultiplier(Math.min(1.0f, Math.max(0.0f, bigDiffuserShadowPercentage)) * (1 - BIG_DIFFUSER_MIN_SHADOW_PERCENT) + BIG_DIFFUSER_MIN_SHADOW_PERCENT);
mMediumShadowDrawable.setShadowSizeMultiplier(Math.min(1.0f, Math.max(0.0f, mediumDiffuserShadowPercentage)) * (1 - MEDIUM_DIFFUSER_MIN_SHADOW_PERCENT) + MEDIUM_DIFFUSER_MIN_SHADOW_PERCENT);
mSmallShadowDrawable.setShadowSizeMultiplier(Math.min(1.0f, Math.max(0.0f, smallDiffuserShadowPercentage)) * (1 - SMALL_DIFFUSER_MIN_SHADOW_PERCENT) + SMALL_DIFFUSER_MIN_SHADOW_PERCENT);
mBigShadowDrawable.setShadowSizeMultiplier(Utils.betweenZeroOne(bigDiffuserShadowPercentage) * (1 - BIG_DIFFUSER_MIN_SHADOW_PERCENT) + BIG_DIFFUSER_MIN_SHADOW_PERCENT);
mMediumShadowDrawable.setShadowSizeMultiplier(Utils.betweenZeroOne(mediumDiffuserShadowPercentage) * (1 - MEDIUM_DIFFUSER_MIN_SHADOW_PERCENT) + MEDIUM_DIFFUSER_MIN_SHADOW_PERCENT);
mSmallShadowDrawable.setShadowSizeMultiplier(Utils.betweenZeroOne(smallDiffuserShadowPercentage) * (1 - SMALL_DIFFUSER_MIN_SHADOW_PERCENT) + SMALL_DIFFUSER_MIN_SHADOW_PERCENT);
}

/**
Expand Down Expand Up @@ -1710,23 +1723,23 @@ public Builder setProgressBallColorResource(@ColorRes int colorRes) {
*
* @param progressChangedListener PlayLayout.OnProgressChangedListener listener for the event;
*/
public Builder setProgressChangedListener(PlayLayout.OnProgressChangedListener progressChangedListener) {
public Builder setProgressChangedListener(@Nullable PlayLayout.OnProgressChangedListener progressChangedListener) {
playLayout.setOnProgressChangedListener(progressChangedListener);
return this;
}

/**
* Set buttons click listener
*/
public Builder setOnButtonsClickListener(OnButtonsClickListener listener) {
public Builder setOnButtonsClickListener(@Nullable OnButtonsClickListener listener) {
playLayout.setOnButtonsClickListener(listener);
return this;
}

/**
* Set buttons long click listener
*/
public Builder setOnButtonsLongClickListener(OnButtonsLongClickListener listener) {
public Builder setOnButtonsLongClickListener(@Nullable OnButtonsLongClickListener listener) {
playLayout.setOnButtonsLongClickListener(listener);
return this;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
import android.support.annotation.NonNull;
import android.support.v4.content.ContextCompat;

import com.cleveroad.play_widget.internal.Utils;

/**
* Drawable that draw shadow for diffusers. provide methods for changing shadow size
*/
Expand Down Expand Up @@ -212,7 +214,7 @@ public void showShadow(boolean animated) {
}

public void showShadow(boolean animated, float percentage) {
percentage = Math.min(1.0f, Math.max(0.0f, percentage));
percentage = Utils.betweenZeroOne(percentage);
if (animated) {
ObjectAnimator.ofInt(this, "alpha", 0, (int) (255 * percentage)).setDuration(SHADOW_ANIMATION_DURATION).start();
} else {
Expand All @@ -225,7 +227,7 @@ public void hideShadow(boolean animated) {
}

public void hideShadow(boolean animated, float percentage, Animator.AnimatorListener listener) {
percentage = Math.min(1.0f, Math.max(0.0f, percentage));
percentage = Utils.betweenZeroOne(percentage);
if (animated) {
Animator animator = ObjectAnimator.ofInt(this, "alpha", (int) (255 * percentage), 0).setDuration(SHADOW_ANIMATION_DURATION);
if (listener != null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import android.graphics.RectF;
import android.os.Build;
import android.support.annotation.ColorInt;
import android.support.annotation.Nullable;
import android.support.v4.content.ContextCompat;
import android.util.AttributeSet;
import android.view.MotionEvent;
Expand Down Expand Up @@ -89,7 +90,7 @@ private void init() {

public void setProgress(float progress) {
if (!mHandledTouch) {
this.mProgress = Math.min(1.0f, Math.max(0.0f, progress));
mProgress = Utils.betweenZeroOne(progress);
}
}

Expand Down Expand Up @@ -271,7 +272,7 @@ public float getPadding() {
*
* @param progressChangedListener PlayLayout.OnProgressChangedListener listener for the event;
*/
public void setOnProgressChangedListener(PlayLayout.OnProgressChangedListener progressChangedListener) {
public void setOnProgressChangedListener(@Nullable PlayLayout.OnProgressChangedListener progressChangedListener) {
mProgressChangedListener = progressChangedListener;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.cleveroad.play_widget.internal;

public class Utils {
private Utils() {
//no instance
}
public static float betweenZeroOne(float value) {
return Math.min(1.0f, Math.max(0.0f, value));
}
}
2 changes: 0 additions & 2 deletions sample/src/main/java/com/cleveroad/sample/MainActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.media.AudioManager;
import android.media.MediaPlayer;
Expand All @@ -17,7 +16,6 @@
import android.support.v7.app.AppCompatActivity;
import android.text.Html;
import android.util.Log;
import android.widget.RelativeLayout;
import android.widget.Toast;

import com.bumptech.glide.Glide;
Expand Down

0 comments on commit 544c625

Please sign in to comment.