package com.github.gcacace.signaturepad.utils; import android.databinding.BindingAdapter; import com.github.gcacace.signaturepad.views.SignaturePad; public final class SignaturePadBindingAdapter { @BindingAdapter("onStartSigning") public static void setOnSignedListener(SignaturePad view, final OnStartSigningListener onStartSigningListener) { setOnSignedListener(view, onStartSigningListener, null, null); } @BindingAdapter("onSigned") public static void setOnSignedListener(SignaturePad view, final OnSignedListener onSignedListener) { setOnSignedListener(view, null, onSignedListener, null); } @BindingAdapter("onClear") public static void setOnSignedListener(SignaturePad view, final OnClearListener onClearListener) { setOnSignedListener(view, null, null, onClearListener); } @BindingAdapter(value = {"onStartSigning", "onSigned", "onClear"}, requireAll = false) public static void setOnSignedListener(SignaturePad view, final OnStartSigningListener onStartSigningListener, final OnSignedListener onSignedListener, final OnClearListener onClearListener) { view.setOnSignedListener(new SignaturePad.OnSignedListener() { @Override public void onStartSigning() { if (onStartSigningListener != null) { onStartSigningListener.onStartSigning(); } } @Override public void onSigned() { if (onSignedListener != null) { onSignedListener.onSigned(); } } @Override public void onClear() { if (onClearListener != null) { onClearListener.onClear(); } } }); } public interface OnStartSigningListener { void onStartSigning(); } public interface OnSignedListener { void onSigned(); } public interface OnClearListener { void onClear(); } }