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
diff --git a/src/com/android/settings/inputmethod/SpellCheckerPreference.java b/src/com/android/settings/inputmethod/SpellCheckerPreference.java
index 116f1c7..8c8942a 100644
--- a/src/com/android/settings/inputmethod/SpellCheckerPreference.java
+++ b/src/com/android/settings/inputmethod/SpellCheckerPreference.java
@@ -47,6 +47,9 @@
         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 99f7a4e..fcba473 100644
--- a/src/com/android/settings/inputmethod/SpellCheckersSettings.java
+++ b/src/com/android/settings/inputmethod/SpellCheckersSettings.java
@@ -133,6 +133,7 @@
             if (preference instanceof SpellCheckerPreference) {
                 final SpellCheckerPreference pref = (SpellCheckerPreference) preference;
                 pref.setSelected(mCurrentSci);
+                pref.setEnabled(mEnabledScis != null);
             }
         }
         mSpellCheckerLanaguagePref.setEnabled(isSpellCheckerEnabled && mCurrentSci != null);