From 93ac8a9ccde01a16c2ab976d1e0fb97ca6f4891d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Wilczy=C5=84ski?= Date: Wed, 7 Dec 2022 14:01:50 +0000 Subject: [PATCH] Set display size to all displays Bug: 197730930 Test: Open Settings, go to Display -> Display size and text -> Display size, change the value, fold/unfold the device, see that the value persists. Test: DisplaySizeDataTest Test: atest ScreenResolutionFragmentTest Test: ScreenZoomSettingsTest Change-Id: I3d6858a9b20798c2ad3b12a66db3484491682691 --- .../accessibility/DisplaySizeData.java | 18 +++++++++--------- .../FingerprintEnrollEnrolling.java | 7 ++++--- .../display/ScreenResolutionFragment.java | 17 +++++++++-------- .../settings/display/ScreenZoomPreference.java | 6 +++--- 4 files changed, 25 insertions(+), 23 deletions(-) diff --git a/src/com/android/settings/accessibility/DisplaySizeData.java b/src/com/android/settings/accessibility/DisplaySizeData.java index 42a8c4678c8..77ae8977085 100644 --- a/src/com/android/settings/accessibility/DisplaySizeData.java +++ b/src/com/android/settings/accessibility/DisplaySizeData.java @@ -18,9 +18,7 @@ package com.android.settings.accessibility; import android.content.Context; import android.content.res.Resources; -import android.view.Display; -import com.android.settingslib.display.DisplayDensityConfiguration; import com.android.settingslib.display.DisplayDensityUtils; import java.util.Arrays; @@ -31,11 +29,13 @@ import java.util.stream.Collectors; * Data class for storing the configurations related to the display size. */ class DisplaySizeData extends PreviewSizeData { + private final DisplayDensityUtils mDensity; + DisplaySizeData(Context context) { super(context); - final DisplayDensityUtils density = new DisplayDensityUtils(getContext()); - final int initialIndex = density.getCurrentIndex(); + mDensity = new DisplayDensityUtils(getContext()); + final int initialIndex = mDensity.getCurrentIndexForDefaultDisplay(); if (initialIndex < 0) { // Failed to obtain default density, which means we failed to // connect to the window manager service. Just use the current @@ -46,9 +46,10 @@ class DisplaySizeData extends PreviewSizeData { setInitialIndex(0); setValues(Collections.singletonList(densityDpi)); } else { - setDefaultValue(density.getDefaultDensity()); + setDefaultValue(mDensity.getDefaultDensityForDefaultDisplay()); setInitialIndex(initialIndex); - setValues(Arrays.stream(density.getValues()).boxed().collect(Collectors.toList())); + setValues(Arrays.stream(mDensity.getDefaultDisplayDensityValues()).boxed() + .collect(Collectors.toList())); } } @@ -56,10 +57,9 @@ class DisplaySizeData extends PreviewSizeData { void commit(int currentProgress) { final int densityDpi = getValues().get(currentProgress); if (densityDpi == getDefaultValue()) { - DisplayDensityConfiguration.clearForcedDisplayDensity(Display.DEFAULT_DISPLAY); + mDensity.clearForcedDisplayDensity(); } else { - DisplayDensityConfiguration.setForcedDisplayDensity(Display.DEFAULT_DISPLAY, - densityDpi); + mDensity.setForcedDisplayDensity(currentProgress); } } } diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java index 6d144abb051..d4ccc973225 100644 --- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java +++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java @@ -204,9 +204,10 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling { @VisibleForTesting protected boolean shouldShowLottie() { DisplayDensityUtils displayDensity = new DisplayDensityUtils(getApplicationContext()); - int currentDensityIndex = displayDensity.getCurrentIndex(); - final int currentDensity = displayDensity.getValues()[currentDensityIndex]; - final int defaultDensity = displayDensity.getDefaultDensity(); + int currentDensityIndex = displayDensity.getCurrentIndexForDefaultDisplay(); + final int currentDensity = displayDensity.getDefaultDisplayDensityValues() + [currentDensityIndex]; + final int defaultDensity = displayDensity.getDefaultDensityForDefaultDisplay(); return defaultDensity == currentDensity; } diff --git a/src/com/android/settings/display/ScreenResolutionFragment.java b/src/com/android/settings/display/ScreenResolutionFragment.java index 687fdb88fea..b16d40b0683 100644 --- a/src/com/android/settings/display/ScreenResolutionFragment.java +++ b/src/com/android/settings/display/ScreenResolutionFragment.java @@ -321,10 +321,11 @@ public class ScreenResolutionFragment extends RadioButtonPickerFragment { } final DisplayDensityUtils density = new DisplayDensityUtils(mContext); - final int currentIndex = density.getCurrentIndex(); - final int defaultDensity = density.getDefaultDensity(); + final int currentIndex = density.getCurrentIndexForDefaultDisplay(); + final int defaultDensity = density.getDefaultDensityForDefaultDisplay(); - if (density.getValues()[mCurrentIndex] == density.getDefaultDensity()) { + if (density.getDefaultDisplayDensityValues()[mCurrentIndex] + == density.getDefaultDensityForDefaultDisplay()) { return; } @@ -365,17 +366,17 @@ public class ScreenResolutionFragment extends RadioButtonPickerFragment { private void restoreDensity() { final DisplayDensityUtils density = new DisplayDensityUtils(mContext); - if (density.getValues()[mCurrentIndex] != density.getDefaultDensity()) { - DisplayDensityUtils.setForcedDisplayDensity( - Display.DEFAULT_DISPLAY, density.getValues()[mCurrentIndex]); + if (density.getDefaultDisplayDensityValues()[mCurrentIndex] + != density.getDefaultDensityForDefaultDisplay()) { + density.setForcedDisplayDensity(mCurrentIndex); } - mDefaultDensity = density.getDefaultDensity(); + mDefaultDensity = density.getDefaultDensityForDefaultDisplay(); } private boolean isDensityChanged() { final DisplayDensityUtils density = new DisplayDensityUtils(mContext); - if (density.getDefaultDensity() == mDefaultDensity) { + if (density.getDefaultDensityForDefaultDisplay() == mDefaultDensity) { return false; } diff --git a/src/com/android/settings/display/ScreenZoomPreference.java b/src/com/android/settings/display/ScreenZoomPreference.java index f47d7da4384..af77a0edb98 100644 --- a/src/com/android/settings/display/ScreenZoomPreference.java +++ b/src/com/android/settings/display/ScreenZoomPreference.java @@ -36,13 +36,13 @@ public class ScreenZoomPreference extends Preference { android.R.attr.preferenceStyle)); final DisplayDensityUtils density = new DisplayDensityUtils(context); - final int defaultIndex = density.getCurrentIndex(); + final int defaultIndex = density.getCurrentIndexForDefaultDisplay(); if (defaultIndex < 0) { setVisible(false); setEnabled(false); } else if (TextUtils.isEmpty(getSummary())) { - final String[] entries = density.getEntries(); - final int currentIndex = density.getCurrentIndex(); + final String[] entries = density.getDefaultDisplayDensityEntries(); + final int currentIndex = density.getCurrentIndexForDefaultDisplay(); setSummary(entries[currentIndex]); } }