From 42a7e4784a1ae3d87136885f0d0a30286ce84066 Mon Sep 17 00:00:00 2001 From: Pingzhi Wang Date: Tue, 14 Nov 2023 11:34:17 +0100 Subject: Fix crash when clicking Spell Checker Some variants do not have the default Spell Checker (GBoard) pre-installed (typically Mainland China variants). Disable the Spell Checker settings for such variants, to avoid crashes. Bug: 310751714 Test: Manual Change-Id: I1fb5a9959cffd26f3921e32226605a38636871b6 --- src/com/android/settings/inputmethod/SpellCheckerPreference.java | 3 +++ src/com/android/settings/inputmethod/SpellCheckersSettings.java | 1 + 2 files changed, 4 insertions(+) diff --git a/src/com/android/settings/inputmethod/SpellCheckerPreference.java b/src/com/android/settings/inputmethod/SpellCheckerPreference.java index 116f1c7b186..8c8942a00c6 100644 --- a/src/com/android/settings/inputmethod/SpellCheckerPreference.java +++ b/src/com/android/settings/inputmethod/SpellCheckerPreference.java @@ -47,6 +47,9 @@ class SpellCheckerPreference extends CustomListPreference { super(context, null); mScis = scis; setWidgetLayoutResource(R.layout.preference_widget_gear); + if (scis == null) { + return; + } CharSequence[] labels = new CharSequence[scis.length]; CharSequence[] values = new CharSequence[scis.length]; for (int i = 0 ; i < scis.length; i++) { diff --git a/src/com/android/settings/inputmethod/SpellCheckersSettings.java b/src/com/android/settings/inputmethod/SpellCheckersSettings.java index 99f7a4e9435..fcba4732483 100644 --- a/src/com/android/settings/inputmethod/SpellCheckersSettings.java +++ b/src/com/android/settings/inputmethod/SpellCheckersSettings.java @@ -133,6 +133,7 @@ public class SpellCheckersSettings extends SettingsPreferenceFragment if (preference instanceof SpellCheckerPreference) { final SpellCheckerPreference pref = (SpellCheckerPreference) preference; pref.setSelected(mCurrentSci); + pref.setEnabled(mEnabledScis != null); } } mSpellCheckerLanaguagePref.setEnabled(isSpellCheckerEnabled && mCurrentSci != null); -- cgit v1.2.3