diff --git a/res/xml/physical_keyboard_settings.xml b/res/xml/physical_keyboard_settings.xml index 7b6c788e011..e03eeae53a0 100644 --- a/res/xml/physical_keyboard_settings.xml +++ b/res/xml/physical_keyboard_settings.xml @@ -31,25 +31,25 @@ android:title="@string/keyboard_shortcuts_helper" android:summary="@string/keyboard_shortcuts_helper_summary" /> - + - + - + diff --git a/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java b/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java index 0f263f26102..b12165e40eb 100644 --- a/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java +++ b/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java @@ -32,6 +32,7 @@ import android.os.Handler; import android.os.UserHandle; import android.provider.Settings.Secure; +import android.provider.Settings.System; import android.support.v14.preference.SwitchPreference; import android.support.v7.preference.Preference; import android.support.v7.preference.Preference.OnPreferenceChangeListener; @@ -65,6 +66,9 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment private static final String SHOW_VIRTUAL_KEYBOARD_SWITCH = "show_virtual_keyboard_switch"; private static final String KEYBOARD_SHORTCUTS_HELPER = "keyboard_shortcuts_helper"; private static final String IM_SUBTYPE_MODE_KEYBOARD = "keyboard"; + private static final String AUTO_REPLACE_SWITCH = "auto_replace"; + private static final String AUTO_CAPS_SWITCH = "auto_caps"; + private static final String AUTO_PUNCTUATE_SWITCH = "auto_punctuate"; @NonNull private final List mLastHardKeyboards = new ArrayList<>(); @@ -108,6 +112,46 @@ public boolean onPreferenceClick(Preference preference) { return true; } }); + + Preference.OnPreferenceClickListener textPreferenceClickListener = + new Preference.OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + SwitchPreference pref = (SwitchPreference) preference; + if (AUTO_REPLACE_SWITCH.equals(pref.getKey())) { + System.putInt(getContentResolver(), System.TEXT_AUTO_REPLACE, + pref.isChecked() ? 1 : 0); + } else if (AUTO_CAPS_SWITCH.equals(pref.getKey())) { + System.putInt(getContentResolver(), System.TEXT_AUTO_CAPS, + pref.isChecked() ? 1 : 0); + } else if (AUTO_PUNCTUATE_SWITCH.equals(pref.getKey())) { + System.putInt(getContentResolver(), System.TEXT_AUTO_PUNCTUATE, + pref.isChecked() ? 1 : 0); + } + return true; + } + }; + + SwitchPreference autoReplaceSwitch = Preconditions.checkNotNull( + (SwitchPreference) mKeyboardAssistanceCategory.findPreference( + AUTO_REPLACE_SWITCH)); + autoReplaceSwitch.setChecked(System.getInt(getContentResolver(), + System.TEXT_AUTO_REPLACE, 1) > 0); + autoReplaceSwitch.setOnPreferenceClickListener(textPreferenceClickListener); + + SwitchPreference autoCapsSwitch = Preconditions.checkNotNull( + (SwitchPreference) mKeyboardAssistanceCategory.findPreference( + AUTO_CAPS_SWITCH)); + autoCapsSwitch.setChecked(System.getInt(getContentResolver(), + System.TEXT_AUTO_CAPS, 1) > 0); + autoCapsSwitch.setOnPreferenceClickListener(textPreferenceClickListener); + + SwitchPreference autoPunctuateSwitch = Preconditions.checkNotNull( + (SwitchPreference) mKeyboardAssistanceCategory.findPreference( + AUTO_PUNCTUATE_SWITCH)); + autoPunctuateSwitch.setChecked(System.getInt(getContentResolver(), + System.TEXT_AUTO_PUNCTUATE, 1) > 0); + autoPunctuateSwitch.setOnPreferenceClickListener(textPreferenceClickListener); } @Override