Browse Source

Fix apk install after gradle build for the Android editor

Fredia Huya-Kouadio 2 weeks ago
parent
commit
d85dbee766

+ 8 - 1
platform/android/export/android_editor_gradle_runner.cpp

@@ -32,15 +32,17 @@
 #include "android_editor_gradle_runner.h"
 
 #include "editor/editor_interface.h"
+#include "editor/settings/editor_settings.h"
 #include "scene/gui/dialogs.h"
 #include "scene/gui/rich_text_label.h"
 
 #include "../java_godot_wrapper.h"
 #include "../os_android.h"
 
-void AndroidEditorGradleRunner::run_gradle(const String &p_project_path, const String &p_build_path, const List<String> &p_gradle_build_args, const List<String> &p_gradle_copy_args) {
+void AndroidEditorGradleRunner::run_gradle(const String &p_project_path, const String &p_build_path, const String &p_output_path, const List<String> &p_gradle_build_args, const List<String> &p_gradle_copy_args) {
 	project_path = p_project_path;
 	build_path = p_build_path;
+	output_path = p_output_path;
 	gradle_build_args = p_gradle_build_args;
 	gradle_copy_args = p_gradle_copy_args;
 
@@ -151,6 +153,11 @@ void AndroidEditorGradleRunner::_android_gradle_build_clean_project(bool p_was_s
 
 		if (p_was_successful) {
 			output_dialog->hide();
+
+			bool prompt_apk_install = EDITOR_GET("export/android/install_exported_apk");
+			if (prompt_apk_install) {
+				OS_Android::get_singleton()->shell_open(output_path);
+			}
 		} else {
 			output_dialog->get_ok_button()->set_disabled(false);
 		}

+ 2 - 1
platform/android/export/android_editor_gradle_runner.h

@@ -52,6 +52,7 @@ class AndroidEditorGradleRunner : public Object {
 
 	String project_path;
 	String build_path;
+	String output_path;
 	List<String> gradle_build_args;
 	List<String> gradle_copy_args;
 	int64_t job_id;
@@ -70,7 +71,7 @@ class AndroidEditorGradleRunner : public Object {
 	void _android_gradle_build_cancel();
 
 public:
-	void run_gradle(const String &p_project_path, const String &p_build_path, const List<String> &p_gradle_build_args, const List<String> &p_gradle_copy_args);
+	void run_gradle(const String &p_project_path, const String &p_build_path, const String &p_output_path, const List<String> &p_gradle_build_args, const List<String> &p_gradle_copy_args);
 };
 
 #endif // ANDROID_ENABLED

+ 1 - 0
platform/android/export/export_plugin.cpp

@@ -3954,6 +3954,7 @@ Error EditorExportPlatformAndroid::export_project_helper(const Ref<EditorExportP
 		android_editor_gradle_runner->run_gradle(
 				project_path,
 				build_path.substr(project_path.length()),
+				export_path.path_join(export_filename),
 				cmdline,
 				copy_args);
 #else