diff --git a/app/build.gradle b/app/build.gradle index 4470d33..6b03f84 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -7,7 +7,7 @@ android { minSdkVersion 17 targetSdkVersion 28 versionCode 1 - versionName "1.0" + versionName "v1.2" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { diff --git a/superdialog/build.gradle b/superdialog/build.gradle index 4dab6f9..a662377 100644 --- a/superdialog/build.gradle +++ b/superdialog/build.gradle @@ -1,7 +1,7 @@ apply plugin: 'com.android.library' apply plugin: 'com.github.dcendents.android-maven' group = 'com.github.kishannareshpal' -version = '0.1.1' +version = 'v1.2' android { compileSdkVersion 28 @@ -12,7 +12,7 @@ android { minSdkVersion 17 targetSdkVersion 28 versionCode 1 - versionName "0.1.1" + versionName "v1.2" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" diff --git a/superdialog/src/main/java/com/kishannareshpal/superdialog/SuperDialog.java b/superdialog/src/main/java/com/kishannareshpal/superdialog/SuperDialog.java index 5a18470..c8ac36b 100644 --- a/superdialog/src/main/java/com/kishannareshpal/superdialog/SuperDialog.java +++ b/superdialog/src/main/java/com/kishannareshpal/superdialog/SuperDialog.java @@ -36,6 +36,7 @@ public class SuperDialog extends DialogFragment { private boolean isShown = false; private Context ctx; + SuperDialog superDialog; // Components private AnimatedIcon ai_animatedIcon; @@ -54,6 +55,7 @@ public class SuperDialog extends DialogFragment { private int negativeColorRes = DEFAULT; private int cancelColorRes = DEFAULT; private boolean isAllCaps; + private boolean cancelable; private String title; private String message; private String positiveText; @@ -69,7 +71,7 @@ public void onDismiss(DialogInterface dialog) { } public interface OnButtonClickListener { - void OnButtonClick(Dialog dialog, int whichButton); + void OnButtonClick(SuperDialog dialog, int whichButton); } public SuperDialog iconMode(int mode) { @@ -77,6 +79,11 @@ public SuperDialog iconMode(int mode) { if (isShown) changeIconMode(mode); return this; } + public SuperDialog cancelable(boolean cancelable){ + this.cancelable = cancelable; + if (isShown) changeCancelable(cancelable); + return this; + } public SuperDialog positiveText(String positiveText) { this.positiveText = positiveText; if (isShown) changePositiveText(positiveText); @@ -179,6 +186,7 @@ public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup c // Init Utils this.ctx = getActivity(); + this.superDialog = this; // Set transparent background and remove stock title decoration views.. so the round corners bg shows. if (getDialog() != null && getDialog().getWindow() != null) { @@ -245,6 +253,12 @@ public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup c } + + // Setup Cancelable + private void changeCancelable(boolean cancelable){ + setCancelable(cancelable); + } + // Setup Positive Button private void changePositiveText(String positiveText){ if (positiveText != null){ @@ -261,8 +275,10 @@ private void changeOnPositive(final OnButtonClickListener onPositive){ btn_positive.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - onPositive.OnButtonClick(getDialog(), POSITIVE); - getDialog().dismiss(); + onPositive.OnButtonClick(superDialog, POSITIVE); + if (cancelable){ + getDialog().dismiss(); + } } }); @@ -303,8 +319,10 @@ private void changeOnNegative(final OnButtonClickListener onNegative){ btn_negative.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - onNegative.OnButtonClick(getDialog(), NEGATIVE); - getDialog().dismiss(); + onNegative.OnButtonClick(superDialog, NEGATIVE); + if (cancelable) { + getDialog().dismiss(); + } } }); @@ -345,8 +363,10 @@ private void changeOnCancel(final OnButtonClickListener onCancel){ btn_cancel.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - onCancel.OnButtonClick(getDialog(), CANCEL); - getDialog().dismiss(); + onCancel.OnButtonClick(superDialog, CANCEL); + if (cancelable) { + getDialog().dismiss(); + } } });