Loading libs/WindowManager/Shell/src/com/android/wm/shell/common/pip/PipUtils.kt +21 −1 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 { Loading @@ -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 } Loading @@ -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}") } } libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipController.java +1 −0 Original line number Diff line number Diff line Loading @@ -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); Loading services/core/java/com/android/server/wm/ActivityTaskManagerService.java +6 −1 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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) { Loading @@ -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; } Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/common/pip/PipUtils.kt +21 −1 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 { Loading @@ -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 } Loading @@ -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}") } }
libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipController.java +1 −0 Original line number Diff line number Diff line Loading @@ -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); Loading
services/core/java/com/android/server/wm/ActivityTaskManagerService.java +6 −1 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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) { Loading @@ -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; } Loading