Merge pull request #65095 from m4gr3d/update_get_current_dir_main

Additional fixes to the Android `get_current_dir()` implementation.
This commit is contained in:
Rémi Verschelde 2022-08-31 09:00:53 +02:00 committed by GitHub
commit c80ea41e3b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 17 additions and 4 deletions

View File

@ -55,7 +55,7 @@ private:
protected:
String _get_root_path() const;
String _get_root_string() const;
virtual String _get_root_string() const;
AccessType get_access_type() const;
String fix_path(String p_path) const;

View File

@ -135,6 +135,13 @@ String DirAccessJAndroid::get_drive(int p_drive) {
}
}
String DirAccessJAndroid::_get_root_string() const {
if (get_access_type() == ACCESS_FILESYSTEM) {
return "/";
}
return DirAccessUnix::_get_root_string();
}
String DirAccessJAndroid::get_current_dir(bool p_include_drive) const {
String base = _get_root_path();
String bd = current_dir;
@ -142,10 +149,13 @@ String DirAccessJAndroid::get_current_dir(bool p_include_drive) const {
bd = current_dir.replace_first(base, "");
}
if (bd.begins_with("/")) {
return _get_root_string() + bd.substr(1, bd.length());
String root_string = _get_root_string();
if (bd.begins_with(root_string)) {
return bd;
} else if (bd.begins_with("/")) {
return root_string + bd.substr(1, bd.length());
} else {
return _get_root_string() + bd;
return root_string + bd;
}
}

View File

@ -91,6 +91,9 @@ public:
DirAccessJAndroid();
~DirAccessJAndroid();
protected:
String _get_root_string() const override;
private:
int id = 0;