1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-04 12:00:25 +00:00

Cleanup Android file errors

Follow up to https://github.com/godotengine/godot/pull/90403
This commit is contained in:
Fredia Huya-Kouadio
2024-04-22 07:48:45 -07:00
parent 7529c0bec5
commit 3a06b447cc
4 changed files with 66 additions and 17 deletions

View File

@@ -83,7 +83,7 @@ Error FileAccessFilesystemJAndroid::open_internal(const String &p_path, int p_mo
default: default:
return ERR_FILE_CANT_OPEN; return ERR_FILE_CANT_OPEN;
case -1: case -2:
return ERR_FILE_NOT_FOUND; return ERR_FILE_NOT_FOUND;
} }
} }
@@ -334,10 +334,13 @@ Error FileAccessFilesystemJAndroid::resize(int64_t p_length) {
switch (res) { switch (res) {
case 0: case 0:
return OK; return OK;
case -3: case -4:
return ERR_INVALID_PARAMETER; return ERR_INVALID_PARAMETER;
case -2: case -3:
return ERR_FILE_CANT_OPEN; return ERR_FILE_CANT_OPEN;
case -2:
return ERR_FILE_NOT_FOUND;
case -1:
default: default:
return FAILED; return FAILED;
} }

View File

@@ -52,11 +52,6 @@ internal abstract class DataAccess(private val filePath: String) {
companion object { companion object {
private val TAG = DataAccess::class.java.simpleName private val TAG = DataAccess::class.java.simpleName
private const val OK_ERROR_ID = 0;
private const val FAILED_ERROR_ID = -1;
private const val FILE_CANT_OPEN_ERROR_ID = -2;
private const val INVALID_PARAMETER_ERROR_ID = -3;
fun generateDataAccess( fun generateDataAccess(
storageScope: StorageScope, storageScope: StorageScope,
context: Context, context: Context,
@@ -145,15 +140,15 @@ internal abstract class DataAccess(private val filePath: String) {
fun resize(length: Long): Int { fun resize(length: Long): Int {
return try { return try {
fileChannel.truncate(length) fileChannel.truncate(length)
OK_ERROR_ID FileErrors.OK.nativeValue
} catch (e: NonWritableChannelException) { } catch (e: NonWritableChannelException) {
FILE_CANT_OPEN_ERROR_ID FileErrors.FILE_CANT_OPEN.nativeValue
} catch (e: ClosedChannelException) { } catch (e: ClosedChannelException) {
FILE_CANT_OPEN_ERROR_ID FileErrors.FILE_CANT_OPEN.nativeValue
} catch (e: IllegalArgumentException) { } catch (e: IllegalArgumentException) {
INVALID_PARAMETER_ERROR_ID FileErrors.INVALID_PARAMETER.nativeValue
} catch (e: IOException) { } catch (e: IOException) {
FAILED_ERROR_ID FileErrors.FAILED.nativeValue
} }
} }

View File

@@ -45,8 +45,6 @@ class FileAccessHandler(val context: Context) {
companion object { companion object {
private val TAG = FileAccessHandler::class.java.simpleName private val TAG = FileAccessHandler::class.java.simpleName
private const val FAILED_ERROR_ID = -1;
private const val FILE_NOT_FOUND_ERROR_ID = -1
internal const val INVALID_FILE_ID = 0 internal const val INVALID_FILE_ID = 0
private const val STARTING_FILE_ID = 1 private const val STARTING_FILE_ID = 1
@@ -119,7 +117,7 @@ class FileAccessHandler(val context: Context) {
lastFileId lastFileId
} ?: INVALID_FILE_ID } ?: INVALID_FILE_ID
} catch (e: FileNotFoundException) { } catch (e: FileNotFoundException) {
FILE_NOT_FOUND_ERROR_ID FileErrors.FILE_NOT_FOUND.nativeValue
} catch (e: Exception) { } catch (e: Exception) {
Log.w(TAG, "Error while opening $path", e) Log.w(TAG, "Error while opening $path", e)
INVALID_FILE_ID INVALID_FILE_ID
@@ -193,7 +191,7 @@ class FileAccessHandler(val context: Context) {
fun fileResize(fileId: Int, length: Long): Int { fun fileResize(fileId: Int, length: Long): Int {
if (!hasFileId(fileId)) { if (!hasFileId(fileId)) {
return FAILED_ERROR_ID return FileErrors.FAILED.nativeValue
} }
return files[fileId].resize(length) return files[fileId].resize(length)

View File

@@ -0,0 +1,53 @@
/**************************************************************************/
/* FileErrors.kt */
/**************************************************************************/
/* This file is part of: */
/* GODOT ENGINE */
/* https://godotengine.org */
/**************************************************************************/
/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
/* "Software"), to deal in the Software without restriction, including */
/* without limitation the rights to use, copy, modify, merge, publish, */
/* distribute, sublicense, and/or sell copies of the Software, and to */
/* permit persons to whom the Software is furnished to do so, subject to */
/* the following conditions: */
/* */
/* The above copyright notice and this permission notice shall be */
/* included in all copies or substantial portions of the Software. */
/* */
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/**************************************************************************/
package org.godotengine.godot.io.file
/**
* Set of errors that may occur when performing data access.
*/
internal enum class FileErrors(val nativeValue: Int) {
OK(0),
FAILED(-1),
FILE_NOT_FOUND(-2),
FILE_CANT_OPEN(-3),
INVALID_PARAMETER(-4);
companion object {
fun fromNativeError(error: Int): FileErrors? {
for (fileError in entries) {
if (fileError.nativeValue == error) {
return fileError
}
}
return null
}
}
}