From d7c230e173aeb039565d479af7b6f00776a70626 Mon Sep 17 00:00:00 2001 From: Jules Aguillon Date: Sun, 17 Dec 2023 12:41:19 +0100 Subject: [PATCH] prefs: Use QWERTY (US) as the default custom layout This layout definition contains some documentation and is a better default than no text. --- build.gradle | 12 +++++++++++- srcs/juloo.keyboard2/LayoutsPreference.java | 18 +++++++++++++++++- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 57beb80d2..1fe3cf2bc 100644 --- a/build.gradle +++ b/build.gradle @@ -18,7 +18,7 @@ android { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['srcs'] - res.srcDirs = ['res'] + res.srcDirs = ['res', 'build/generated-resources'] assets.srcDirs = ['assets'] } } @@ -134,6 +134,7 @@ tasks.register('syncTranslations') { tasks.named("preBuild") { dependsOn += "initDebugKeystore" + dependsOn += "copyRawQwertyUS" } tasks.register('initDebugKeystore') { @@ -145,3 +146,12 @@ tasks.register('initDebugKeystore') { } } } + +// latn_qwerty_us is used as a raw resource by the custom layout option. +tasks.register('copyRawQwertyUS') +{ + copy { + from "res/xml/latn_qwerty_us.xml" + into "build/generated-resources/raw" + } +} diff --git a/srcs/juloo.keyboard2/LayoutsPreference.java b/srcs/juloo.keyboard2/LayoutsPreference.java index 313b46f03..a9405e6e0 100644 --- a/srcs/juloo.keyboard2/LayoutsPreference.java +++ b/srcs/juloo.keyboard2/LayoutsPreference.java @@ -151,7 +151,7 @@ public void onClick(DialogInterface _dialog, int which) callback.select(new SystemLayout()); break; case "custom": - select_custom(callback, ""); + select_custom(callback, read_initial_custom_layout()); break; default: callback.select(new NamedLayout(name)); @@ -203,6 +203,22 @@ void select(final SelectionCallback callback, Layout prev_layout) select(callback); } + /** The initial text for the custom layout entry box. The qwerty_us layout is + a good default and contains a bit of documentation. */ + String read_initial_custom_layout() + { + try + { + Resources res = getContext().getResources(); + byte[] raw = res.openRawResource(R.raw.latn_qwerty_us).readAllBytes(); + return new String(raw, "UTF-8"); + } + catch (Exception _e) + { + return ""; + } + } + class LayoutsAddButton extends AddButton { public LayoutsAddButton(Context ctx)