You've already forked godot
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:
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user