diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2024-04-22 12:51:55 +0200 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2024-04-22 12:51:55 +0200 |
commit | 504d01b61eaa3e0d1af0a4cea866c18ecfc1395c (patch) | |
tree | 20086da672e04f63a91c945581b062ff20e97939 /platform/android/file_access_filesystem_jandroid.cpp | |
parent | 0b89b8b64c60b7fb7e9f1c26bf20b2c7d7c0adac (diff) | |
parent | 88b3e68f93fad5681b27b11ddacc562b03d5ef45 (diff) | |
download | redot-engine-504d01b61eaa3e0d1af0a4cea866c18ecfc1395c.tar.gz |
Merge pull request #90403 from bruvzg/file_resize
[FileAccess] Implement `resize` method.
Diffstat (limited to 'platform/android/file_access_filesystem_jandroid.cpp')
-rw-r--r-- | platform/android/file_access_filesystem_jandroid.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/platform/android/file_access_filesystem_jandroid.cpp b/platform/android/file_access_filesystem_jandroid.cpp index 46d9728632..cc7acffdad 100644 --- a/platform/android/file_access_filesystem_jandroid.cpp +++ b/platform/android/file_access_filesystem_jandroid.cpp @@ -53,6 +53,7 @@ jmethodID FileAccessFilesystemJAndroid::_file_write = nullptr; jmethodID FileAccessFilesystemJAndroid::_file_flush = nullptr; jmethodID FileAccessFilesystemJAndroid::_file_exists = nullptr; jmethodID FileAccessFilesystemJAndroid::_file_last_modified = nullptr; +jmethodID FileAccessFilesystemJAndroid::_file_resize = nullptr; String FileAccessFilesystemJAndroid::get_path() const { return path_src; @@ -324,6 +325,27 @@ Error FileAccessFilesystemJAndroid::get_error() const { return OK; } +Error FileAccessFilesystemJAndroid::resize(int64_t p_length) { + if (_file_resize) { + JNIEnv *env = get_jni_env(); + ERR_FAIL_NULL_V(env, FAILED); + ERR_FAIL_COND_V_MSG(!is_open(), FAILED, "File must be opened before use."); + int res = env->CallIntMethod(file_access_handler, _file_resize, id, p_length); + switch (res) { + case 0: + return OK; + case -3: + return ERR_INVALID_PARAMETER; + case -2: + return ERR_FILE_CANT_OPEN; + default: + return FAILED; + } + } else { + return ERR_UNAVAILABLE; + } +} + void FileAccessFilesystemJAndroid::flush() { if (_file_flush) { JNIEnv *env = get_jni_env(); @@ -383,6 +405,7 @@ void FileAccessFilesystemJAndroid::setup(jobject p_file_access_handler) { _file_flush = env->GetMethodID(cls, "fileFlush", "(I)V"); _file_exists = env->GetMethodID(cls, "fileExists", "(Ljava/lang/String;)Z"); _file_last_modified = env->GetMethodID(cls, "fileLastModified", "(Ljava/lang/String;)J"); + _file_resize = env->GetMethodID(cls, "fileResize", "(IJ)I"); } void FileAccessFilesystemJAndroid::close() { |