0
0
mirror of https://github.com/florisboard/florisboard.git synced 2024-09-19 11:32:18 +02:00
An open-source keyboard for Android which respects your privacy. Currently in early-beta.
Go to file
Waelwindows a5dab5fb5a
Add Chinese Shape Based Layouts (#2054)
* feat(ime/nlp): Add `HanShapeBasedLanguageProvider`

* feat: Manually set default NLP to be HanShapeBased

* feat: Temporarily disable adding spaces

This commit should give insight into how the keyboard adds spaces, this
should then be refined into not adding a space after commiting a CJK
text suggestion

* fix(ime/nlp): Remove empty str suggest in HanShape

* feat(ime/nlp): Handle locale variants in HanShape

this should facilitate multiple layouts in the zh locale

* fix(ime/nlp): Handle query params in HanShape

This also helps performance as the DBC doesn't have to compile the query
for every string the user writes

* Space behavior QoL updates for Han shape-based layout (#1)

* Separate space behavior for zh* and latin, and allow space when there is no suggestion.

Signed-off-by: moonbeamcelery <moonbeamcelery@proton.me>

* Add checking if locale is CJK

Signed-off-by: moonbeamcelery <moonbeamcelery@proton.me>

* refactor: Change predicate to a getter & rename

* chore: Remove TODO `supportsAutoSpace` message

* fix: Fix spaces after sugg. in non-space subtypes

* fix: Fix auto space predicate in `PhantomSpace`

Signed-off-by: moonbeamcelery <moonbeamcelery@proton.me>
Co-authored-by: waelwindows <waelwindows9922@gmail.com>

* Draft: editor screen exposes nlpProviders and shape-based Chinese input methods as variants

Signed-off-by: moonbeamcelery <moonbeamcelery@proton.me>

* Fix defaults for zhengma preset

Signed-off-by: moonbeamcelery <moonbeamcelery@proton.me>

* Add word tables for added input methods

Signed-off-by: moonbeamcelery <moonbeamcelery@proton.me>

* Fix: bug in zhengma preset

* Draft: support composing with special characters by delegating nlpProvider to decide composing range.

* Catch SQLite errors such as layout (locale variant) not found (e.g. using HanShapeBased with JIS)

* fixup: remove TODO

* fix: partly addresses 2101, allow searching for locale in English for phones lacking system locale IME

* Adds support for importing "language packs" (sqlite3 db for HanShapeBased for now)

* Changes language pack to zip files. Adds a basic language pack class for storing metadata of IMEs.

Signed-off-by: moonbeamcelery <moonbeamcelery@proton.me>

* Implement language pack as a type of Flex extension, and draft its import and view UI

Signed-off-by: moonbeamcelery <moonbeamcelery@proton.me>

* fix: input method name translation

Signed-off-by: moonbeamcelery <moonbeamcelery@proton.me>

* Trim down to zhengma, quickclassic, and cangjie for the barebones Chinese shape-based pack. Polish extension user documentation.

* Fix hack to allow multiple language pack extensions to co-exist.

Signed-off-by: moonbeamcelery <moonbeamcelery@proton.me>

* Replace quickclassic with boshiamy

* Fix href in LANGUAGEPACKS.md

* build(nix): Clean up nix flake

* refactor: Encapsulate lanaguage pack query in HSB

* feat(ime/nlp): Implement `getListOfWords` in HSB

* feat(ime/nlp): Implement `getFrequencyForWord`

* chore: Normalize weights for freq in `han.sqlite3`

* chore(ime/nlp): Add some logging for HSB

* Update app/src/main/assets/ime/keyboard/org.florisboard.localization/extension.json

Co-authored-by: Patrick Goldinger <patrick@patrickgold.dev>

Signed-off-by: moonbeamcelery <moonbeamcelery@proton.me>
Co-authored-by: moonbeamcelery <114041522+moonbeamcelery@users.noreply.github.com>
Co-authored-by: moonbeamcelery <moonbeamcelery@proton.me>
Co-authored-by: Patrick Goldinger <patrick@patrickgold.dev>
2023-01-15 17:22:10 +01:00
.github Update workflows dependencies 2022-11-06 00:39:24 +02:00
app Add Chinese Shape Based Layouts (#2054) 2023-01-15 17:22:10 +01:00
benchmark Add extended benchmark and improve app startup 2022-05-21 13:35:18 +02:00
fastlane/metadata Add spanish fastlane metadata (#2037) 2022-09-06 14:15:58 +02:00
gradle Add support for tooltips on Smartbar actions (#1094) 2022-08-16 18:59:31 +02:00
utils Add Chinese Shape Based Layouts (#2054) 2023-01-15 17:22:10 +01:00
.editorconfig Fix GitHub workflows not setting up cmake 2021-05-12 20:31:34 +02:00
.envrc Add Chinese Shape Based Layouts (#2054) 2023-01-15 17:22:10 +01:00
.gitattributes Add exception for bat files to gitattributes 2021-02-09 15:19:25 -05:00
.gitignore Add Chinese Shape Based Layouts (#2054) 2023-01-15 17:22:10 +01:00
.gitmodules Move icu4c to separate repository 2021-08-16 21:08:29 +02:00
build.gradle.kts Add baseline profile 2022-05-20 17:07:38 +02:00
CONTRIBUTING.md Fix linking to source files & Update ROADMAP.md 2022-04-12 20:30:27 +02:00
crowdin.yml Add support for Asturian layout (#2138) 2023-01-04 01:31:08 +01:00
flake.lock Add Chinese Shape Based Layouts (#2054) 2023-01-15 17:22:10 +01:00
flake.nix Add Chinese Shape Based Layouts (#2054) 2023-01-15 17:22:10 +01:00
gradle.properties Remove Jetifier flag 2022-05-11 23:28:41 +02:00
gradlew Properly upgrade to Gradle 7.4.2 2022-05-22 19:43:50 +02:00
gradlew.bat Clean up codebase 2021-02-10 15:38:32 -05:00
LANGUAGEPACKS.md Add Chinese Shape Based Layouts (#2054) 2023-01-15 17:22:10 +01:00
LICENSE Change repo license to Apache 2.0 2020-05-01 17:42:14 +02:00
README.md Update README.md to fix inconsistency with roadmap 2022-07-07 23:56:30 +02:00
ROADMAP.md Update roadmap's milestone 0.4 phase 1 2022-06-24 18:46:08 +02:00
settings.gradle.kts Add baseline profile 2022-05-20 17:07:38 +02:00

App icon

FlorisBoard Crowdin Matrix badge FlorisBoard CI

FlorisBoard is a free and open-source keyboard for Android 7.0+ devices. It aims at being modern, user-friendly and customizable while fully respecting your privacy. Currently in early-beta state.

Stable Latest stable release

Beta Latest beta release

Major versions only, 1 release per 1-5 months

Updates are more polished, new features are matured and tested through to ensure a stable experience.

Beta versions, up to 1-2 releases per week

Updates contain new features that may not be fully matured yet and bugs are more likely to occur. Allows you to give early feedback.

F-Droid badge

Google Play: Join the FlorisBoard Test Group, then visit the testing page. Once joined and installed, updates will be delivered like for any other app. (Store entry)

Manual: Download and install the APK from the release page.

IzzySoft repo badge

Google Play: Join the FlorisBoard Test Group, then visit the beta testing page. Once joined and installed, updates will be delivered like for any other app. (Store entry)

Manual: Download and install the APK from the release page.

Beginning with v0.4.0 FlorisBoard will follow SemVer versioning scheme. Beginning with v0.5.0 FlorisBoard will enter the public beta on Google Play.

Highlighted features

  • Integrated clipboard manager / history
  • Advanced theming support and customization
  • Integrated extension support (still evolving)
  • Emoji keyboard
  • Spell checking service
  • Glide typing (currently English only)

Word suggestions are not included in the current releases and are a major goal for the v0.4.0 milestone.

Feature roadmap: See ROADMAP.md

Contributing

Wanna contribute to FlorisBoard? That's great to hear! There are lots of different ways to help out. Bug reporting, making pull requests, translating FlorisBoard to make it more accessible, etc. For more information see the contributing guidelines. Thank you for your help!

List of permissions FlorisBoard requests

Please refer to this page to get more information on this topic.

Used libraries, components and icons

Many thanks to Nikolay Anzarov (@BloodRaven0) for designing and providing the main app icons to this project!

License

Copyright 2020-2022 Patrick Goldinger

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.