diff options
Diffstat (limited to 'platform/android/export/export_plugin.h')
-rw-r--r-- | platform/android/export/export_plugin.h | 56 |
1 files changed, 26 insertions, 30 deletions
diff --git a/platform/android/export/export_plugin.h b/platform/android/export/export_plugin.h index 0ac0fbb10b..e25655c6cc 100644 --- a/platform/android/export/export_plugin.h +++ b/platform/android/export/export_plugin.h @@ -31,7 +31,9 @@ #ifndef ANDROID_EXPORT_PLUGIN_H #define ANDROID_EXPORT_PLUGIN_H +#ifndef DISABLE_DEPRECATED #include "godot_plugin_config.h" +#endif // DISABLE_DEPRECATED #include "core/io/zip_io.h" #include "core/os/os.h" @@ -81,19 +83,25 @@ class EditorExportPlatformAndroid : public EditorExportPlatform { EditorProgress *ep = nullptr; }; - mutable Vector<PluginConfigAndroid> plugins; +#ifndef DISABLE_DEPRECATED + mutable Vector<PluginConfigAndroid> android_plugins; + mutable SafeFlag android_plugins_changed; + Mutex android_plugins_lock; +#endif // DISABLE_DEPRECATED String last_plugin_names; uint64_t last_gradle_build_time = 0; - mutable SafeFlag plugins_changed; - Mutex plugins_lock; + String last_gradle_build_dir; + Vector<Device> devices; SafeFlag devices_changed; Mutex device_lock; #ifndef ANDROID_ENABLED Thread check_for_changes_thread; SafeFlag quit_request; + SafeFlag has_runnable_preset; static void _check_for_changes_poll_thread(void *ud); + void _update_preset_status(); #endif String get_project_name(const String &p_name) const; @@ -128,12 +136,14 @@ class EditorExportPlatformAndroid : public EditorExportPlatform { static Vector<ABI> get_abis(); +#ifndef DISABLE_DEPRECATED /// List the gdap files in the directory specified by the p_path parameter. static Vector<String> list_gdap_files(const String &p_path); static Vector<PluginConfigAndroid> get_plugins(); static Vector<PluginConfigAndroid> get_enabled_plugins(const Ref<EditorExportPreset> &p_presets); +#endif // DISABLE_DEPRECATED static Error store_in_apk(APKExportData *ed, const String &p_path, const Vector<uint8_t> &p_data, int compression_method = Z_DEFLATED); @@ -167,10 +177,6 @@ class EditorExportPlatformAndroid : public EditorExportPlatform { void load_icon_refs(const Ref<EditorExportPreset> &p_preset, Ref<Image> &icon, Ref<Image> &foreground, Ref<Image> &background); - void store_image(const LauncherIcon launcher_icon, const Vector<uint8_t> &data); - - void store_image(const String &export_path, const Vector<uint8_t> &data); - void _copy_icons_to_gradle_project(const Ref<EditorExportPreset> &p_preset, const String &processed_splash_config_xml, const Ref<Image> &splash_image, @@ -183,14 +189,18 @@ class EditorExportPlatformAndroid : public EditorExportPlatform { static bool _uses_vulkan(); +protected: + void _notification(int p_what); + public: typedef Error (*EditorExportSaveFunction)(void *p_userdata, const String &p_path, const Vector<uint8_t> &p_data, int p_file, int p_total, const Vector<String> &p_enc_in_filters, const Vector<String> &p_enc_ex_filters, const Vector<uint8_t> &p_key); -public: virtual void get_preset_features(const Ref<EditorExportPreset> &p_preset, List<String> *r_features) const override; virtual void get_export_options(List<ExportOption> *r_options) const override; + virtual bool get_export_option_visibility(const EditorExportPreset *p_preset, const String &p_option) const override; + virtual String get_export_option_warning(const EditorExportPreset *p_preset, const StringName &p_name) const override; virtual String get_name() const override; @@ -219,33 +229,19 @@ public: static String get_apksigner_path(int p_target_sdk = -1, bool p_check_executes = false); + static String get_java_path(); + virtual bool has_valid_export_configuration(const Ref<EditorExportPreset> &p_preset, String &r_error, bool &r_missing_templates, bool p_debug = false) const override; virtual bool has_valid_project_configuration(const Ref<EditorExportPreset> &p_preset, String &r_error) const override; + static bool has_valid_username_and_password(const Ref<EditorExportPreset> &p_preset, String &r_error); virtual List<String> get_binary_extensions(const Ref<EditorExportPreset> &p_preset) const override; - inline bool is_clean_build_required(Vector<PluginConfigAndroid> enabled_plugins) { - String plugin_names = PluginConfigAndroid::get_plugins_names(enabled_plugins); - bool first_build = last_gradle_build_time == 0; - bool have_plugins_changed = false; - - if (!first_build) { - have_plugins_changed = plugin_names != last_plugin_names; - if (!have_plugins_changed) { - for (int i = 0; i < enabled_plugins.size(); i++) { - if (enabled_plugins.get(i).last_updated > last_gradle_build_time) { - have_plugins_changed = true; - break; - } - } - } - } + String _get_plugins_names(const Ref<EditorExportPreset> &p_preset) const; - last_gradle_build_time = OS::get_singleton()->get_unix_time(); - last_plugin_names = plugin_names; + String _resolve_export_plugin_android_library_path(const String &p_android_library_path) const; - return have_plugins_changed || first_build; - } + bool _is_clean_build_required(const Ref<EditorExportPreset> &p_preset); String get_apk_expansion_fullpath(const Ref<EditorExportPreset> &p_preset, const String &p_path); @@ -255,9 +251,9 @@ public: Error sign_apk(const Ref<EditorExportPreset> &p_preset, bool p_debug, const String &export_path, EditorProgress &ep); - void _clear_assets_directory(); + void _clear_assets_directory(const Ref<EditorExportPreset> &p_preset); - void _remove_copied_libs(); + void _remove_copied_libs(String p_gdextension_libs_path); static String join_list(const List<String> &p_parts, const String &p_separator); static String join_abis(const Vector<ABI> &p_parts, const String &p_separator, bool p_use_arch); |