Skip to content

v0.3.16

Latest
Compare
Choose a tag to compare
@patrickgold patrickgold released this 12 Jun 20:19
· 241 commits to master since this release

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

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: v0.3.15...v0.3.16