Fix ListPreference crash when the preference has no value am: c94d37e180
Change-Id: I914b0cc17537670d3a0c6316c4733288f1ace536
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;