|
@@ -76,6 +76,16 @@ open class GodotEditor : FullScreenGodotApp() {
|
|
|
private const val PROJECT_MANAGER_ARG = "--project-manager"
|
|
|
private const val PROJECT_MANAGER_ARG_SHORT = "-p"
|
|
|
private const val PROJECT_MANAGER_PROCESS_NAME_SUFFIX = ":GodotProjectManager"
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Sets of constants to specify the window to use to run the project.
|
|
|
+ *
|
|
|
+ * Should match the values in 'editor/editor_settings.cpp' for the
|
|
|
+ * 'run/window_placement/android_window' setting.
|
|
|
+ */
|
|
|
+ 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 val commandLineParams = ArrayList<String>()
|
|
@@ -142,8 +152,7 @@ open class GodotEditor : FullScreenGodotApp() {
|
|
|
|
|
|
// Whether we should launch the new godot instance in an adjacent window
|
|
|
// https://developer.android.com/reference/android/content/Intent#FLAG_ACTIVITY_LAUNCH_ADJACENT
|
|
|
- var launchAdjacent =
|
|
|
- Build.VERSION.SDK_INT >= Build.VERSION_CODES.N && (isInMultiWindowMode || isLargeScreen)
|
|
|
+ var launchAdjacent = shouldGameLaunchAdjacent()
|
|
|
|
|
|
for (arg in args) {
|
|
|
if (EDITOR_ARG == arg || EDITOR_ARG_SHORT == arg) {
|
|
@@ -246,6 +255,26 @@ open class GodotEditor : FullScreenGodotApp() {
|
|
|
protected open fun enablePanAndScaleGestures() =
|
|
|
java.lang.Boolean.parseBoolean(GodotLib.getEditorSetting("interface/touchscreen/enable_pan_and_scale_gestures"))
|
|
|
|
|
|
+ private fun shouldGameLaunchAdjacent(): Boolean {
|
|
|
+ return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
|
|
+ try {
|
|
|
+ when (Integer.parseInt(GodotLib.getEditorSetting("run/window_placement/android_window"))) {
|
|
|
+ ANDROID_WINDOW_SAME_AS_EDITOR -> false
|
|
|
+ ANDROID_WINDOW_SIDE_BY_SIDE_WITH_EDITOR -> true
|
|
|
+ else -> {
|
|
|
+ // ANDROID_WINDOW_AUTO
|
|
|
+ isInMultiWindowMode || isLargeScreen
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (e: NumberFormatException) {
|
|
|
+ // Fall-back to the 'Auto' behavior
|
|
|
+ isInMultiWindowMode || isLargeScreen
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ false
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
|
|
super.onActivityResult(requestCode, resultCode, data)
|
|
|
// Check if we got the MANAGE_EXTERNAL_STORAGE permission
|