Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a82ce1fe authored by Sunny Goyal's avatar Sunny Goyal Committed by Android (Google) Code Review
Browse files

Merge "Making moving getDisplayType to DisplayController so that it can be...

Merge "Making moving getDisplayType to DisplayController so that it can be accessed without IDP" into main
parents 9afa9dd3 25c4276b
Loading
Loading
Loading
Loading
+3 −20
Original line number Diff line number Diff line
@@ -262,7 +262,7 @@ public class InvariantDeviceProfile {

        // Get the display info based on default display and interpolate it to existing display
        Info defaultInfo = DisplayController.INSTANCE.get(context).getInfo();
        @DeviceType int defaultDeviceType = getDeviceType(defaultInfo);
        @DeviceType int defaultDeviceType = defaultInfo.getDeviceType();
        DisplayOption defaultDisplayOption = invDistWeightedInterpolate(
                defaultInfo,
                getPredefinedDeviceProfiles(context, gridName, defaultDeviceType,
@@ -271,7 +271,7 @@ public class InvariantDeviceProfile {

        Context displayContext = context.createDisplayContext(display);
        Info myInfo = new Info(displayContext);
        @DeviceType int deviceType = getDeviceType(myInfo);
        @DeviceType int deviceType = myInfo.getDeviceType();
        DisplayOption myDisplayOption = invDistWeightedInterpolate(
                myInfo,
                getPredefinedDeviceProfiles(context, gridName, deviceType,
@@ -324,30 +324,13 @@ public class InvariantDeviceProfile {
        }
    }

    private static @DeviceType int getDeviceType(Info displayInfo) {
        int flagPhone = 1 << 0;
        int flagTablet = 1 << 1;

        int type = displayInfo.supportedBounds.stream()
                .mapToInt(bounds -> displayInfo.isTablet(bounds) ? flagTablet : flagPhone)
                .reduce(0, (a, b) -> a | b);
        if (type == (flagPhone | flagTablet)) {
            // device has profiles supporting both phone and table modes
            return TYPE_MULTI_DISPLAY;
        } else if (type == flagTablet) {
            return TYPE_TABLET;
        } else {
            return TYPE_PHONE;
        }
    }

    public static String getCurrentGridName(Context context) {
        return LauncherPrefs.get(context).get(GRID_NAME);
    }

    private String initGrid(Context context, String gridName) {
        Info displayInfo = DisplayController.INSTANCE.get(context).getInfo();
        @DeviceType int deviceType = getDeviceType(displayInfo);
        @DeviceType int deviceType = displayInfo.getDeviceType();

        ArrayList<DisplayOption> allOptions =
                getPredefinedDeviceProfiles(context, gridName, deviceType,
+21 −0
Original line number Diff line number Diff line
@@ -19,6 +19,9 @@ import static android.content.Intent.ACTION_CONFIGURATION_CHANGED;
import static android.view.Display.DEFAULT_DISPLAY;
import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION;

import static com.android.launcher3.InvariantDeviceProfile.TYPE_MULTI_DISPLAY;
import static com.android.launcher3.InvariantDeviceProfile.TYPE_PHONE;
import static com.android.launcher3.InvariantDeviceProfile.TYPE_TABLET;
import static com.android.launcher3.LauncherPrefs.TASKBAR_PINNING;
import static com.android.launcher3.LauncherPrefs.TASKBAR_PINNING_KEY;
import static com.android.launcher3.Utilities.dpiFromPx;
@@ -47,6 +50,7 @@ import androidx.annotation.AnyThread;
import androidx.annotation.UiThread;
import androidx.annotation.VisibleForTesting;

import com.android.launcher3.InvariantDeviceProfile.DeviceType;
import com.android.launcher3.LauncherPrefs;
import com.android.launcher3.Utilities;
import com.android.launcher3.logging.FileLog;
@@ -466,6 +470,23 @@ public class DisplayController implements ComponentCallbacks, SafeCloseable {
        public int getDensityDpi() {
            return densityDpi;
        }

        public @DeviceType int getDeviceType() {
            int flagPhone = 1 << 0;
            int flagTablet = 1 << 1;

            int type = supportedBounds.stream()
                    .mapToInt(bounds -> isTablet(bounds) ? flagTablet : flagPhone)
                    .reduce(0, (a, b) -> a | b);
            if (type == (flagPhone | flagTablet)) {
                // device has profiles supporting both phone and tablet modes
                return TYPE_MULTI_DISPLAY;
            } else if (type == flagTablet) {
                return TYPE_TABLET;
            } else {
                return TYPE_PHONE;
            }
        }
    }

    /**