Additional fixes to the Android get_current_dir()
implementation.
This commit is contained in:
parent
706d988baa
commit
f916dff26d
@ -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;
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -91,6 +91,9 @@ public:
|
||||
DirAccessJAndroid();
|
||||
~DirAccessJAndroid();
|
||||
|
||||
protected:
|
||||
String _get_root_string() const override;
|
||||
|
||||
private:
|
||||
int id = 0;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user