Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import android.graphics.Canvas;
import android.graphics.Color;
import android.os.Build;
import android.os.Handler;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.SoundEffectConstants;
Expand Down Expand Up @@ -40,11 +41,13 @@ public class MaterialAnimatedSwitch extends View {
private int ballColorRelease = Color.parseColor("#5992FB");
private int ballColorPress = Color.parseColor("#FFFFFF");
private int ballShadowColor = Color.parseColor("#99000000");
private int animationDuraion;
private Bitmap releaseIcon;
private Bitmap pressIcon;
private BallFinishObservable ballFinishObservable;
private BallMoveObservable ballMoveObservable;
private boolean isClickable = true;
private boolean isClickableManageByLibrary = true;
private boolean isRefreshable = true;
private boolean isToggle = false;
private CancelTask cancelTask = new CancelTask();
Expand All @@ -66,6 +69,7 @@ public MaterialAnimatedSwitch(Context context, AttributeSet attrs, int defStyleA
}

private void init() {
animationDuraion = getResources().getInteger(R.integer.animation_duration);
margin = (int) getContext().getResources().getDimension(R.dimen.margin);
initObservables();
initPainters();
Expand Down Expand Up @@ -191,6 +195,25 @@ public boolean isChecked() {
return actualState.equals(MaterialAnimatedSwitchState.PRESS);
}

@Override
public boolean isClickable() {
return isClickable;
}

@Override
public void setClickable(final boolean clickable) {
isClickable = clickable;
}

public void setClickableManageByLibrary(boolean clickableManageByLibrary) {
isClickableManageByLibrary = clickableManageByLibrary;
}

public boolean isClickableManageByLibrary() {

return isClickableManageByLibrary;
}

public void toggle() {
if (isClickable) {
isToggle = true;
Expand All @@ -207,7 +230,7 @@ private class BallStateObserver implements Observer {
@Override
public void update(Observable observable, Object data) {
BallFinishObservable ballFinishObservable = (BallFinishObservable) observable;
isClickable = !ballFinishObservable.getState().equals(BallFinishObservable.BallState.MOVE);
if(MaterialAnimatedSwitch.this.isClickableManageByLibrary())isClickable = !ballFinishObservable.getState().equals(BallFinishObservable.BallState.MOVE);

if (ballFinishObservable.getState().equals(BallFinishObservable.BallState.PRESS)) {
if (onCheckedChangeListener != null && !isToggle) {
Expand Down