Overriding density when initializing device-profile as the app-context may not
point to the correct density in multi-display Bug: 154665987 Bug: 153293358 Change-Id: I9a95bf314049ce783067f70c735ea29a64388ce5
This commit is contained in:
parent
d75c1da9c7
commit
1890f67800
|
@ -1,4 +1,3 @@
|
||||||
<resources>
|
<resources>
|
||||||
<bool name="is_tablet">true</bool>
|
|
||||||
<bool name="allow_rotation">true</bool>
|
<bool name="allow_rotation">true</bool>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
<resources>
|
<resources>
|
||||||
<bool name="config_largeHeap">true</bool>
|
<bool name="config_largeHeap">true</bool>
|
||||||
<bool name="is_large_tablet">true</bool>
|
|
||||||
|
|
||||||
<!-- All Apps & Widgets -->
|
<!-- All Apps & Widgets -->
|
||||||
<!-- Out of 100, the percent to shrink the workspace during spring loaded mode. -->
|
<!-- Out of 100, the percent to shrink the workspace during spring loaded mode. -->
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
<resources>
|
<resources>
|
||||||
<!-- Miscellaneous -->
|
<!-- Miscellaneous -->
|
||||||
<bool name="config_largeHeap">false</bool>
|
<bool name="config_largeHeap">false</bool>
|
||||||
<bool name="is_tablet">false</bool>
|
|
||||||
<bool name="is_large_tablet">false</bool>
|
|
||||||
<bool name="allow_rotation">false</bool>
|
<bool name="allow_rotation">false</bool>
|
||||||
|
|
||||||
<integer name="extracted_color_gradient_alpha">153</integer>
|
<integer name="extracted_color_gradient_alpha">153</integer>
|
||||||
|
|
|
@ -32,6 +32,10 @@ import com.android.launcher3.util.DefaultDisplay;
|
||||||
|
|
||||||
public class DeviceProfile {
|
public class DeviceProfile {
|
||||||
|
|
||||||
|
private static final float TABLET_MIN_DPS = 600;
|
||||||
|
private static final float LARGE_TABLET_MIN_DPS = 720;
|
||||||
|
|
||||||
|
|
||||||
public final InvariantDeviceProfile inv;
|
public final InvariantDeviceProfile inv;
|
||||||
private final DefaultDisplay.Info mInfo;
|
private final DefaultDisplay.Info mInfo;
|
||||||
|
|
||||||
|
@ -158,11 +162,12 @@ public class DeviceProfile {
|
||||||
}
|
}
|
||||||
|
|
||||||
mInfo = info;
|
mInfo = info;
|
||||||
Resources res = context.getResources();
|
|
||||||
|
|
||||||
// Constants from resources
|
// Constants from resources
|
||||||
isTablet = res.getBoolean(R.bool.is_tablet);
|
float swDPs = Utilities.dpiFromPx(
|
||||||
isLargeTablet = res.getBoolean(R.bool.is_large_tablet);
|
Math.min(info.smallestSize.x, info.smallestSize.y), info.metrics);
|
||||||
|
isTablet = swDPs >= TABLET_MIN_DPS;
|
||||||
|
isLargeTablet = swDPs >= LARGE_TABLET_MIN_DPS;
|
||||||
isPhone = !isTablet && !isLargeTablet;
|
isPhone = !isTablet && !isLargeTablet;
|
||||||
aspectRatio = ((float) Math.max(widthPx, heightPx)) / Math.min(widthPx, heightPx);
|
aspectRatio = ((float) Math.max(widthPx, heightPx)) / Math.min(widthPx, heightPx);
|
||||||
boolean isTallDevice = Float.compare(aspectRatio, TALL_DEVICE_ASPECT_RATIO_THRESHOLD) >= 0;
|
boolean isTallDevice = Float.compare(aspectRatio, TALL_DEVICE_ASPECT_RATIO_THRESHOLD) >= 0;
|
||||||
|
@ -170,10 +175,10 @@ public class DeviceProfile {
|
||||||
// Some more constants
|
// Some more constants
|
||||||
this.transposeLayoutWithOrientation = transposeLayoutWithOrientation;
|
this.transposeLayoutWithOrientation = transposeLayoutWithOrientation;
|
||||||
|
|
||||||
context = getContext(context, isVerticalBarLayout()
|
context = getContext(context, info, isVerticalBarLayout()
|
||||||
? Configuration.ORIENTATION_LANDSCAPE
|
? Configuration.ORIENTATION_LANDSCAPE
|
||||||
: Configuration.ORIENTATION_PORTRAIT);
|
: Configuration.ORIENTATION_PORTRAIT);
|
||||||
res = context.getResources();
|
final Resources res = context.getResources();
|
||||||
|
|
||||||
edgeMarginPx = res.getDimensionPixelSize(R.dimen.dynamic_grid_edge_margin);
|
edgeMarginPx = res.getDimensionPixelSize(R.dimen.dynamic_grid_edge_margin);
|
||||||
desiredWorkspaceLeftRightMarginPx = isVerticalBarLayout() ? 0 : edgeMarginPx;
|
desiredWorkspaceLeftRightMarginPx = isVerticalBarLayout() ? 0 : edgeMarginPx;
|
||||||
|
@ -632,10 +637,11 @@ public class DeviceProfile {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Context getContext(Context c, int orientation) {
|
private static Context getContext(Context c, DefaultDisplay.Info info, int orientation) {
|
||||||
Configuration context = new Configuration(c.getResources().getConfiguration());
|
Configuration config = new Configuration(c.getResources().getConfiguration());
|
||||||
context.orientation = orientation;
|
config.orientation = orientation;
|
||||||
return c.createConfigurationContext(context);
|
config.densityDpi = info.metrics.densityDpi;
|
||||||
|
return c.createConfigurationContext(config);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -15,6 +15,8 @@
|
||||||
*/
|
*/
|
||||||
package com.android.launcher3.util;
|
package com.android.launcher3.util;
|
||||||
|
|
||||||
|
import static android.view.Display.DEFAULT_DISPLAY;
|
||||||
|
|
||||||
import static com.android.launcher3.util.Executors.UI_HELPER_EXECUTOR;
|
import static com.android.launcher3.util.Executors.UI_HELPER_EXECUTOR;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
@ -26,7 +28,6 @@ import android.os.Message;
|
||||||
import android.util.DisplayMetrics;
|
import android.util.DisplayMetrics;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.Display;
|
import android.view.Display;
|
||||||
import android.view.WindowManager;
|
|
||||||
|
|
||||||
import androidx.annotation.VisibleForTesting;
|
import androidx.annotation.VisibleForTesting;
|
||||||
|
|
||||||
|
@ -142,7 +143,7 @@ public class DefaultDisplay implements DisplayListener {
|
||||||
}
|
}
|
||||||
|
|
||||||
private Info(Context context) {
|
private Info(Context context) {
|
||||||
this(context.getSystemService(WindowManager.class).getDefaultDisplay());
|
this(context.getSystemService(DisplayManager.class).getDisplay(DEFAULT_DISPLAY));
|
||||||
}
|
}
|
||||||
|
|
||||||
public Info(Display display) {
|
public Info(Display display) {
|
||||||
|
|
Loading…
Reference in New Issue