diff options
| author | Fredia Huya-Kouadio <fhuya@meta.com> | 2024-08-30 10:07:52 -0700 |
|---|---|---|
| committer | Fredia Huya-Kouadio <fhuyakou@gmail.com> | 2024-08-30 10:31:33 -0700 |
| commit | 11d4df4bc3be5cbe4d8fad4b270c1308628b690a (patch) | |
| tree | 509cf7504659c5412b6826e408f902810820f9a0 /platform/android/java/editor/src | |
| parent | a5830f6eb9fe25fbb7e58a723dbea8509aec8a85 (diff) | |
| download | redot-engine-11d4df4bc3be5cbe4d8fad4b270c1308628b690a.tar.gz | |
Update the options for launching the Play window in PiP mode
Diffstat (limited to 'platform/android/java/editor/src')
| -rw-r--r-- | platform/android/java/editor/src/main/java/org/godotengine/editor/EditorWindowInfo.kt | 7 | ||||
| -rw-r--r-- | platform/android/java/editor/src/main/java/org/godotengine/editor/GodotEditor.kt | 19 |
2 files changed, 19 insertions, 7 deletions
diff --git a/platform/android/java/editor/src/main/java/org/godotengine/editor/EditorWindowInfo.kt b/platform/android/java/editor/src/main/java/org/godotengine/editor/EditorWindowInfo.kt index d3daa1dbbc..2e1de9a607 100644 --- a/platform/android/java/editor/src/main/java/org/godotengine/editor/EditorWindowInfo.kt +++ b/platform/android/java/editor/src/main/java/org/godotengine/editor/EditorWindowInfo.kt @@ -48,7 +48,12 @@ enum class LaunchPolicy { /** * Adjacent launches are enabled. */ - ADJACENT + ADJACENT, + + /** + * Launches happen in the same window but start in PiP mode. + */ + SAME_AND_LAUNCH_IN_PIP_MODE } /** diff --git a/platform/android/java/editor/src/main/java/org/godotengine/editor/GodotEditor.kt b/platform/android/java/editor/src/main/java/org/godotengine/editor/GodotEditor.kt index 1995a38c2a..405b2fb57f 100644 --- a/platform/android/java/editor/src/main/java/org/godotengine/editor/GodotEditor.kt +++ b/platform/android/java/editor/src/main/java/org/godotengine/editor/GodotEditor.kt @@ -101,6 +101,7 @@ open class GodotEditor : GodotActivity() { private const val ANDROID_WINDOW_AUTO = 0 private const val ANDROID_WINDOW_SAME_AS_EDITOR = 1 private const val ANDROID_WINDOW_SIDE_BY_SIDE_WITH_EDITOR = 2 + private const val ANDROID_WINDOW_SAME_AS_EDITOR_AND_LAUNCH_IN_PIP_MODE = 3 /** * Sets of constants to specify the Play window PiP mode. @@ -244,25 +245,30 @@ open class GodotEditor : GodotActivity() { val isPiPAvailable = if (editorWindowInfo.supportsPiPMode && hasPiPSystemFeature()) { val pipMode = getPlayWindowPiPMode() pipMode == PLAY_WINDOW_PIP_ENABLED || - (pipMode == PLAY_WINDOW_PIP_ENABLED_FOR_SAME_AS_EDITOR && launchPolicy == LaunchPolicy.SAME) + (pipMode == PLAY_WINDOW_PIP_ENABLED_FOR_SAME_AS_EDITOR && + (launchPolicy == LaunchPolicy.SAME || launchPolicy == LaunchPolicy.SAME_AND_LAUNCH_IN_PIP_MODE)) } else { false } newInstance.putExtra(EXTRA_PIP_AVAILABLE, isPiPAvailable) + var launchInPiP = false if (launchPolicy == LaunchPolicy.ADJACENT) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { Log.v(TAG, "Adding flag for adjacent launch") newInstance.addFlags(Intent.FLAG_ACTIVITY_LAUNCH_ADJACENT) } } else if (launchPolicy == LaunchPolicy.SAME) { - if (isPiPAvailable && - (updatedArgs.contains(BREAKPOINTS_ARG) || updatedArgs.contains(BREAKPOINTS_ARG_SHORT))) { - Log.v(TAG, "Launching in PiP mode because of breakpoints") - newInstance.putExtra(EXTRA_LAUNCH_IN_PIP, true) - } + launchInPiP = isPiPAvailable && + (updatedArgs.contains(BREAKPOINTS_ARG) || updatedArgs.contains(BREAKPOINTS_ARG_SHORT)) + } else if (launchPolicy == LaunchPolicy.SAME_AND_LAUNCH_IN_PIP_MODE) { + launchInPiP = isPiPAvailable } + if (launchInPiP) { + Log.v(TAG, "Launching in PiP mode") + newInstance.putExtra(EXTRA_LAUNCH_IN_PIP, launchInPiP) + } return newInstance } @@ -403,6 +409,7 @@ open class GodotEditor : GodotActivity() { when (Integer.parseInt(GodotLib.getEditorSetting("run/window_placement/android_window"))) { ANDROID_WINDOW_SAME_AS_EDITOR -> LaunchPolicy.SAME ANDROID_WINDOW_SIDE_BY_SIDE_WITH_EDITOR -> LaunchPolicy.ADJACENT + ANDROID_WINDOW_SAME_AS_EDITOR_AND_LAUNCH_IN_PIP_MODE -> LaunchPolicy.SAME_AND_LAUNCH_IN_PIP_MODE else -> { // ANDROID_WINDOW_AUTO defaultLaunchPolicy |
