From 7af6adcf1132a85bd21339b97fd5fa9c2a731b94 Mon Sep 17 00:00:00 2001 From: Jules Aguillon Date: Sun, 17 Dec 2023 11:56:17 +0100 Subject: prefs: Report errors while editing custom layouts Errors are obtained by running the parser, validation is throttle to when the user stops editing for a second. --- srcs/juloo.keyboard2/KeyboardData.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'srcs/juloo.keyboard2/KeyboardData.java') diff --git a/srcs/juloo.keyboard2/KeyboardData.java b/srcs/juloo.keyboard2/KeyboardData.java index 8ecd053..9326ad8 100644 --- a/srcs/juloo.keyboard2/KeyboardData.java +++ b/srcs/juloo.keyboard2/KeyboardData.java @@ -201,9 +201,7 @@ class KeyboardData { try { - XmlPullParser parser = Xml.newPullParser(); - parser.setInput(new StringReader(src)); - return parse_keyboard(parser); + return load_string_exn(src); } catch (Exception e) { @@ -211,6 +209,15 @@ class KeyboardData } } + /** Like [load_string] but throws an exception on error and do not return + [null]. */ + public static KeyboardData load_string_exn(String src) throws Exception + { + XmlPullParser parser = Xml.newPullParser(); + parser.setInput(new StringReader(src)); + return parse_keyboard(parser); + } + private static KeyboardData parse_keyboard(XmlPullParser parser) throws Exception { if (!expect_tag(parser, "keyboard")) -- cgit v1.2.3