Fix bug where font size (etc.) doesn't change after changing display settings.
The metrics we get from Display#getMetrics does not change regardless of what the new configuration is (we would expect the scaledDensity to change). Documentation shows that Display#getMetrics is deprecated in R. Using guidance from b/154665987#comment14 we get the metrics from the derived context. Bug: 156141463 Change-Id: I25e5f2c13f94e0471111f6c895694947998e3222
This commit is contained in:
@@ -200,7 +200,7 @@ public class InvariantDeviceProfile {
|
||||
DefaultDisplay.INSTANCE.get(context).getInfo(),
|
||||
getPredefinedDeviceProfiles(context, gridName));
|
||||
|
||||
Info myInfo = new Info(display);
|
||||
Info myInfo = new Info(context, display);
|
||||
DisplayOption myDisplayOption = invDistWeightedInterpolate(
|
||||
myInfo, getPredefinedDeviceProfiles(context, gridName));
|
||||
|
||||
|
||||
@@ -145,10 +145,11 @@ public class DefaultDisplay implements DisplayListener {
|
||||
}
|
||||
|
||||
private Info(Context context) {
|
||||
this(context.getSystemService(DisplayManager.class).getDisplay(DEFAULT_DISPLAY));
|
||||
this(context, context.getSystemService(DisplayManager.class)
|
||||
.getDisplay(DEFAULT_DISPLAY));
|
||||
}
|
||||
|
||||
public Info(Display display) {
|
||||
public Info(Context context, Display display) {
|
||||
id = display.getDisplayId();
|
||||
rotation = display.getRotation();
|
||||
|
||||
@@ -161,8 +162,8 @@ public class DefaultDisplay implements DisplayListener {
|
||||
display.getRealSize(realSize);
|
||||
display.getCurrentSizeRange(smallestSize, largestSize);
|
||||
|
||||
metrics = new DisplayMetrics();
|
||||
display.getMetrics(metrics);
|
||||
Context defaultDisplayContext = context.createDisplayContext(display);
|
||||
metrics = defaultDisplayContext.getResources().getDisplayMetrics();
|
||||
}
|
||||
|
||||
private boolean hasDifferentSize(Info info) {
|
||||
|
||||
Reference in New Issue
Block a user