diff --git a/app/src/main/java/helium314/keyboard/latin/utils/CustomLayoutUtils.kt b/app/src/main/java/helium314/keyboard/latin/utils/CustomLayoutUtils.kt index 1b2d5d780..a3cbbcb6f 100644 --- a/app/src/main/java/helium314/keyboard/latin/utils/CustomLayoutUtils.kt +++ b/app/src/main/java/helium314/keyboard/latin/utils/CustomLayoutUtils.kt @@ -89,6 +89,8 @@ fun checkLayout(layoutContent: String, context: Context): Boolean { return checkKeys(keys) } catch (e: SerializationException) { Log.w(TAG, "json parsing error", e) + if (layoutContent.trimStart().startsWith("[") && 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) return false diff --git a/app/src/main/java/helium314/keyboard/settings/dialogs/LayoutEditDialog.kt b/app/src/main/java/helium314/keyboard/settings/dialogs/LayoutEditDialog.kt index ca46082b9..76cb21be7 100644 --- a/app/src/main/java/helium314/keyboard/settings/dialogs/LayoutEditDialog.kt +++ b/app/src/main/java/helium314/keyboard/settings/dialogs/LayoutEditDialog.kt @@ -7,7 +7,6 @@ import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue diff --git a/app/src/main/java/helium314/keyboard/settings/preferences/LayoutEditPreference.kt b/app/src/main/java/helium314/keyboard/settings/preferences/LayoutEditPreference.kt index f4bcc92ed..6d71e54a0 100644 --- a/app/src/main/java/helium314/keyboard/settings/preferences/LayoutEditPreference.kt +++ b/app/src/main/java/helium314/keyboard/settings/preferences/LayoutEditPreference.kt @@ -5,7 +5,6 @@ import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue import androidx.compose.ui.platform.LocalContext @@ -47,6 +46,7 @@ fun LayoutEditPreference( it.name.startsWith("$layout.") else it.name.startsWith("$CUSTOM_LAYOUT_PREFIX$layout.") }?.name + // todo: never set originalLayout null if custom layout file does not exist! val originalLayout = if (customLayoutName != null) null else getDefaultLayout(layout)?.let { ctx.assets.open("layouts" + File.separator + it).reader().readText() } LayoutEditDialog(