Merge "Reduce the amount of I/O done on the UI thread." into jb-dev
diff --git a/src/com/android/settings/inputmethod/InputMethodPreference.java b/src/com/android/settings/inputmethod/InputMethodPreference.java
index 90eef85..6402dff 100644
--- a/src/com/android/settings/inputmethod/InputMethodPreference.java
+++ b/src/com/android/settings/inputmethod/InputMethodPreference.java
@@ -66,10 +66,10 @@
return;
}
if (isChecked()) {
- setChecked(false);
+ setChecked(false, true /* save */);
} else {
if (mAlwaysChecked) {
- setChecked(true);
+ setChecked(true, true /* save */);
} else {
showSecurityWarnDialog(mImi, InputMethodPreference.this);
}
@@ -222,14 +222,25 @@
setSummary(summary);
}
- @Override
- public void setChecked(boolean checked) {
+ /**
+ * Sets the checkbox state and optionally saves the settings.
+ * @param checked whether to check the box
+ * @param save whether to save IME settings
+ */
+ public void setChecked(boolean checked, boolean save) {
super.setChecked(checked);
- saveImeSettings();
+ if (save) {
+ saveImeSettings();
+ }
updateSummary();
}
- private void showSecurityWarnDialog(InputMethodInfo imi, final CheckBoxPreference chkPref) {
+ @Override
+ public void setChecked(boolean checked) {
+ setChecked(checked, false);
+ }
+
+ private void showSecurityWarnDialog(InputMethodInfo imi, final InputMethodPreference chkPref) {
if (mDialog != null && mDialog.isShowing()) {
mDialog.dismiss();
}
@@ -241,7 +252,7 @@
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
- chkPref.setChecked(true);
+ chkPref.setChecked(true, true);
}
})
.setNegativeButton(android.R.string.cancel,