Fix "Play media to" popup close issue when screen rotate

- Avoid calling getListPreference() in onDialogClose() everytime.
  Due to exception in onDialogClose(). Move preference declaration into if condition.
- Add test case for crash case.

Bug: 119744621
Test: make -j50 RunSettingsRoboTests ROBOTEST_FILTER=UpdatableListPreferenceDialogFragmentTest
Change-Id: Ia20b8289a5863136ea74e02e32b537f6967474e8
This commit is contained in:
James Lu
2018-12-21 20:23:53 +08:00
parent 040124cca2
commit 7ce23b578a
2 changed files with 18 additions and 6 deletions

View File

@@ -84,8 +84,8 @@ public class UpdatableListPreferenceDialogFragment extends PreferenceDialogFragm
@Override
public void onDialogClosed(boolean positiveResult) {
final ListPreference preference = getListPreference();
if (positiveResult && mClickedDialogEntryIndex >= 0) {
final ListPreference preference = getListPreference();
final String value = mEntryValues[mClickedDialogEntryIndex].toString();
if (preference.callChangeListener(value)) {
preference.setValue(value);
@@ -144,7 +144,8 @@ public class UpdatableListPreferenceDialogFragment extends PreferenceDialogFragm
return mMetricsCategory;
}
private ListPreference getListPreference() {
@VisibleForTesting
ListPreference getListPreference() {
return (ListPreference) getPreference();
}