From e7ccf72fc54f31bfb12f2b2f432feca40c1aa172 Mon Sep 17 00:00:00 2001 From: Helium314 Date: Sun, 18 May 2025 21:32:53 +0200 Subject: [PATCH] reduce unnecessary json parse attempts when editing layouts --- .../helium314/keyboard/latin/utils/LayoutUtilsCustom.kt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/helium314/keyboard/latin/utils/LayoutUtilsCustom.kt b/app/src/main/java/helium314/keyboard/latin/utils/LayoutUtilsCustom.kt index 19b44f739..4f8686442 100644 --- a/app/src/main/java/helium314/keyboard/latin/utils/LayoutUtilsCustom.kt +++ b/app/src/main/java/helium314/keyboard/latin/utils/LayoutUtilsCustom.kt @@ -36,11 +36,13 @@ object LayoutUtilsCustom { params.mPopupKeyTypes.add(POPUP_KEYS_LAYOUT) addLocaleKeyTextsToParams(context, params, POPUP_KEYS_NORMAL) try { - val keys = LayoutParser.parseJsonString(layoutContent).map { row -> row.mapNotNull { it.compute(params)?.toKeyParams(params) } } - return checkKeys(keys) + if (layoutContent.trimStart().startsWith("[") || layoutContent.trimStart().startsWith("//")) { + val keys = LayoutParser.parseJsonString(layoutContent).map { row -> row.mapNotNull { it.compute(params)?.toKeyParams(params) } } + return checkKeys(keys) + } } catch (e: SerializationException) { Log.w(TAG, "json parsing error", e) - if (layoutContent.trimStart().startsWith("[") && layoutContent.trimEnd().endsWith("]") && layoutContent.contains("},")) + if (layoutContent.trimEnd().endsWith("]") && layoutContent.contains("},")) return false // we're sure enough it's a json } catch (e: Exception) { Log.w(TAG, "json layout parsed, but considered invalid", e)