From cbaf6d85f185ef34649825412dcc080b587fcf08 Mon Sep 17 00:00:00 2001 From: "Tadashi G. Takaoka" Date: Mon, 23 Apr 2012 22:18:27 +0900 Subject: Cancel SubtypePreference dialog properly Bug: 6384416 Bug: 6387408 Change-Id: Ia7b0653a09410b42a55915815c887bf0ad56c856 --- .../android/inputmethod/latin/AdditionalSubtypeSettings.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'java/src') diff --git a/java/src/com/android/inputmethod/latin/AdditionalSubtypeSettings.java b/java/src/com/android/inputmethod/latin/AdditionalSubtypeSettings.java index 579cc398e..8ce91fd2d 100644 --- a/java/src/com/android/inputmethod/latin/AdditionalSubtypeSettings.java +++ b/java/src/com/android/inputmethod/latin/AdditionalSubtypeSettings.java @@ -141,7 +141,8 @@ public class AdditionalSubtypeSettings extends PreferenceFragment { public KeyboardLayoutSetAdapter getKeyboardLayoutSetAdapter(); } - static class SubtypePreference extends DialogPreference { + static class SubtypePreference extends DialogPreference + implements DialogInterface.OnCancelListener { private static final String KEY_PREFIX = "subtype_pref_"; private static final String KEY_NEW_SUBTYPE = KEY_PREFIX + "new"; @@ -205,6 +206,7 @@ public class AdditionalSubtypeSettings extends PreferenceFragment { @Override protected void onPrepareDialogBuilder(AlertDialog.Builder builder) { final Context context = builder.getContext(); + builder.setCancelable(true).setOnCancelListener(this); if (isIncomplete()) { builder.setPositiveButton(R.string.add, this) .setNegativeButton(android.R.string.cancel, this); @@ -232,6 +234,13 @@ public class AdditionalSubtypeSettings extends PreferenceFragment { } } + @Override + public void onCancel(DialogInterface dialog) { + if (isIncomplete()) { + mProxy.onRemovePressed(this); + } + } + @Override public void onClick(DialogInterface dialog, int which) { super.onClick(dialog, which); -- cgit v1.2.3-83-g751a