From 2f9f582310d860614c798e950b89df62f4555fa6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Wilczy=C5=84ski?= Date: Wed, 9 Oct 2024 14:17:47 +0000 Subject: [PATCH] Set the same density to all displays Bug: 324439718 Test: manual Test: atest DisplaySizeDataTest Test: atest ScreenResolutionFragmentTest Flag: EXEMPT bugfix Change-Id: Ibe8b15be8968545c701a872103c1c20fa698228f --- .../accessibility/DisplaySizeData.java | 6 +++--- .../FingerprintEnrollEnrolling.java | 7 +++---- .../interactor/DisplayDensityInteractor.kt | 14 ++++++-------- .../FingerprintEnrollmentV2Activity.kt | 8 ++++---- .../display/ScreenResolutionFragment.java | 18 ++++++++---------- .../settings/display/ScreenZoomPreference.java | 6 +++--- 6 files changed, 27 insertions(+), 32 deletions(-) diff --git a/src/com/android/settings/accessibility/DisplaySizeData.java b/src/com/android/settings/accessibility/DisplaySizeData.java index 77ae8977085..15aeb6b0d9d 100644 --- a/src/com/android/settings/accessibility/DisplaySizeData.java +++ b/src/com/android/settings/accessibility/DisplaySizeData.java @@ -35,7 +35,7 @@ class DisplaySizeData extends PreviewSizeData { super(context); mDensity = new DisplayDensityUtils(getContext()); - final int initialIndex = mDensity.getCurrentIndexForDefaultDisplay(); + final int initialIndex = mDensity.getCurrentIndex(); 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,9 @@ class DisplaySizeData extends PreviewSizeData { setInitialIndex(0); setValues(Collections.singletonList(densityDpi)); } else { - setDefaultValue(mDensity.getDefaultDensityForDefaultDisplay()); + setDefaultValue(mDensity.getDefaultDensity()); setInitialIndex(initialIndex); - setValues(Arrays.stream(mDensity.getDefaultDisplayDensityValues()).boxed() + setValues(Arrays.stream(mDensity.getValues()).boxed() .collect(Collectors.toList())); } } diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java index b32ab4f7350..03010bbe739 100644 --- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java +++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java @@ -207,10 +207,9 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling { @VisibleForTesting protected boolean shouldShowLottie() { DisplayDensityUtils displayDensity = new DisplayDensityUtils(getApplicationContext()); - int currentDensityIndex = displayDensity.getCurrentIndexForDefaultDisplay(); - final int currentDensity = displayDensity.getDefaultDisplayDensityValues() - [currentDensityIndex]; - final int defaultDensity = displayDensity.getDefaultDensityForDefaultDisplay(); + int currentDensityIndex = displayDensity.getCurrentIndex(); + final int currentDensity = displayDensity.getValues()[currentDensityIndex]; + final int defaultDensity = displayDensity.getDefaultDensity(); if (getResources().getConfiguration().fontScale > 1) { return false; diff --git a/src/com/android/settings/biometrics/fingerprint2/domain/interactor/DisplayDensityInteractor.kt b/src/com/android/settings/biometrics/fingerprint2/domain/interactor/DisplayDensityInteractor.kt index 6dfb4c290d6..00e85b1f8f2 100644 --- a/src/com/android/settings/biometrics/fingerprint2/domain/interactor/DisplayDensityInteractor.kt +++ b/src/com/android/settings/biometrics/fingerprint2/domain/interactor/DisplayDensityInteractor.kt @@ -42,7 +42,7 @@ interface DisplayDensityInteractor { val fontScale: Flow /** A flow that propagates displayDensity. */ - val displayDensity: Flow + val displayDensity: Flow /** A flow that propagates the default display density. */ val defaultDisplayDensity: Flow @@ -67,16 +67,14 @@ class DisplayDensityInteractorImpl(context: Context, scope: CoroutineScope) : private val _fontScale = MutableStateFlow(context.resources.configuration.fontScale) private val _displayDensity = - MutableStateFlow( - displayDensityUtils.defaultDisplayDensityValues[ - displayDensityUtils.currentIndexForDefaultDisplay] - ) + MutableStateFlow(displayDensityUtils.values?.let{ + it[displayDensityUtils.currentIndex] + }) override val fontScale: Flow = _fontScale.asStateFlow() - override val displayDensity: Flow = _displayDensity.asStateFlow() + override val displayDensity: Flow = _displayDensity.asStateFlow() override val defaultDisplayDensity: Flow = - flowOf(displayDensityUtils.defaultDensityForDefaultDisplay) - .shareIn(scope, SharingStarted.Eagerly, 1) + flowOf(displayDensityUtils.defaultDensity).shareIn(scope, SharingStarted.Eagerly, 1) } diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/activity/FingerprintEnrollmentV2Activity.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/activity/FingerprintEnrollmentV2Activity.kt index 77d070e5026..dc89c93eb6c 100644 --- a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/activity/FingerprintEnrollmentV2Activity.kt +++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/activity/FingerprintEnrollmentV2Activity.kt @@ -149,11 +149,11 @@ class FingerprintEnrollmentV2Activity : FragmentActivity() { super.onConfigurationChanged(newConfig) foldStateInteractor.onConfigurationChange(newConfig) val displayDensityUtils = DisplayDensityUtils(applicationContext) - val currIndex = displayDensityUtils.currentIndexForDefaultDisplay + val currIndex = displayDensityUtils.currentIndex displayDensityInteractor.updateFontScale(resources.configuration.fontScale) - displayDensityInteractor.updateDisplayDensity( - displayDensityUtils.defaultDisplayDensityValues[currIndex] - ) + displayDensityUtils.values?.let { + displayDensityInteractor.updateDisplayDensity(it[currIndex]) + } } private fun onConfirmDevice(resultCode: Int, data: Intent?) { diff --git a/src/com/android/settings/display/ScreenResolutionFragment.java b/src/com/android/settings/display/ScreenResolutionFragment.java index a2ad25ff96d..d9718f66f93 100644 --- a/src/com/android/settings/display/ScreenResolutionFragment.java +++ b/src/com/android/settings/display/ScreenResolutionFragment.java @@ -325,11 +325,10 @@ public class ScreenResolutionFragment extends RadioButtonPickerFragment { } final DisplayDensityUtils density = new DisplayDensityUtils(mContext); - final int currentIndex = density.getCurrentIndexForDefaultDisplay(); - final int defaultDensity = density.getDefaultDensityForDefaultDisplay(); + final int currentIndex = density.getCurrentIndex(); + final int defaultDensity = density.getDefaultDensity(); - if (density.getDefaultDisplayDensityValues()[mCurrentIndex] - == density.getDefaultDensityForDefaultDisplay()) { + if (density.getValues()[mCurrentIndex] == density.getDefaultDensity()) { return; } @@ -373,20 +372,19 @@ public class ScreenResolutionFragment extends RadioButtonPickerFragment { /* 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.getValues().length <= mCurrentIndex) { + mCurrentIndex = density.getCurrentIndex(); } - if (density.getDefaultDisplayDensityValues()[mCurrentIndex] - != density.getDefaultDensityForDefaultDisplay()) { + if (density.getValues()[mCurrentIndex] != density.getDefaultDensity()) { density.setForcedDisplayDensity(mCurrentIndex); } - mDefaultDensity = density.getDefaultDensityForDefaultDisplay(); + mDefaultDensity = density.getDefaultDensity(); } private boolean isDensityChanged() { final DisplayDensityUtils density = new DisplayDensityUtils(mContext); - if (density.getDefaultDensityForDefaultDisplay() == mDefaultDensity) { + if (density.getDefaultDensity() == mDefaultDensity) { return false; } diff --git a/src/com/android/settings/display/ScreenZoomPreference.java b/src/com/android/settings/display/ScreenZoomPreference.java index af77a0edb98..f47d7da4384 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.getCurrentIndexForDefaultDisplay(); + final int defaultIndex = density.getCurrentIndex(); if (defaultIndex < 0) { setVisible(false); setEnabled(false); } else if (TextUtils.isEmpty(getSummary())) { - final String[] entries = density.getDefaultDisplayDensityEntries(); - final int currentIndex = density.getCurrentIndexForDefaultDisplay(); + final String[] entries = density.getEntries(); + final int currentIndex = density.getCurrentIndex(); setSummary(entries[currentIndex]); } }