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

Commit 35c25257 authored by Robin Lee's avatar Robin Lee
Browse files

Separate string config for ignore_orientation_request

As recommended in cr/700626301, splitting into a separate device_config
namespace to take away the risk of reassigning a bool flag to a string
flag on the server side experiments platofmr.

This allows completely separate studies on the all screens and large
screens features.

Bug: 357141415
Test: atest ActivityRecordTests
Flag: EXEMPT adds experiment configuration (off by default)
Change-Id: I0a9dea6796f39643451ce3a96d147954686b1afe
parent 5054fff0
Loading
Loading
Loading
Loading
+25 −9
Original line number Diff line number Diff line
@@ -42,12 +42,23 @@ final class WindowManagerConstants {
     * <ul>
     * <li>false: applies to no apps (default)</li>
     * <li>true: applies to all apps</li>
     * <li>large: applies to all apps but only on large screens</li>
     * </ul>
     */
    private static final String KEY_IGNORE_ACTIVITY_ORIENTATION_REQUEST =
            "ignore_activity_orientation_request";

    /**
     * The orientation of activity will be always "unspecified" except for game apps.
     * <p>Possible values:
     * <ul>
     * <li>none: applies to no apps (default)</li>
     * <li>all: applies to all apps ({@see #KEY_IGNORE_ACTIVITY_ORIENTATION_REQUEST})</li>
     * <li>large: applies to all apps but only on large screens</li>
     * </ul>
     */
    private static final String KEY_IGNORE_ACTIVITY_ORIENTATION_REQUEST_SCREENS =
            "ignore_activity_orientation_request_screens";

    /** The packages that ignore {@link #KEY_IGNORE_ACTIVITY_ORIENTATION_REQUEST}. */
    private static final String KEY_OPT_OUT_IGNORE_ACTIVITY_ORIENTATION_REQUEST_LIST =
            "opt_out_ignore_activity_orientation_request_list";
@@ -155,6 +166,7 @@ final class WindowManagerConstants {
                        updateSystemGestureExclusionLogDebounceMillis();
                        break;
                    case KEY_IGNORE_ACTIVITY_ORIENTATION_REQUEST:
                    case KEY_IGNORE_ACTIVITY_ORIENTATION_REQUEST_SCREENS:
                        updateIgnoreActivityOrientationRequest();
                        break;
                    case KEY_OPT_OUT_IGNORE_ACTIVITY_ORIENTATION_REQUEST_LIST:
@@ -186,12 +198,16 @@ final class WindowManagerConstants {
    }

    private void updateIgnoreActivityOrientationRequest() {
        final String value = mDeviceConfig.getProperty(
        boolean allScreens = mDeviceConfig.getBoolean(
                DeviceConfig.NAMESPACE_WINDOW_MANAGER,
                KEY_IGNORE_ACTIVITY_ORIENTATION_REQUEST, false);
        String whichScreens = mDeviceConfig.getProperty(
                DeviceConfig.NAMESPACE_WINDOW_MANAGER,
                KEY_IGNORE_ACTIVITY_ORIENTATION_REQUEST);
        mIgnoreActivityOrientationRequestSmallScreen = Boolean.parseBoolean(value);
        mIgnoreActivityOrientationRequestLargeScreen = mIgnoreActivityOrientationRequestSmallScreen
                || ("large".equals(value));
                KEY_IGNORE_ACTIVITY_ORIENTATION_REQUEST_SCREENS);
        allScreens |= ("all".equalsIgnoreCase(whichScreens));
        boolean largeScreens = allScreens || ("large".equalsIgnoreCase(whichScreens));
        mIgnoreActivityOrientationRequestSmallScreen = allScreens;
        mIgnoreActivityOrientationRequestLargeScreen = largeScreens;
    }

    private void updateOptOutIgnoreActivityOrientationRequestList() {
@@ -221,9 +237,9 @@ final class WindowManagerConstants {
        pw.print("="); pw.println(mSystemGestureExclusionLimitDp);
        pw.print("  "); pw.print(KEY_SYSTEM_GESTURES_EXCLUDED_BY_PRE_Q_STICKY_IMMERSIVE);
        pw.print("="); pw.println(mSystemGestureExcludedByPreQStickyImmersive);
        pw.print("  "); pw.print(KEY_IGNORE_ACTIVITY_ORIENTATION_REQUEST);
        pw.print("="); pw.println(mIgnoreActivityOrientationRequestSmallScreen ? "true"
                : mIgnoreActivityOrientationRequestLargeScreen ? "large" : "false");
        pw.print("  "); pw.print(KEY_IGNORE_ACTIVITY_ORIENTATION_REQUEST_SCREENS);
        pw.print("="); pw.println(mIgnoreActivityOrientationRequestSmallScreen ? "all"
                : mIgnoreActivityOrientationRequestLargeScreen ? "large" : "none");
        if (mOptOutIgnoreActivityOrientationRequestPackages != null) {
            pw.print("  "); pw.print(KEY_OPT_OUT_IGNORE_ACTIVITY_ORIENTATION_REQUEST_LIST);
            pw.print("="); pw.println(mOptOutIgnoreActivityOrientationRequestPackages);