Settings: Enable "ok" dialog button for no-op changes to existing zen rules.

Bug: 21307309
Change-Id: Ic7a9cc124e26340e93a08da45c9f1a0043beee76
diff --git a/src/com/android/settings/notification/ZenRuleNameDialog.java b/src/com/android/settings/notification/ZenRuleNameDialog.java
index 937940a..1279ee6 100644
--- a/src/com/android/settings/notification/ZenRuleNameDialog.java
+++ b/src/com/android/settings/notification/ZenRuleNameDialog.java
@@ -48,6 +48,7 @@
     private final AlertDialog mDialog;
     private final EditText mEditText;
     private final RadioGroup mTypes;
+    private final String mOriginalRuleName;
     private final ArraySet<String> mExistingNames;
     private final ServiceListing mServiceListing;
     private final RuleInfo[] mExternalRules = new RuleInfo[3];
@@ -57,6 +58,7 @@
             ArraySet<String> existingNames) {
         mServiceListing = serviceListing;
         mIsNew = ruleName == null;
+        mOriginalRuleName = ruleName;
         final View v = LayoutInflater.from(context).inflate(R.layout.zen_rule_name, null, false);
         mEditText = (EditText) v.findViewById(R.id.rule_name);
         if (!mIsNew) {
@@ -79,7 +81,12 @@
                 .setPositiveButton(R.string.okay, new DialogInterface.OnClickListener() {
                     @Override
                     public void onClick(DialogInterface dialog, int which) {
-                        onOk(trimmedText(), selectedRuleInfo());
+                        final String newName = trimmedText();
+                        if (!mIsNew && mOriginalRuleName != null
+                                && mOriginalRuleName.equalsIgnoreCase(newName)) {
+                            return;  // no change to an existing rule, just dismiss
+                        }
+                        onOk(newName, selectedRuleInfo());
                     }
                 })
                 .setOnDismissListener(new OnDismissListener() {
@@ -148,7 +155,8 @@
     private void updatePositiveButton() {
         final String name = trimmedText();
         final boolean validName = !TextUtils.isEmpty(name)
-                && !mExistingNames.contains(name.toLowerCase());
+                && (name.equalsIgnoreCase(mOriginalRuleName)
+                        || !mExistingNames.contains(name.toLowerCase()));
         mDialog.getButton(DialogInterface.BUTTON_POSITIVE).setEnabled(validName);
     }