Browse Source

Resolved https://github.com/afollestad/material-dialogs/issues/581

Aidan Follestad 9 năm trước cách đây
mục cha
commit
d5966ebf4b

+ 17 - 2
library/src/main/java/com/afollestad/materialdialogs/prefs/MaterialDialogPreference.java

@@ -9,10 +9,8 @@ import android.os.Bundle;
 import android.os.Parcel;
 import android.os.Parcelable;
 import android.preference.DialogPreference;
-import android.preference.ListPreference;
 import android.preference.PreferenceManager;
 import android.support.annotation.NonNull;
-import android.text.TextUtils;
 import android.util.AttributeSet;
 import android.view.View;
 
@@ -54,6 +52,23 @@ public class MaterialDialogPreference extends DialogPreference {
                 .title(getDialogTitle())
                 .content(getDialogMessage())
                 .icon(getDialogIcon())
+                .dismissListener(this)
+                .callback(new MaterialDialog.ButtonCallback() {
+                    @Override
+                    public void onNeutral(MaterialDialog dialog) {
+                        onClick(dialog, DialogInterface.BUTTON_NEUTRAL);
+                    }
+
+                    @Override
+                    public void onNegative(MaterialDialog dialog) {
+                        onClick(dialog, DialogInterface.BUTTON_NEGATIVE);
+                    }
+
+                    @Override
+                    public void onPositive(MaterialDialog dialog) {
+                        onClick(dialog, DialogInterface.BUTTON_POSITIVE);
+                    }
+                })
                 .positiveText(getPositiveButtonText())
                 .negativeText(getNegativeButtonText())
                 .autoDismiss(true); // immediately close the dialog after selection

+ 12 - 0
library/src/main/java/com/afollestad/materialdialogs/prefs/MaterialEditTextPreference.java

@@ -105,6 +105,7 @@ public class MaterialEditTextPreference extends EditTextPreference {
                 .icon(getDialogIcon())
                 .positiveText(getPositiveButtonText())
                 .negativeText(getNegativeButtonText())
+                .dismissListener(this)
                 .callback(callback)
                 .dismissListener(this);
 
@@ -161,10 +162,21 @@ public class MaterialEditTextPreference extends EditTextPreference {
     private final ButtonCallback callback = new ButtonCallback() {
         @Override
         public void onPositive(MaterialDialog dialog) {
+            onClick(dialog, DialogInterface.BUTTON_POSITIVE);
             String value = mEditText.getText().toString();
             if (callChangeListener(value) && isPersistent())
                 setText(value);
         }
+
+        @Override
+        public void onNeutral(MaterialDialog dialog) {
+            onClick(dialog, DialogInterface.BUTTON_NEUTRAL);
+        }
+
+        @Override
+        public void onNegative(MaterialDialog dialog) {
+            onClick(dialog, DialogInterface.BUTTON_NEGATIVE);
+        }
     };
 
     /**

+ 17 - 0
library/src/main/java/com/afollestad/materialdialogs/prefs/MaterialListPreference.java

@@ -66,6 +66,23 @@ public class MaterialListPreference extends ListPreference {
                 .title(getDialogTitle())
                 .content(getDialogMessage())
                 .icon(getDialogIcon())
+                .dismissListener(this)
+                .callback(new MaterialDialog.ButtonCallback() {
+                    @Override
+                    public void onNeutral(MaterialDialog dialog) {
+                        onClick(dialog, DialogInterface.BUTTON_NEUTRAL);
+                    }
+
+                    @Override
+                    public void onNegative(MaterialDialog dialog) {
+                        onClick(dialog, DialogInterface.BUTTON_NEGATIVE);
+                    }
+
+                    @Override
+                    public void onPositive(MaterialDialog dialog) {
+                        onClick(dialog, DialogInterface.BUTTON_POSITIVE);
+                    }
+                })
                 .negativeText(getNegativeButtonText())
                 .items(getEntries())
                 .autoDismiss(true) // immediately close the dialog after selection

+ 16 - 0
library/src/main/java/com/afollestad/materialdialogs/prefs/MaterialMultiSelectListPreference.java

@@ -74,6 +74,22 @@ public class MaterialMultiSelectListPreference extends MultiSelectListPreference
                 .icon(getDialogIcon())
                 .negativeText(getNegativeButtonText())
                 .positiveText(getPositiveButtonText())
+                .callback(new MaterialDialog.ButtonCallback() {
+                    @Override
+                    public void onNeutral(MaterialDialog dialog) {
+                        onClick(dialog, DialogInterface.BUTTON_NEUTRAL);
+                    }
+
+                    @Override
+                    public void onNegative(MaterialDialog dialog) {
+                        onClick(dialog, DialogInterface.BUTTON_NEGATIVE);
+                    }
+
+                    @Override
+                    public void onPositive(MaterialDialog dialog) {
+                        onClick(dialog, DialogInterface.BUTTON_POSITIVE);
+                    }
+                })
                 .items(getEntries())
                 .itemsCallbackMultiChoice(indices.toArray(new Integer[indices.size()]), new MaterialDialog.ListCallbackMultiChoice() {
                     @Override