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
This commit is contained in:
@@ -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<Integer> {
|
||||
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<Integer> {
|
||||
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<Integer> {
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -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;
|
||||
}
|
||||
|
||||
|
@@ -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;
|
||||
}
|
||||
|
||||
|
@@ -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]);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user