Loading res/values/strings.xml +7 −0 Original line number Diff line number Diff line Loading @@ -2568,6 +2568,13 @@ found in the list of installed apps.</string> card numbers. It comes from the app <xliff:g id="ime_application_name">%1$s</xliff:g>. Use this input method?</string> <!-- Warning message about security implications of enabling a spell checker, displayed as a dialog message when the user selects to enable a spell checker. --> <string name="spellchecker_security_warning">This spell checker may be able to collect all the text you type, including personal data like passwords and credit card numbers. It comes from the app <xliff:g id="spellchecker_application_name">%1$s</xliff:g>. Use this spell checker?</string> <!-- On Language & input settings screen, heading. Inside the "Language & input settings" screen, this is the header for settings that relate to mouse and trackpad devices. [CHAR LIMIT=40] --> <string name="pointer_settings_category">Mouse/trackpad</string> <!-- On Language & input settings screen, setting summary. Setting for mouse pointer speed. [CHAR LIMIT=35] --> Loading src/com/android/settings/inputmethod/InputMethodAndSubtypeEnabler.java +0 −1 Original line number Diff line number Diff line Loading @@ -38,7 +38,6 @@ import android.view.inputmethod.InputMethodSubtype; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.List; Loading src/com/android/settings/inputmethod/SingleSpellCheckerPreference.java +6 −1 Original line number Diff line number Diff line Loading @@ -44,6 +44,7 @@ public class SingleSpellCheckerPreference extends Preference { private final SpellCheckersSettings mFragment; private final Resources mRes; private final TextServicesManager mTsm; private AlertDialog mDialog = null; private TextView mTitleText; private TextView mSummaryText; private View mPrefAll; Loading Loading @@ -127,6 +128,9 @@ public class SingleSpellCheckerPreference extends Preference { } private void onSubtypeButtonClicked(View arg0) { if (mDialog != null && mDialog.isShowing()) { mDialog.dismiss(); } final AlertDialog.Builder builder = new AlertDialog.Builder(mFragment.getActivity()); builder.setTitle(R.string.phone_language); final int size = mSpellCheckerInfo.getSubtypeCount(); Loading Loading @@ -167,7 +171,8 @@ public class SingleSpellCheckerPreference extends Preference { dialog.dismiss(); } }); builder.show(); mDialog = builder.create(); mDialog.show(); } private void onSettingsButtonClicked(View arg0) { Loading src/com/android/settings/inputmethod/SpellCheckersSettings.java +52 −5 Original line number Diff line number Diff line Loading @@ -19,14 +19,16 @@ package com.android.settings.inputmethod; import com.android.settings.R; import com.android.settings.SettingsPreferenceFragment; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.os.Bundle; import android.preference.Preference; import android.preference.PreferenceScreen; import android.util.Log; import android.view.textservice.SpellCheckerInfo; import android.view.textservice.SpellCheckerSubtype; import android.view.textservice.TextServicesManager; import java.util.ArrayList; Loading @@ -36,6 +38,7 @@ public class SpellCheckersSettings extends SettingsPreferenceFragment private static final String TAG = SpellCheckersSettings.class.getSimpleName(); private static final boolean DBG = false; private AlertDialog mDialog = null; private SpellCheckerInfo mCurrentSci; private SpellCheckerInfo[] mEnabledScis; private TextServicesManager mTsm; Loading Loading @@ -96,17 +99,61 @@ public class SpellCheckersSettings extends SettingsPreferenceFragment } @Override public boolean onPreferenceClick(Preference arg0) { public boolean onPreferenceClick(Preference pref) { SingleSpellCheckerPreference targetScp = null; for (SingleSpellCheckerPreference scp : mSpellCheckers) { if (arg0.equals(scp)) { mTsm.setCurrentSpellChecker(scp.getSpellCheckerInfo()); if (pref.equals(scp)) { targetScp = scp; } } if (targetScp != null) { if (!isSystemApp(targetScp.getSpellCheckerInfo())) { showSecurityWarnDialog(targetScp); } else { changeCurrentSpellChecker(targetScp); } } return true; } private void showSecurityWarnDialog(final SingleSpellCheckerPreference scp) { if (mDialog != null && mDialog.isShowing()) { mDialog.dismiss(); } mDialog = (new AlertDialog.Builder(getActivity())) .setTitle(android.R.string.dialog_alert_title) .setIcon(android.R.drawable.ic_dialog_alert) .setCancelable(true) .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { changeCurrentSpellChecker(scp); } }) .setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }) .create(); mDialog.setMessage(getResources().getString(R.string.spellchecker_security_warning, scp.getSpellCheckerInfo().getServiceInfo().applicationInfo.loadLabel( getActivity().getPackageManager()))); mDialog.show(); } private void changeCurrentSpellChecker(SingleSpellCheckerPreference scp) { mTsm.setCurrentSpellChecker(scp.getSpellCheckerInfo()); if (DBG) { Log.d(TAG, "Current spell check is " + SpellCheckerUtils.getCurrentSpellChecker(mTsm).getId()); } updateScreen(); return true; } private static boolean isSystemApp(SpellCheckerInfo sci) { return (sci.getServiceInfo().applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0; } } src/com/android/settings/inputmethod/UserDictionaryList.java +0 −1 Original line number Diff line number Diff line Loading @@ -18,7 +18,6 @@ package com.android.settings.inputmethod; import com.android.settings.R; import com.android.settings.SettingsPreferenceFragment; import com.android.settings.UserDictionarySettings; import com.android.settings.Utils; import android.app.Activity; Loading Loading
res/values/strings.xml +7 −0 Original line number Diff line number Diff line Loading @@ -2568,6 +2568,13 @@ found in the list of installed apps.</string> card numbers. It comes from the app <xliff:g id="ime_application_name">%1$s</xliff:g>. Use this input method?</string> <!-- Warning message about security implications of enabling a spell checker, displayed as a dialog message when the user selects to enable a spell checker. --> <string name="spellchecker_security_warning">This spell checker may be able to collect all the text you type, including personal data like passwords and credit card numbers. It comes from the app <xliff:g id="spellchecker_application_name">%1$s</xliff:g>. Use this spell checker?</string> <!-- On Language & input settings screen, heading. Inside the "Language & input settings" screen, this is the header for settings that relate to mouse and trackpad devices. [CHAR LIMIT=40] --> <string name="pointer_settings_category">Mouse/trackpad</string> <!-- On Language & input settings screen, setting summary. Setting for mouse pointer speed. [CHAR LIMIT=35] --> Loading
src/com/android/settings/inputmethod/InputMethodAndSubtypeEnabler.java +0 −1 Original line number Diff line number Diff line Loading @@ -38,7 +38,6 @@ import android.view.inputmethod.InputMethodSubtype; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.List; Loading
src/com/android/settings/inputmethod/SingleSpellCheckerPreference.java +6 −1 Original line number Diff line number Diff line Loading @@ -44,6 +44,7 @@ public class SingleSpellCheckerPreference extends Preference { private final SpellCheckersSettings mFragment; private final Resources mRes; private final TextServicesManager mTsm; private AlertDialog mDialog = null; private TextView mTitleText; private TextView mSummaryText; private View mPrefAll; Loading Loading @@ -127,6 +128,9 @@ public class SingleSpellCheckerPreference extends Preference { } private void onSubtypeButtonClicked(View arg0) { if (mDialog != null && mDialog.isShowing()) { mDialog.dismiss(); } final AlertDialog.Builder builder = new AlertDialog.Builder(mFragment.getActivity()); builder.setTitle(R.string.phone_language); final int size = mSpellCheckerInfo.getSubtypeCount(); Loading Loading @@ -167,7 +171,8 @@ public class SingleSpellCheckerPreference extends Preference { dialog.dismiss(); } }); builder.show(); mDialog = builder.create(); mDialog.show(); } private void onSettingsButtonClicked(View arg0) { Loading
src/com/android/settings/inputmethod/SpellCheckersSettings.java +52 −5 Original line number Diff line number Diff line Loading @@ -19,14 +19,16 @@ package com.android.settings.inputmethod; import com.android.settings.R; import com.android.settings.SettingsPreferenceFragment; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.os.Bundle; import android.preference.Preference; import android.preference.PreferenceScreen; import android.util.Log; import android.view.textservice.SpellCheckerInfo; import android.view.textservice.SpellCheckerSubtype; import android.view.textservice.TextServicesManager; import java.util.ArrayList; Loading @@ -36,6 +38,7 @@ public class SpellCheckersSettings extends SettingsPreferenceFragment private static final String TAG = SpellCheckersSettings.class.getSimpleName(); private static final boolean DBG = false; private AlertDialog mDialog = null; private SpellCheckerInfo mCurrentSci; private SpellCheckerInfo[] mEnabledScis; private TextServicesManager mTsm; Loading Loading @@ -96,17 +99,61 @@ public class SpellCheckersSettings extends SettingsPreferenceFragment } @Override public boolean onPreferenceClick(Preference arg0) { public boolean onPreferenceClick(Preference pref) { SingleSpellCheckerPreference targetScp = null; for (SingleSpellCheckerPreference scp : mSpellCheckers) { if (arg0.equals(scp)) { mTsm.setCurrentSpellChecker(scp.getSpellCheckerInfo()); if (pref.equals(scp)) { targetScp = scp; } } if (targetScp != null) { if (!isSystemApp(targetScp.getSpellCheckerInfo())) { showSecurityWarnDialog(targetScp); } else { changeCurrentSpellChecker(targetScp); } } return true; } private void showSecurityWarnDialog(final SingleSpellCheckerPreference scp) { if (mDialog != null && mDialog.isShowing()) { mDialog.dismiss(); } mDialog = (new AlertDialog.Builder(getActivity())) .setTitle(android.R.string.dialog_alert_title) .setIcon(android.R.drawable.ic_dialog_alert) .setCancelable(true) .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { changeCurrentSpellChecker(scp); } }) .setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }) .create(); mDialog.setMessage(getResources().getString(R.string.spellchecker_security_warning, scp.getSpellCheckerInfo().getServiceInfo().applicationInfo.loadLabel( getActivity().getPackageManager()))); mDialog.show(); } private void changeCurrentSpellChecker(SingleSpellCheckerPreference scp) { mTsm.setCurrentSpellChecker(scp.getSpellCheckerInfo()); if (DBG) { Log.d(TAG, "Current spell check is " + SpellCheckerUtils.getCurrentSpellChecker(mTsm).getId()); } updateScreen(); return true; } private static boolean isSystemApp(SpellCheckerInfo sci) { return (sci.getServiceInfo().applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0; } }
src/com/android/settings/inputmethod/UserDictionaryList.java +0 −1 Original line number Diff line number Diff line Loading @@ -18,7 +18,6 @@ package com.android.settings.inputmethod; import com.android.settings.R; import com.android.settings.SettingsPreferenceFragment; import com.android.settings.UserDictionarySettings; import com.android.settings.Utils; import android.app.Activity; Loading