Settings crashed when changing the Screen Resolution

Check if index is out of bound

Bug: 288256336
Test: Change to Full resolution, set Smallest width to 426 dp, then
switch to High resolution
Test: atest ScreenResolutionFragmentTest

Change-Id: Ida4128e76e097050b01deae91c9d669e58ab9e8f
This commit is contained in:
Ken Lin
2023-07-05 05:05:29 +00:00
parent 1e86da303c
commit c655c82ada

View File

@@ -369,6 +369,12 @@ public class ScreenResolutionFragment extends RadioButtonPickerFragment {
private void restoreDensity() {
final DisplayDensityUtils density = new DisplayDensityUtils(mContext);
/* If current density is the same as a default density of other resolutions,
* then mCurrentIndex may be out of boundary.
*/
if (density.getDefaultDisplayDensityValues().length <= mCurrentIndex) {
mCurrentIndex = density.getCurrentIndexForDefaultDisplay();
}
if (density.getDefaultDisplayDensityValues()[mCurrentIndex]
!= density.getDefaultDensityForDefaultDisplay()) {
density.setForcedDisplayDensity(mCurrentIndex);