diff --git a/src/com/android/settings/accessibility/AccessibilitySettings.java b/src/com/android/settings/accessibility/AccessibilitySettings.java index b4b1ef69a08..a2a72e243e5 100644 --- a/src/com/android/settings/accessibility/AccessibilitySettings.java +++ b/src/com/android/settings/accessibility/AccessibilitySettings.java @@ -37,6 +37,7 @@ import androidx.annotation.VisibleForTesting; import androidx.preference.Preference; import androidx.preference.PreferenceCategory; +import com.android.internal.util.ArrayUtils; import com.android.internal.accessibility.AccessibilityShortcutController; import com.android.internal.accessibility.util.AccessibilityUtils; import com.android.internal.content.PackageMonitor; @@ -509,7 +510,9 @@ public class AccessibilitySettings extends DashboardFragment implements */ private void updateCategoryOrderFromArray(String categoryKey, int key) { String[] services = getResources().getStringArray(key); + if (ArrayUtils.isEmpty(services)) return; PreferenceCategory category = mCategoryToPrefCategoryMap.get(categoryKey); + if (category == null) return; int preferenceCount = category.getPreferenceCount(); int serviceLength = services.length; for (int preferenceIndex = 0; preferenceIndex < preferenceCount; preferenceIndex++) { @@ -530,6 +533,7 @@ public class AccessibilitySettings extends DashboardFragment implements */ private void updatePreferenceCategoryVisibility(String categoryKey) { final PreferenceCategory category = mCategoryToPrefCategoryMap.get(categoryKey); + if (category == null) return; category.setVisible(category.getPreferenceCount() != 0); }