Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions export_presets.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ permissions/location_hardware=false
permissions/manage_accounts=false
permissions/manage_app_tokens=false
permissions/manage_documents=false
permissions/manage_external_storage=true
permissions/manage_external_storage=false
permissions/master_clear=false
permissions/media_content_control=false
permissions/modify_audio_settings=false
Expand All @@ -150,13 +150,13 @@ permissions/process_outgoing_calls=false
permissions/read_calendar=false
permissions/read_call_log=false
permissions/read_contacts=false
permissions/read_external_storage=false
permissions/read_external_storage=true
permissions/read_frame_buffer=false
permissions/read_history_bookmarks=false
permissions/read_input_state=false
permissions/read_logs=false
permissions/read_media_audio=false
permissions/read_media_images=false
permissions/read_media_images=true
permissions/read_media_video=false
permissions/read_media_visual_user_selected=false
permissions/read_phone_state=false
Expand Down Expand Up @@ -205,7 +205,7 @@ permissions/write_apn_settings=false
permissions/write_calendar=false
permissions/write_call_log=false
permissions/write_contacts=false
permissions/write_external_storage=false
permissions/write_external_storage=true
permissions/write_gservices=false
permissions/write_history_bookmarks=false
permissions/write_profile=false
Expand Down Expand Up @@ -356,7 +356,7 @@ permissions/location_hardware=false
permissions/manage_accounts=false
permissions/manage_app_tokens=false
permissions/manage_documents=false
permissions/manage_external_storage=true
permissions/manage_external_storage=false
permissions/master_clear=false
permissions/media_content_control=false
permissions/modify_audio_settings=false
Expand All @@ -370,13 +370,13 @@ permissions/process_outgoing_calls=false
permissions/read_calendar=false
permissions/read_call_log=false
permissions/read_contacts=false
permissions/read_external_storage=false
permissions/read_external_storage=true
permissions/read_frame_buffer=false
permissions/read_history_bookmarks=false
permissions/read_input_state=false
permissions/read_logs=false
permissions/read_media_audio=false
permissions/read_media_images=false
permissions/read_media_images=true
permissions/read_media_video=false
permissions/read_media_visual_user_selected=false
permissions/read_phone_state=false
Expand Down Expand Up @@ -425,7 +425,7 @@ permissions/write_apn_settings=false
permissions/write_calendar=false
permissions/write_call_log=false
permissions/write_contacts=false
permissions/write_external_storage=false
permissions/write_external_storage=true
permissions/write_gservices=false
permissions/write_history_bookmarks=false
permissions/write_profile=false
Expand Down
1 change: 0 additions & 1 deletion project.godot
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,6 @@ import/fbx/enabled=false
[gui]

timers/tooltip_delay_sec=0.4
theme/custom="uid://dreumigwm5s8q"

[input]

Expand Down
2 changes: 2 additions & 0 deletions src/autoload/Configs.gd
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@ signal tab_selected(index: int)
@warning_ignore("unused_signal")
signal layout_changed

var current_sdk: int = -1

const savedata_path = "user://savedata.tres"
var savedata: SaveData:
set(new_value):
Expand Down
2 changes: 1 addition & 1 deletion src/config_classes/SaveData.gd
Original file line number Diff line number Diff line change
Expand Up @@ -867,6 +867,6 @@ func get_active_tab_dir() -> String:
func get_last_dir() -> String:
_validate_recent_dirs()
if _recent_dirs.is_empty() or not DirAccess.dir_exists_absolute(_recent_dirs[0]):
return OS.get_system_dir(OS.SYSTEM_DIR_PICTURES)
return OS.get_system_dir(OS.SYSTEM_DIR_DOCUMENTS)
else:
return _recent_dirs[0]
10 changes: 8 additions & 2 deletions src/config_classes/TabData.gd
Original file line number Diff line number Diff line change
Expand Up @@ -74,8 +74,14 @@ func _save_svg_text() -> void:
func save_to_bound_path() -> void:
if Configs.savedata.get_active_tab() != self:
return
FileAccess.open(svg_file_path, FileAccess.WRITE).store_string(State.get_export_text())
queue_sync()
var f := FileAccess.open(svg_file_path, FileAccess.WRITE)
if f != null:
f.store_string(State.get_export_text())
queue_sync()
else:
# Failed to save to the bound file path.
# Opening export dialog to save and bind a new path.
FileUtils.open_export_dialog(ImageExportData.new(), queue_sync)

func setup_svg_text(new_text: String, fully_load := true) -> void:
_svg_text = new_text
Expand Down
2 changes: 2 additions & 0 deletions src/ui_parts/editor_scene.gd
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ func _ready() -> void:
Configs.layout_changed.connect(update_layout)
update_layout()
update_theme()
var version = JavaClassWrapper.wrap("android.os.Build$VERSION")
if version: Configs.current_sdk = version.SDK_INT

func update_theme() -> void:
var stylebox := StyleBoxFlat.new()
Expand Down
12 changes: 9 additions & 3 deletions src/utils/FileUtils.gd
Original file line number Diff line number Diff line change
Expand Up @@ -95,8 +95,6 @@ static func open_export_dialog(export_data: ImageExportData, final_callback := C
export_dialog.files_selected.connect(non_native_callback)

static func open_xml_export_dialog(xml: String, file_name: String) -> void:
if not OS.request_permissions():
return
if OS.has_feature("web"):
_web_save(xml.to_utf8_buffer(), "application/xml")
else:
Expand All @@ -120,6 +118,9 @@ static func open_xml_export_dialog(xml: String, file_name: String) -> void:
func(paths: PackedStringArray) -> void: _finish_xml_export(paths[0], xml))

static func _finish_export(file_path: String, export_data: ImageExportData) -> void:
if not (file_path.contains("/Documents/") or file_path.contains("/Download/")):
OS.alert("Saving is only allowed in the Documents or Download directories.", "Save Failed")
return
if file_path.get_extension().is_empty():
file_path += "." + export_data.format

Expand Down Expand Up @@ -181,8 +182,13 @@ static func open_xml_import_dialog(completion_callback: Callable) -> void:
# On web, the completion callback can't use the full file path.
static func _open_import_dialog(extensions: PackedStringArray,
completion_callback: Callable, multi_select := false) -> void:
if not OS.request_permissions():
var permission := "android.permission.READ_MEDIA_IMAGES"
if Configs.current_sdk < 33:
permission = "android.permission.READ_EXTERNAL_STORAGE"

if not OS.request_permission(permission):
return

var extensions_with_dots := PackedStringArray()
for extension in extensions:
extensions_with_dots.append("." + extension)
Expand Down