Merge pull request #65093 from m4gr3d/update_get_current_dir_3x

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

View file

@ -54,7 +54,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

@ -134,6 +134,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() {
String base = _get_root_path();
String bd = current_dir;
@ -141,10 +148,13 @@ String DirAccessJAndroid::get_current_dir() {
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;