Additional fixes to the Android get_current_dir() implementation.

This commit is contained in:
Fredia Huya-Kouadio 2022-08-30 08:47:50 -07:00
parent 373a67b7a0
commit 9910d4681d
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;