Use correct config.smallestScreenWidthDp when creating Resource in DeviceProfile

- This is a regression from ag/17070486 when tested, likely because DeviceProfiles are no longer re-created when changing display sizes, so correct values need to be calculated on the starting state

Bug: 221961069
Test: verify smallestWidth specific resource on changing display sizes
Change-Id: I1539bad4b35b36f0056d59307ab5fbec23a71f49
This commit is contained in:
Alex Chau
2022-03-18 15:24:07 +00:00
parent 8233d92274
commit a6907dc8c9
2 changed files with 13 additions and 6 deletions

View File

@@ -257,7 +257,8 @@ public class DeviceProfile {
// Some more constants.
context = getContext(context, info, isVerticalBarLayout() || (isTablet && isLandscape)
? Configuration.ORIENTATION_LANDSCAPE
: Configuration.ORIENTATION_PORTRAIT);
: Configuration.ORIENTATION_PORTRAIT,
windowBounds);
final Resources res = context.getResources();
mMetrics = res.getDisplayMetrics();
@@ -1231,10 +1232,11 @@ public class DeviceProfile {
writer.println(prefix + pxToDpStr("overviewGridSideMargin", overviewGridSideMargin));
}
private static Context getContext(Context c, Info info, int orientation) {
private static Context getContext(Context c, Info info, int orientation, WindowBounds bounds) {
Configuration config = new Configuration(c.getResources().getConfiguration());
config.orientation = orientation;
config.densityDpi = info.densityDpi;
config.smallestScreenWidthDp = (int) info.smallestSizeDp(bounds);
return c.createConfigurationContext(config);
}