diff --git a/res/values-sw600dp/config.xml b/res/values-sw600dp/config.xml
index eb9af97938..09bdaafc1d 100644
--- a/res/values-sw600dp/config.xml
+++ b/res/values-sw600dp/config.xml
@@ -1,4 +1,3 @@
- true
true
diff --git a/res/values-sw720dp/config.xml b/res/values-sw720dp/config.xml
index 94cffcb551..1f401c49e7 100644
--- a/res/values-sw720dp/config.xml
+++ b/res/values-sw720dp/config.xml
@@ -1,6 +1,5 @@
true
- true
diff --git a/res/values/config.xml b/res/values/config.xml
index 4f21315fab..603dc91619 100644
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -1,8 +1,6 @@
false
- false
- false
false
153
diff --git a/src/com/android/launcher3/DeviceProfile.java b/src/com/android/launcher3/DeviceProfile.java
index 47824b27a1..51b21aa795 100644
--- a/src/com/android/launcher3/DeviceProfile.java
+++ b/src/com/android/launcher3/DeviceProfile.java
@@ -32,6 +32,10 @@ import com.android.launcher3.util.DefaultDisplay;
public class DeviceProfile {
+ private static final float TABLET_MIN_DPS = 600;
+ private static final float LARGE_TABLET_MIN_DPS = 720;
+
+
public final InvariantDeviceProfile inv;
private final DefaultDisplay.Info mInfo;
@@ -158,11 +162,12 @@ public class DeviceProfile {
}
mInfo = info;
- Resources res = context.getResources();
// Constants from resources
- isTablet = res.getBoolean(R.bool.is_tablet);
- isLargeTablet = res.getBoolean(R.bool.is_large_tablet);
+ float swDPs = Utilities.dpiFromPx(
+ Math.min(info.smallestSize.x, info.smallestSize.y), info.metrics);
+ isTablet = swDPs >= TABLET_MIN_DPS;
+ isLargeTablet = swDPs >= LARGE_TABLET_MIN_DPS;
isPhone = !isTablet && !isLargeTablet;
aspectRatio = ((float) Math.max(widthPx, heightPx)) / Math.min(widthPx, heightPx);
boolean isTallDevice = Float.compare(aspectRatio, TALL_DEVICE_ASPECT_RATIO_THRESHOLD) >= 0;
@@ -170,10 +175,10 @@ public class DeviceProfile {
// Some more constants
this.transposeLayoutWithOrientation = transposeLayoutWithOrientation;
- context = getContext(context, isVerticalBarLayout()
+ context = getContext(context, info, isVerticalBarLayout()
? Configuration.ORIENTATION_LANDSCAPE
: Configuration.ORIENTATION_PORTRAIT);
- res = context.getResources();
+ final Resources res = context.getResources();
edgeMarginPx = res.getDimensionPixelSize(R.dimen.dynamic_grid_edge_margin);
desiredWorkspaceLeftRightMarginPx = isVerticalBarLayout() ? 0 : edgeMarginPx;
@@ -632,10 +637,11 @@ public class DeviceProfile {
}
}
- private static Context getContext(Context c, int orientation) {
- Configuration context = new Configuration(c.getResources().getConfiguration());
- context.orientation = orientation;
- return c.createConfigurationContext(context);
+ private static Context getContext(Context c, DefaultDisplay.Info info, int orientation) {
+ Configuration config = new Configuration(c.getResources().getConfiguration());
+ config.orientation = orientation;
+ config.densityDpi = info.metrics.densityDpi;
+ return c.createConfigurationContext(config);
}
/**
diff --git a/src/com/android/launcher3/util/DefaultDisplay.java b/src/com/android/launcher3/util/DefaultDisplay.java
index f18e411d36..d51f777995 100644
--- a/src/com/android/launcher3/util/DefaultDisplay.java
+++ b/src/com/android/launcher3/util/DefaultDisplay.java
@@ -15,6 +15,8 @@
*/
package com.android.launcher3.util;
+import static android.view.Display.DEFAULT_DISPLAY;
+
import static com.android.launcher3.util.Executors.UI_HELPER_EXECUTOR;
import android.content.Context;
@@ -26,7 +28,6 @@ import android.os.Message;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.Display;
-import android.view.WindowManager;
import androidx.annotation.VisibleForTesting;
@@ -142,7 +143,7 @@ public class DefaultDisplay implements DisplayListener {
}
private Info(Context context) {
- this(context.getSystemService(WindowManager.class).getDefaultDisplay());
+ this(context.getSystemService(DisplayManager.class).getDisplay(DEFAULT_DISPLAY));
}
public Info(Display display) {