diff --git a/README.md b/README.md index 950ef584b..384f7c03b 100644 --- a/README.md +++ b/README.md @@ -84,7 +84,13 @@ Features that may go unnoticed * Add more options to the language switch key ## The rough plan/todo before "full" release -* Add/update pre-defined themes +* Finish keyboard parsing upgrades + * In the end, layouts should be defined in either simple text files, or json files, ideally in same format as used by [FlorisBoard](https://github.com/florisboard/florisboard/tree/master/app/src/main/assets/ime/keyboard/org.florisboard.layouts/layouts) + * Users should be allowed to add their own layouts +* Overhaul the view system + * Have a fixed height common to all views (keyboard, emoji, clipboard) + * Should allow for more flexible one-handed mode (though the actual one-handed mode changes may be implemented later) + * Should allow for background images that don't resize or get cut off when switching between views * Internal clean up (xml files, unused resources, some todos in code) * Solve some [issues](https://github.com/Helium314/openboard/milestone/1) requiring a lot of work @@ -92,14 +98,20 @@ Once above is done, we can think about properly releasing the app: * Work on issues with the [when ready](https://github.com/Helium314/openboard/labels/when%20ready) label * Rename app, package and this repository * New icon -* Use a translation tool (e.g. weblate) +* Use a translation tool (probably weblate) * Release on F-Droid -* Maybe add a version that does not allow prodiving a glide typing library, for people concerned about security +* Maybe add a version that does not allow providing a glide typing library, for people concerned about security -## Further plan +## Further ideas * More customizable theming -* Improved / less bad suggestions in some cases -* Sliding key input for numpad and emojis (like `?123` and _shift_ sliding input) +* Improved / less bad suggestions in some specific situations +* Sliding key input for toolbar, numpad and emojis (like `?123` and _shift_ sliding input) +* More tunable behavior, e.g for delete and spacebar swipe, for toolbar, for spell checker,... +* Adjust arrangement of settings, maybe hide settings irrelevant for most users behind some "more settings mode" +* Migrate to internally use language tags (problematic due to lack of support on older Android versions) +* More customizable toolbar +* Support providing background images (for keyboard, and possibly also for keys) +* and general [bug](https://github.com/Helium314/openboard/issues?q=is%3Aopen+is%3Aissue+label%3Abug) fixing ----- # readme for original version of OpenBoard below diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/internal/KeyboardBuilder.kt b/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/internal/KeyboardBuilder.kt index e8454771a..6cd8e1844 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/internal/KeyboardBuilder.kt +++ b/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/internal/KeyboardBuilder.kt @@ -60,13 +60,16 @@ open class KeyboardBuilder(protected val mContext: Context, // todo: further plan // add a parser for more complex layouts, and slowly extend it with whatever is needed + // try to make the format compatible with florisboard, or just take it if it has all we need + // if so, then make sure additional stuff unwanted in this app (if there is some) does not cause errors + // probably need to deal with different functional key definition style, but only if allowing numpad and similar layouts // initially it's just alternative key for shifted layout // so dvorak and azerty and colemak and others can be migrated - // try to make the format compatible with florisboard // migrate symbol layouts to this style - // better before user-defined layouts - // should be straightforward to do - // allow users to define their own layouts + // simplified if possible, but json should be fine too + // migrate keypad layouts to this style + // will need more configurable layout definition -> another parser, or do it with compatible jsons + // allow users to define their own layouts (maybe migrate other layouts first?) // need to solve the scaling issue with number row and 5 row keyboards // write up how things work for users, also regarding language more keys // readme, maybe also some "help" button in a dialog @@ -98,14 +101,8 @@ open class KeyboardBuilder(protected val mContext: Context, // migrate emoji layouts to this style // emojis are defined in that string array, should be simple to handle // parsing could be done into a single row, which is then split as needed - // this might help with split layout (no change in key size, but in number of rows!) + // this might help with split layout (no change in key size, but in number of rows) // write another parser, it should already consider split - // more dynamic / lazy way for loading the 10 emoji keyboards? - // use recyclerView instead of a keyboard? - // or recyclerView with one keyboardView per row? - // could be possible if creating the keyboards is fast enough... but also need to check whether it's ok for memory use and stuff - // migrate keypad layouts to this style - // will need more configurable layout definition -> another parser // migrate moreKeys and moreSuggestions to this style? // at least they should not make use of the KeyTextsSet/Table (and of the XmlKeyboardParser?) // migrate other languages to this style diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/internal/keyboard_parser/SimpleKeyboardParser.kt b/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/internal/keyboard_parser/SimpleKeyboardParser.kt index 71f883ccb..36774464b 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/internal/keyboard_parser/SimpleKeyboardParser.kt +++ b/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/internal/keyboard_parser/SimpleKeyboardParser.kt @@ -566,6 +566,17 @@ private class BaseKey( ) // todo (later): may depend on language for non-latin layouts... or should the number row always be latin? +// best have number row layout in a file, and get layout file dependent on keyboard layout and some setting +// setting should be sth that goes like "prioritize localized numbers" +// idea for behavior: +// if no extra local number row: number row like now, no number row shows numbers in moreKeys +// for other numbers: +// language-dependent number moreKeys (latin numbers on localized variant, and localized variant on latin numbers) +// show whatever is selected as number row, or as morekeys if number row is off +// but then how to simply put both latin and local number in moreKeys when number row is disabled? +// consider that numbers may have more moreKeys... +// idea: field [numbers] where in the next line the numbers are space-separated in order 1-9 and 0 +// would be simpler to handle than moreKeys private val numbers = (1..9).map { it.toString() } + "0" // moreKeys for numbers, order is 1-9 and then 0 diff --git a/app/src/main/res/values/strings-config-important-notice.xml b/app/src/main/res/values/strings-config-important-notice.xml index 043914305..4423e7233 100644 --- a/app/src/main/res/values/strings-config-important-notice.xml +++ b/app/src/main/res/values/strings-config-important-notice.xml @@ -5,5 +5,6 @@ --> + Learn from your communications and typed data to improve suggestions