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:
commit
c80ea41e3b
|
@ -55,7 +55,7 @@ private:
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
String _get_root_path() const;
|
String _get_root_path() const;
|
||||||
String _get_root_string() const;
|
virtual String _get_root_string() const;
|
||||||
|
|
||||||
AccessType get_access_type() const;
|
AccessType get_access_type() const;
|
||||||
String fix_path(String p_path) 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 DirAccessJAndroid::get_current_dir(bool p_include_drive) const {
|
||||||
String base = _get_root_path();
|
String base = _get_root_path();
|
||||||
String bd = current_dir;
|
String bd = current_dir;
|
||||||
|
@ -142,10 +149,13 @@ String DirAccessJAndroid::get_current_dir(bool p_include_drive) const {
|
||||||
bd = current_dir.replace_first(base, "");
|
bd = current_dir.replace_first(base, "");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (bd.begins_with("/")) {
|
String root_string = _get_root_string();
|
||||||
return _get_root_string() + bd.substr(1, bd.length());
|
if (bd.begins_with(root_string)) {
|
||||||
|
return bd;
|
||||||
|
} else if (bd.begins_with("/")) {
|
||||||
|
return root_string + bd.substr(1, bd.length());
|
||||||
} else {
|
} else {
|
||||||
return _get_root_string() + bd;
|
return root_string + bd;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -91,6 +91,9 @@ public:
|
||||||
DirAccessJAndroid();
|
DirAccessJAndroid();
|
||||||
~DirAccessJAndroid();
|
~DirAccessJAndroid();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
String _get_root_string() const override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int id = 0;
|
int id = 0;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue