Merge "Settings app changes spell checker settings directly without TSM APIs"

This commit is contained in:
TreeHugger Robot
2017-06-30 15:19:35 +00:00
committed by Android (Google) Code Review

View File

@@ -21,6 +21,7 @@ import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.pm.ApplicationInfo; import android.content.pm.ApplicationInfo;
import android.os.Bundle; import android.os.Bundle;
import android.provider.Settings;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import android.support.v7.preference.Preference.OnPreferenceChangeListener; import android.support.v7.preference.Preference.OnPreferenceChangeListener;
import android.support.v7.preference.Preference.OnPreferenceClickListener; import android.support.v7.preference.Preference.OnPreferenceClickListener;
@@ -105,7 +106,8 @@ public class SpellCheckersSettings extends SettingsPreferenceFragment
@Override @Override
public void onSwitchChanged(final Switch switchView, final boolean isChecked) { public void onSwitchChanged(final Switch switchView, final boolean isChecked) {
mTsm.setSpellCheckerEnabled(isChecked); Settings.Secure.putInt(getContentResolver(), Settings.Secure.SPELL_CHECKER_ENABLED,
isChecked ? 1 : 0);
updatePreferenceScreen(); updatePreferenceScreen();
} }
@@ -203,12 +205,17 @@ public class SpellCheckersSettings extends SettingsPreferenceFragment
builder.setSingleChoiceItems(items, checkedItemId, new AlertDialog.OnClickListener() { builder.setSingleChoiceItems(items, checkedItemId, new AlertDialog.OnClickListener() {
@Override @Override
public void onClick(final DialogInterface dialog, final int item) { public void onClick(final DialogInterface dialog, final int item) {
final int subtypeId;
if (item == ITEM_ID_USE_SYSTEM_LANGUAGE) { if (item == ITEM_ID_USE_SYSTEM_LANGUAGE) {
mTsm.setSpellCheckerSubtype(null); subtypeId = SpellCheckerSubtype.SUBTYPE_ID_NONE;
} else { } else {
final int index = convertDialogItemIdToSubtypeIndex(item); final int index = convertDialogItemIdToSubtypeIndex(item);
mTsm.setSpellCheckerSubtype(currentSci.getSubtypeAt(index)); subtypeId = currentSci.getSubtypeAt(index).hashCode();
} }
Settings.Secure.putInt(getContentResolver(),
Settings.Secure.SELECTED_SPELL_CHECKER_SUBTYPE, subtypeId);
if (DBG) { if (DBG) {
final SpellCheckerSubtype subtype = mTsm.getCurrentSpellCheckerSubtype( final SpellCheckerSubtype subtype = mTsm.getCurrentSpellCheckerSubtype(
true /* allowImplicitlySelectedSubtype */); true /* allowImplicitlySelectedSubtype */);
@@ -248,7 +255,11 @@ public class SpellCheckersSettings extends SettingsPreferenceFragment
} }
private void changeCurrentSpellChecker(final SpellCheckerInfo sci) { private void changeCurrentSpellChecker(final SpellCheckerInfo sci) {
mTsm.setCurrentSpellChecker(sci); Settings.Secure.putString(getContentResolver(), Settings.Secure.SELECTED_SPELL_CHECKER,
sci.getId());
// Reset the spell checker subtype
Settings.Secure.putInt(getContentResolver(), Settings.Secure.SELECTED_SPELL_CHECKER_SUBTYPE,
SpellCheckerSubtype.SUBTYPE_ID_NONE);
if (DBG) { if (DBG) {
Log.d(TAG, "Current spell check is " + mTsm.getCurrentSpellChecker().getId()); Log.d(TAG, "Current spell check is " + mTsm.getCurrentSpellChecker().getId());
} }