Fix ListPreference crash when the preference has no value
Fixes: 146802726
Test: Manually
Change-Id: I54ab5e3f36d1ee54b03c389bcc8d5016a12b01ca
diff --git a/car-ui-lib/src/com/android/car/ui/preference/ListPreferenceFragment.java b/car-ui-lib/src/com/android/car/ui/preference/ListPreferenceFragment.java
index f8ff7c7..a213a11 100644
--- a/car-ui-lib/src/com/android/car/ui/preference/ListPreferenceFragment.java
+++ b/car-ui-lib/src/com/android/car/ui/preference/ListPreferenceFragment.java
@@ -119,8 +119,10 @@
}
item.setOnCheckedChangedListener((listItem, isChecked) -> {
- mSelectedItem.setChecked(false);
- adapter.notifyItemChanged(listItems.indexOf(mSelectedItem));
+ if (mSelectedItem != null) {
+ mSelectedItem.setChecked(false);
+ adapter.notifyItemChanged(listItems.indexOf(mSelectedItem));
+ }
mSelectedItem = listItem;
});
@@ -128,11 +130,13 @@
}
toolbar.registerOnBackListener(() -> {
- int selectedIndex = listItems.indexOf(mSelectedItem);
- String entryValue = entryValues[selectedIndex].toString();
+ if (mSelectedItem != null) {
+ int selectedIndex = listItems.indexOf(mSelectedItem);
+ String entryValue = entryValues[selectedIndex].toString();
- if (mPreference.callChangeListener(entryValue)) {
- mPreference.setValue(entryValue);
+ if (mPreference.callChangeListener(entryValue)) {
+ mPreference.setValue(entryValue);
+ }
}
return false;