From 2858620d257fb02092f3c843795376b238e50dfc 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 Merged-In: I3d6858a9b20798c2ad3b12a66db3484491682691 --- .../accessibility/DisplaySizeData.java | 18 +++++++++--------- .../FingerprintEnrollEnrolling.java | 7 ++++--- .../display/ScreenResolutionFragment.java | 17 +++++++++-------- .../settings/display/ScreenZoomPreference.java | 6 +++--- .../settings/display/ScreenZoomSettings.java | 17 ++++++++--------- 5 files changed, 33 insertions(+), 32 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 2eadc33c85f..439fd9a20ba 100644 --- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java +++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java @@ -191,9 +191,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 7c4b3aeef03..9a615951dd7 100644 --- a/src/com/android/settings/display/ScreenResolutionFragment.java +++ b/src/com/android/settings/display/ScreenResolutionFragment.java @@ -307,10 +307,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; } @@ -351,17 +352,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]); } } diff --git a/src/com/android/settings/display/ScreenZoomSettings.java b/src/com/android/settings/display/ScreenZoomSettings.java index 4c46f018937..ac10664f45e 100644 --- a/src/com/android/settings/display/ScreenZoomSettings.java +++ b/src/com/android/settings/display/ScreenZoomSettings.java @@ -21,11 +21,9 @@ import android.app.settings.SettingsEnums; import android.content.Context; import android.content.res.Configuration; import android.os.Bundle; -import android.view.Display; import com.android.settings.R; import com.android.settings.search.BaseSearchIndexProvider; -import com.android.settingslib.display.DisplayDensityConfiguration; import com.android.settingslib.display.DisplayDensityUtils; import com.android.settingslib.search.SearchIndexable; @@ -37,6 +35,7 @@ public class ScreenZoomSettings extends PreviewSeekBarPreferenceFragment { private int mDefaultDensity; private int[] mValues; + private DisplayDensityUtils mDensity; @Override protected int getActivityLayoutResId() { @@ -58,9 +57,9 @@ public class ScreenZoomSettings extends PreviewSeekBarPreferenceFragment { public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - final DisplayDensityUtils density = new DisplayDensityUtils(getContext()); + mDensity = new DisplayDensityUtils(getContext()); - final int initialIndex = density.getCurrentIndex(); + 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 @@ -71,10 +70,10 @@ public class ScreenZoomSettings extends PreviewSeekBarPreferenceFragment { mInitialIndex = 0; mDefaultDensity = densityDpi; } else { - mValues = density.getValues(); - mEntries = density.getEntries(); + mValues = mDensity.getDefaultDisplayDensityValues(); + mEntries = mDensity.getDefaultDisplayDensityEntries(); mInitialIndex = initialIndex; - mDefaultDensity = density.getDefaultDensity(); + mDefaultDensity = mDensity.getDefaultDensityForDefaultDisplay(); } getActivity().setTitle(R.string.screen_zoom_title); @@ -95,9 +94,9 @@ public class ScreenZoomSettings extends PreviewSeekBarPreferenceFragment { protected void commit() { final int densityDpi = mValues[mCurrentIndex]; if (densityDpi == mDefaultDensity) { - DisplayDensityConfiguration.clearForcedDisplayDensity(Display.DEFAULT_DISPLAY); + mDensity.clearForcedDisplayDensity(); } else { - DisplayDensityConfiguration.setForcedDisplayDensity(Display.DEFAULT_DISPLAY, densityDpi); + mDensity.setForcedDisplayDensity(densityDpi); } }