diff --git a/android/src/main/java/com/jimmydaddy/imagemarker/base/ErrorCode.kt b/android/src/main/java/com/jimmydaddy/imagemarker/base/ErrorCode.kt index f81cdb9d..2aae1083 100644 --- a/android/src/main/java/com/jimmydaddy/imagemarker/base/ErrorCode.kt +++ b/android/src/main/java/com/jimmydaddy/imagemarker/base/ErrorCode.kt @@ -4,5 +4,6 @@ enum class ErrorCode(val value: String) { INVALID_PARAMS("INVALID_PARAMS"), LOAD_IMAGE_FAILED("LOAD_IMAGE_FAILED"), GET_RESOURCE_FAILED("GET_RESOURCE_FAILED"), - PARAMS_REQUIRED("PARAMS_REQUIRED"); + PARAMS_REQUIRED("PARAMS_REQUIRED"), + NULL_MAP("NULL_MAP"); } diff --git a/android/src/main/java/com/jimmydaddy/imagemarker/base/MarkTextOptions.kt b/android/src/main/java/com/jimmydaddy/imagemarker/base/MarkTextOptions.kt index 31b3043b..19d3513f 100644 --- a/android/src/main/java/com/jimmydaddy/imagemarker/base/MarkTextOptions.kt +++ b/android/src/main/java/com/jimmydaddy/imagemarker/base/MarkTextOptions.kt @@ -10,9 +10,13 @@ class MarkTextOptions(options: ReadableMap) : Options(options) { val waterMarkTextsMap = options.getArray("watermarkTexts") if (waterMarkTextsMap!!.size() > 0) { watermarkTexts = arrayOfNulls(waterMarkTextsMap.size()) - for (i in 0 until waterMarkTextsMap.size()) { - val textMap = waterMarkTextsMap.getMap(i) - watermarkTexts[i] = TextOptions(textMap) + for (i in 0 until waterMarkTextsMap.size()) { + val textMap = waterMarkTextsMap.getMap(i) + textMap?.let { + watermarkTexts[i] = TextOptions(it) + } ?: run { + throw MarkerError(ErrorCode.NULL_MAP, "watermarkTexts[$i] is null") + } } } } diff --git a/android/src/main/java/com/jimmydaddy/imagemarker/base/Utils.kt b/android/src/main/java/com/jimmydaddy/imagemarker/base/Utils.kt index 9c81ce66..64ac288b 100644 --- a/android/src/main/java/com/jimmydaddy/imagemarker/base/Utils.kt +++ b/android/src/main/java/com/jimmydaddy/imagemarker/base/Utils.kt @@ -160,15 +160,15 @@ class Utils { } fun handleDynamicToString(d: Dynamic?): String { - return if (d == null) "0" - else - when (d.type) { - ReadableType.String -> d.asString() - ReadableType.Number -> d.asDouble().toString() - else -> { - "0" + return if (d == null) { + "0" + } else { + when (d.type) { + ReadableType.String -> d.asString() ?: "0" + ReadableType.Number -> d.asDouble().toString() + else -> "0" } - } + } } }