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

Commit 741a1f1a authored by Hongwei Wang's avatar Hongwei Wang Committed by Android (Google) Code Review
Browse files

Merge "Turn on PiP2 if ENABLE_DESKTOP_WINDOWING_PIP is ON" into main

parents 05d1c564 8414dadf
Loading
Loading
Loading
Loading
+21 −1
Original line number Diff line number Diff line
@@ -31,11 +31,13 @@ import android.util.DisplayMetrics
import android.util.Log
import android.util.Pair
import android.util.TypedValue
import android.window.DesktopExperienceFlags.ENABLE_DESKTOP_WINDOWING_PIP
import android.window.TaskSnapshot
import android.window.TransitionInfo
import com.android.internal.protolog.ProtoLog
import com.android.wm.shell.Flags
import com.android.wm.shell.protolog.ShellProtoLogGroup
import java.io.PrintWriter
import kotlin.math.abs
import kotlin.math.ceil
import kotlin.math.floor
@@ -312,6 +314,8 @@ object PipUtils {
     * Returns true if PiP2 implementation should be used. Besides the trunk stable flag,
     * system property can be used to override this read only flag during development.
     * It's currently limited to phone form factor, i.e., not enabled on ARC / TV.
     *
     * Special note: if PiP on Desktop Windowing is enabled, override the PiP2 gantry flag to be ON.
     */
    @JvmStatic
    fun isPip2ExperimentEnabled(): Boolean {
@@ -320,7 +324,9 @@ object PipUtils {
                "org.chromium.arc", 0)
            val isTv = AppGlobals.getPackageManager().hasSystemFeature(
                PackageManager.FEATURE_LEANBACK, 0)
            isPip2ExperimentEnabled = Flags.enablePip2() && !isArc && !isTv
            val shouldOverridePip2Flag = ENABLE_DESKTOP_WINDOWING_PIP.isTrue
            isPip2ExperimentEnabled = (Flags.enablePip2() || shouldOverridePip2Flag)
                    && !isArc && !isTv
        }
        return isPip2ExperimentEnabled as Boolean
    }
@@ -343,4 +349,18 @@ object PipUtils {
        return (resources.configuration.uiMode and UI_MODE_NIGHT_MASK) ==
                Configuration.UI_MODE_NIGHT_YES
    }

    /**
     * Dumps information held by this class.
     */
    @JvmStatic
    fun dump(pw: PrintWriter, prefix: String) {
        pw.println("$prefix$TAG")
        val innerPrefix1 = "$prefix  "
        val innerPrefix2 = "$innerPrefix1  "
        pw.println("${innerPrefix1}isPipUmoExperienceEnabled=${isPipUmoExperienceEnabled()}")
        pw.println("${innerPrefix1}isPip2ExperimentEnabled=${isPip2ExperimentEnabled()}")
        pw.println("${innerPrefix2}enablePip2=${Flags.enablePip2()}")
        pw.println("${innerPrefix2}enableDwPip=${ENABLE_DESKTOP_WINDOWING_PIP.isTrue}")
    }
}
+1 −0
Original line number Diff line number Diff line
@@ -684,6 +684,7 @@ public class PipController implements ConfigurationChangeListener,
    private void dump(PrintWriter pw, String prefix) {
        final String innerPrefix = "  ";
        pw.println(TAG);
        PipUtils.dump(pw, innerPrefix);
        mPipBoundsAlgorithm.dump(pw, innerPrefix);
        mPipBoundsState.dump(pw, innerPrefix);
        mPipDisplayLayoutState.dump(pw, innerPrefix);
+6 −1
Original line number Diff line number Diff line
@@ -70,6 +70,7 @@ import static android.view.WindowManager.TRANSIT_CHANGE;
import static android.view.WindowManager.TRANSIT_PIP;
import static android.view.WindowManager.TRANSIT_TO_FRONT;
import static android.view.WindowManagerPolicyConstants.KEYGUARD_GOING_AWAY_FLAG_TO_LAUNCHER_CLEAR_SNAPSHOT;
import static android.window.DesktopExperienceFlags.ENABLE_DESKTOP_WINDOWING_PIP;
import static android.window.TransitionInfo.FLAG_IN_TASK_WITH_EMBEDDED_ACTIVITY;

import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_CONFIGURATION;
@@ -7618,6 +7619,8 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
     * @return {@code true} if PiP2 implementation should be used. Besides the trunk stable flag,
     * system property can be used to override this read only flag during development.
     * It's currently limited to phone form factor, i.e., not enabled on ARC / TV.
     *
     * Special note: if PiP on Desktop Windowing is enabled, override the PiP2 gantry flag to be ON.
     */
    static boolean isPip2ExperimentEnabled() {
        if (sIsPip2ExperimentEnabled == null) {
@@ -7627,7 +7630,9 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
                    FEATURE_LEANBACK);
            final boolean isArc = arcFeature != null && arcFeature.version >= 0;
            final boolean isTv = tvFeature != null && tvFeature.version >= 0;
            sIsPip2ExperimentEnabled = Flags.enablePip2() && !isArc && !isTv;
            final boolean shouldOverridePip2Flag = ENABLE_DESKTOP_WINDOWING_PIP.isTrue();
            sIsPip2ExperimentEnabled = (Flags.enablePip2() || shouldOverridePip2Flag)
                    && !isArc && !isTv;
        }
        return sIsPip2ExperimentEnabled;
    }