Florisboard Versions Save

An open-source keyboard for Android which respects your privacy. Currently in early-beta.

v0.4.0-beta02

3 weeks ago

What's Changed

  • Add emoji suggestions using the :emojiname syntax (#2385, thanks @snaik20)
  • Add emoji suggestion data for most important languages (#2437)
    • The following languages are available: English, German, Spanish, French, Italian, Portuguese
    • Do NOT ask for other languages to be added, support for other languages in emoji suggestions will be added in v0.5 via the language pack feature
  • Fix huge clipboard text items causing clipboard history crash (#2420)
  • Implement smooth scrollbar in emoji palette (#2446, thanks @KevinVan9 and @lm41)
  • Update contributing guidelines and roadmap

Development changes

  • dev: Add new Material You surface colors (#2448)
    • The following color names are now available:
      • surfaceBright
      • surfaceDim
      • surfaceContainer
      • surfaceContainerHigh
      • surfaceContainerHighest
      • surfaceContainerLow
      • surfaceContainerLowest
    • These colors have replaced the color name surface, which has been removed
    • See section "Surfaces" in this blog entry for more info
    • May break existing dynamic color themes relying on surface
  • dev: Fix build issues caused by the nlp submodule (#2218)
  • dev: Fix Rust beta build (#2450, thanks @lm41)
  • dev: Switch to ImageVector icons (#2432, thanks @lm41)
  • dev: Remove all git submodules, avoiding git ref issues
  • dev: Switch internal backend from C++ to Rust
  • dev: Update dependencies

New Contributors

Full Changelog: https://github.com/florisboard/florisboard/compare/v0.4.0-beta01...v0.4.0-beta02

v0.4.0-beta01

2 months ago

What's Changed

  • Add monochrome icon variants (#2159 thanks @lm41)
  • Add udmurt layouts (#2397 thanks @vorgoron)
  • Add smartbar vibrations (#2134 thanks @lm41)
  • Add option to share image to florisboard (#2112 thanks @lm41)
  • Add option to change the space-bar character (#2350 thanks @lm41)
  • Add option to cycle through the capitalization mode (#419 thanks @lm41)
  • Fix pinned clipboard items getting unpinned (#2318 thanks @lm41)
  • Fix primary clipboard entry accessible while phone is locked (#2247 thanks @lm41)
  • Fix recent emoji show up in lock-screen (#2309 thanks @lm41)
  • Fix incorrect suggestions from empty or invalid clipboard content (#2386 thanks @snaik20)
  • Fix crash in third-party licenses screen
  • Fix crash report screen not working on Android 13+ devices (#2378 thanks @lm41)

New Contributors

Full Changelog: https://github.com/florisboard/florisboard/compare/v0.4.0-alpha06...v0.4.0-beta01

v0.4.0-alpha06

4 months ago

Hotfix release for v0.4.0-alpha05:

  • Fix IME enabled/selected checker failing on API 34+ (#2344)

For other changes included please refer to the release notes of v0.4.0-alpha05!


Commits included in this release: https://github.com/florisboard/florisboard/compare/v0.4.0-alpha05...v0.4.0-alpha06

v0.4.0-alpha05

4 months ago

IMPORTANT: There is currently a major breaking bug in the Settings on Android 14 devices (see #2344), a hotfix is being prepped for this!

  • Add support for Material You in themes (#2213)
  • Add several new keyboard layouts
  • Update translations
  • Several other changes, see the commit list for details
  • Remove glide typing -> will be re-implemented with word suggestions/new keyboard layout engine

This release is part of the current objective "getting the project back on track". This release is the last alpha release for 0.4, we will now move to beta releases as there isn't too much to be added for 0.4 anymore and development focus will shift to laying the foundations for the core features of 0.5. See the roadmap for details.


Commits included in this release: https://github.com/florisboard/florisboard/compare/v0.4.0-alpha04...v0.4.0-alpha05

v0.4.0-alpha04

1 year ago

Smartbar fixes and changes (#2030)

  • Change extended actions toggle so it closes actions overflow (#2035)
  • Implement sticky action is overflow button if set to none (#2033)
  • Fix moving all Smartbar actions to hidden causing crash (#2026)
  • Fix clipboard suggestions showing when they shouldn't (#2029)

Other fixes

  • Rework KeyboardState and its observing logic (#2025)
    • Should prevent the NullPointerException crashes introduced with v0.4.0-alpha03. If not, please report this in #2025.
  • Fix bottom sheet host UI causing issues in landscape input UI (#1760)
  • Remove "auto0" placeholder logic as it is annoying (#1976)

Known issues

  • When showing the keyboard UI after longer idling, it may refuse to accept touch input at first. If this happens, hide the keyboard and tap back into the text field you want to type, then it works again. This is a bug which is very difficult to address and no solution has been found yet.

Commits included in this release: https://github.com/florisboard/florisboard/compare/v0.4.0-alpha03...v0.4.0-alpha04

v0.4.0-alpha03

1 year ago

Major Smartbar rework (#2012)

  • Smartbar layout changes
    • The Smartbar now has 4 different layouts to choose from: Suggestions only, Actions only, Suggestions+Actions shared (comparable to Gboard) and Suggestions+Actions extended (comparable to SwiftKey)
    • Each Smartbar layout has different layout-specific options
  • Changes to quick actions
    • Implement Smartbar actions overflow panel
    • Implement Smartbar actions editor panel, which allows to customize the order of the actions (#1612)
    • Remove Clipboard/Cursor row and add each of its buttons as a separate quick action
  • Other Smartbar improvements
    • Add tooltips on long-press for Smartbar actions (#1094)
    • Fix auto action expansion interfering with arrow keys (#1674)
    • Fix quick action icon size too small for landscape (#1781)
  • Changes to Smartbar theming
    • Default theme users: Nothing needs to be done, all changes apply automatically.
    • Custom theme users: Changes do NOT apply automatically! As such the Smartbar theming may look messed up, some surfaces may be transparent, etc. Please use the new default themes for reference on what can be themed, so it looks good for your theme again! Sorry for the inconvenience.

Incognito-mode (#2012)

  • Add incognito mode
    • Enables/disables itself either if the target app requests it or if one specific state is forced via Settings > Advanced > Incognito mode (#617)
    • If enabled this mode prevents new words to be learnt and stored in the personal dictionary (technically has no effect in this alpha release as there is no suggestions algorithm and no learning logic implemented, but relevant for upcoming releases)
  • Add Smartbar quick action for incognito mode (#153)
    • Effectively shows the state of incognio mode and allows you to toggle the mode, only available though if not already forced via Settings > Advanced > Incognito mode
  • Add incognito mode indicator
    • Shows inbetween the keyboard background and the key surfaces, by default in a subtle grey shade
    • Can be themed by changing the foreground of the incognito-mode-indicator rule to some other color in the stylesheet editor

Other changes

  • Privacy policy has been moved and rewritten. For you as a user nothing has changed, FlorisBoard is still as private as before. Please see the official announcement why this had to be done. You can read the new privacy policy here, alternatively you can find the link in the Settings' about screen or in the Setup screen.
  • Adjust and fix keyboard height calculation (#1561)
  • Improve sounds and vibration screen (#2003)

Known issues

  • When showing the keyboard UI after longer idling, it may refuse to accept touch input at first. If this happens, hide the keyboard and tap back into the text field you want to type, then it works again. This is a bug which is very difficult to address and no solution has been found yet.

Commits included in this release: https://github.com/florisboard/florisboard/compare/v0.4.0-alpha02...v0.4.0-alpha03

v0.4.0-alpha02

1 year ago

Auto-spacing bug fixes

  • Fix auto-spacing incorrectly triggered (#1947)
  • Fix phantom spacing for 1 letter words (#1940)
  • Please give feedback about this new feature if you want in #1935 (feedback, bugs, ideas)

Clipboard changes

  • Add clipboard phone number detection (#1889, #1971)
  • Fix domains get extracted from emails in clipboard (#1971)
  • Fix extracted URLs not checking for duplicates (#1971)
  • Improve host regex accuracy for clipboard URL extraction (#1971)
  • Partly disable smart clipboard on Android 7.0 and 7.1 due to crashes and incompatible API calls (#1970)

Keyboard and layout changes

  • Add numeric row manual shifting symbols (#1988)
  • Adjust AutoTextKey behavior to respect subtype locale (#1840)
  • Add circumflex popups to Turkish layout (#1962, thanks @tsiflimagas)
  • Add implementation for notifySuggestionReverted event
  • Fix accent ordering of z in Polish popup mapping (#1960)
  • Fix composer not allowing multiple code points (#1984)
  • Fix uppercase Greek vowels popups (#1981, thanks @tsiflimagas)

Settings UI changes

  • Upgrade Jetpack Compose to 1.2, which should resolve numerous issues with the Settings UI
  • Disable unnecessary app icon sync in Settings UI for Android 10+
  • Rework and improve splash screen of Settings UI

Other changes

  • Decouple Jetpack Compose Compiler version from other Compose packages
  • Upgrade Kotlin to 1.7.10 and Compose Compiler to 1.3.0-rc01
  • Remove deprecated Accompanist Insets library
  • Enum values are now properly stored without overriding the original capitalization in the pref datastore

Known issues

  • When showing the keyboard UI after longer idling, it may refuse to accept touch input at first. If this happens, hide the keyboard and tap back into the text field you want to type, then it works again. This is a bug which is very difficult to address and no solution has been found yet.

Commits included in this release: https://github.com/florisboard/florisboard/compare/v0.4.0-alpha01...v0.4.0-alpha02

v0.4.0-alpha01

1 year ago

Auto-spacing and auto-capitalization changes

  • Add auto-spacing after punctuation (#375)
    • Disabled by default as this is experimental, go to Settings > Typing and enable "Auto-space after punctuation" to try it out
    • Please give feedback about this new feature if you want in #1935 (feedback, bugs, ideas)
    • Auto-spacing intentionally does NOT work in URL, EMAIL and PASSWORD text fields to prevent several input issues
    • Previous auto-space is automatically overridden if multiple symbols are inserted in a row to prevent issues such as "Word. . . "
    • May break for exotic characters (aka everything not representable with one char in UTF-16)
    • There's no hardcoded language restriction, however it is tailored towards symbols used mostly in Latin-based languages atm
  • Disable auto-capitalization for Thai language (#1908)
  • Fix auto-capitalization issues with invalid initial state (#1915)

Preparation-work for word suggestions (phase1)

  • Tie composing region indicator to suggestion enabled state (#1911)
    • The current word will now only be underlined in the text color if word suggestions is enabled
  • Improve state reset mechanism for restarts (#1916)
  • Fix candidate completion logic not behaving as expected
  • Fix clicking a clipboard suggestion not causing the suggestion to go away
  • Complete internal rework of NLP manager and its API
    • Add SuggestionProvider, SpellingProvider, SuggestionCandidate
    • Add secondary text UI implementation for candidates
    • Extend Subtype internally to allow for provider ID definition
    • Properly document all NLP APIs
  • Rework clipboard suggestions logic and allow for multiple items (#739)

Spell-checker changes

  • Remove Nuspell spell check implementation for now (#1921)
    • This means that temporarily no spell checking is working, see linked issues for details
    • Spell-checking will be integrated into the upcoming suggestions- and auto-correction logic, thus spell checking will evolve together with the progress of word suggestions
    • Maybe Nuspell for spell-checking will be re-implemented again as an optional alternative for the user to select from, however this is not decided yet

Other changes

  • Add Costa Rican colón currency set (#1914)
  • Correct layout name for RU&UA (ЙЦУКЕН) (#1681, thanks @VladWinner)
  • Refactor and improve C++ codebase (#1895, thanks @sevz17)

Known issues

  • When showing the keyboard UI after longer idling, it may refuse to accept touch input at first. If this happens, hide the keyboard and tap back into the text field you want to type, then it works again. This is a bug which is very difficult to address and no solution has been found yet.

Commits included in this release: https://github.com/florisboard/florisboard/compare/v0.3.16...v0.4.0-alpha01

v0.3.16

1 year ago

New app icons (#1775)

FlorisBoard now has new app icons for each track, designed and provided for use in this project by BloodRaven0, thanks a lot! <3

Stable Beta Debug
image image image

Input logic and editor caching behavioral changes (#1822)

  • Major rework of the internal editor instance and caching logic
    • Editor content state is now cached in a "window" around the cursor, which allows to make predictive cache changes and avoid unnecessary input connection calls (#1822)
    • Improve input performance by utilizing the new cached window system
    • Improve the communication between FlorisBoard and the target input connection
  • Adjust timing for double tap / key repeat events (#1095)

Minimum required Android version change

The minimum required Android version has been changed from Android 6 (API level 23) to Android 7 (API level 24). This change was hard to decide but it allows to fully use the ICU platform package Android provides since API 24. See #1822 for the detailed reasoning for this change. I am aware that this step may affect some users (especially old tablets), but FlorisBoard is a fast moving modern Android keyboard with limited developing resources, so I decided in favor of increasing the minimum required Android version.

Enhancements and fixes for space, enter and delete keys

  • Add delete key long press option in gesture prefs (#637)
    • The long press action for the delete key can now be changed between "Delete last character" and "Delete last word". If the latter is used and you hold down the delete key, entire words instead of characters will be deleted until you release the delete key again.
  • Add "Always delete word" toggle for glide typing (#1541, #1036)
    • By default tapping delete after a glided word will now delete the whole glided word, except if you disable the newly added toggle.
  • Fix delete key precise selection gesture bugs
  • Fix double-space period placing period incorrectly (#524)
  • Pressing delete will not reset the keyboard anymore inside the Settings preview field (#1617)
  • Fix enter key behavior for multiline and shift (#1037)
    • FlorisBoard now supports if messaging apps' "Enter key sends message" option, as long as the target messaging app field is configured correctly. Tested and verified in WhatsApp and Signal.
  • Fix space bar tapping rapidly causing characters to be deleted (#1792)

Shift-key/Capitalization-specific changes

  • Rework shift state management
    • Shifting now differentiates between "Unshifted", "Shifted (Manual)", "Shifted (Automatic)" and "Caps lock"
    • Fix Dvorak layout symbols which misinterpreted shift states previously (#528)
  • Add ability to hold shift without caps lock (#1764)
    • This allows you to use the shift key as known on a PC keyboard. If you long press shift and start typing within the first second (exact time depends on your long press timeout in prefs), caps lock will not get activated. However if you only long press shift without character input, caps lock will be activated, like previously also possible in 0.3.15 and earlier.
  • Fix shift key state concurrency issue in touch logic (#227)
  • Fix shift long press resetting after releasing (#1834)
  • Fix auto-capitalization and re-evaluate on new subtype (#1623)

Keyboard logic and UI changes / fixes

  • Added a button for switching to an IME that supports voice (#1587, thanks @ElishaAz)
    • This voice button currently requires that a proper voice IME is installed and does not work with voice overlays!
  • Fix shift+space swipe not selecting text (#1843)
  • Fix auto-capitalization not behaving correctly (#1861)
  • Fix extensions not properly reloading when context switches
  • Fix Snygg Shape crashing for corner radii >= 34dp (#1838)

Keyboard layout changes

  • Add additional Persian layout (#1823, thanks @M
  • Add Dvorak (ÑÇ) layout (#1853, thanks @tsiflimagas)ahantor)
  • Add Indonesian layout (#1879, thanks @Linerly)
  • Update Hungarian popup mapping (#1859, thanks @ptrg)
  • Vietnamese Telex: Add mising case (#1862, thanks @thanhhocse96)
  • Vastly improve Telex for Vietnamese (#1797, thanks @thanhhocse96)
    • Please see #1751 and #1797 for details regarding this change
  • Update Kurdish layout and overall improvements (#1798, thanks @GoRaN909)

Performance and APK size improvements (#1870, #1894)

  • Add baseline profile
    • This baseline profile should be a slight improvement in the initial app startup time
  • Add Proguard optimization to beta and stable builds
    • Production builds now properly remove unused code and resources, thus decreasing the APK size by about 3MB (~18MB to ~15MB)
    • Depending on your device this can also lead to a performance improvement in both app startup time and runtime usage
  • Minor improvements to the runtime performance, especially regarding events triggered by user input:
    • Improve input feedback controller performance (especially for vibrations)
    • Improve language display name performance by caching it
    • Prevent unnecessary stack trace collection in KeyboardState
    • Improve auto capitalization performance

Glide typing improvements and bug fixes (#1844)

  • Add punctuation rules logic for auto-spacing (#596, #1828)
    • This change vastly improves the auto-space functionality for Latin-based languages by providing punctuation rules for evaluation of symbols preceding/following spaces.
    • Add ability to define additional punctuation rules in keyboard
  • Fix glide typing not working for long words (#1851)
    • This change addresses the long known issue of glide having difficulties with long words. For phone screens this issue is now fixed, however for tablets or very large phone screens this issue may still occur. A fix for these kind of large screen requires a major overhaul of the glide logic in the future.
  • Auto-disable glide typing for password fields
  • Fix active key not appearing pressed for moving gestures (#1846)
  • Fix glide typing broken in some input fields (#1009, #1247)
  • Fix phantom space not resetting in selection update, causing the glide word deletion mode to not reset (#916)
  • Fix glide threshold using incorrect units, causing short words to be impossible to input using glide (#1023)

Emoji improvements / bug fixes (#1855)

  • Rework internal EmojiCompat implementation and decrease emoji load time UI jank (#1770)
  • Re-add vibration to emoji screen (#1675)
  • Fix symbols emoji category icon not representative (#1421)
  • Fix incorrect aspect ratio for emoji keys (#1856)

Settings changes

  • Possibly fix prefs sometimes reset on startup (#1726, #1868)
    • Note that this bug occurs only on some devices and you probably haven't experienced this bug beforehand, so this fix does not apply to you
    • Should you be the unlucky user to experience this bug after this release again, please provide more details in #1726, so I can try to find the reason why this bug rarely occurs. Thanks!
  • Add debug log view/export screen
  • Add exact stacktrace error log for backup failure (#1847)
  • Add translations for emoji key and landscape input Syngg elements
  • Change OSS notices to mikepenz/AboutLibraries plugin
  • Improve CrashDialogActivity crash log generation and add details

Other changes

  • Add clipboard URL and Email detection (#1889)
  • Fix Smartbar placeholder suggestion UI not updating correctly
  • Improve devtools input state overlay
  • Refactor AndroidX.Room to use KSP + export schema correctly
  • Rework internal project structure, code base and some package names (#1780)

Known issues

  • When showing the keyboard UI after longer idling, it may refuse to accept touch input at first. If this happens, hide the keyboard and tap back into the text field you want to type, then it works again. This is a bug which is very difficult to address and no solution has been found yet.

Commits included in this release: https://github.com/florisboard/florisboard/compare/v0.3.15...v0.3.16

v0.3.16-rc01

1 year ago

Release candidate 1

This is the first release candidate for 0.3.16, and probably also the last before a stable 0.3.16 release, except some major issue is reported. After the 0.3.16 release the long-awaited 0.4.0 development cycle with focus on word suggestions will begin, more info on that will be provided after the 0.3.16 stable release.

Runtime performance improvements (#1894)

  • Minor improvements to the runtime performance, especially regarding events triggered by user input:
    • Improve input feedback controller performance (especially for vibrations)
    • Improve language display name performance by caching it
    • Prevent unnecessary stack trace collection in KeyboardState
    • Improve auto capitalization performance

Other changes

  • Add clipboard URL and Email detection (#1889)
  • Add Dvorak (ÑÇ) layout (#1853, thanks @tsiflimagas)
  • Fix auto-capitalization logic (was not triggered for mass selection and some other events)

Known issues

  • When showing the keyboard UI after longer idling, it may refuse to accept touch input at first. If this happens, hide the keyboard and tap back into the text field you want to type, then it works again. This is a bug which is very difficult to address and no solution has been found yet.

Commits included in this release: https://github.com/florisboard/florisboard/compare/v0.3.16-beta04...v0.3.16-rc01