- When pressing this keys longer, actions normally accessible only via the
Smartbar are now also accessible this way. Currently the following actions
are available (if they are shown depends on the key):
- TOGGLE_ONE_HANDED_MODE, SWITCH_TO_*_CONTEXT, SETTINGS
- This actions are only available within the character layout.
- One-handed toggle functionality is now defined in FlorisBoard and can
be used by calling FlorisBoard.toggleOneHandedMode().
- Implement drawable support for KeyPopupExtendedSingleView.
- KeyboardView now dismisses any shown popups when being detached from a
window.
- Layouts are now loaded asynchronously, even before the UI starts to
load.
- SubtypeManager's imeConfig is now loaded in non-blocking mode.
- First KeyboardView to load now matches the one reported earlier by
onStartInputView() and is then instantly displayed.
- Rename prefetchComputedLayout() to preloadComputedLayout().
- Other code-formatting changes.
- LayoutManager now merges the layouts based on a Subtype.
- LayoutManager caches layouts once loaded for better
performance.
- Subtype default value is now defined within Subtype rather
than in SubtypeManager.
- Update gradle build tools from 4.0.0 to 4.0.1
- This change is a preparation for multi-lingual typing
- Implementation is subject to change (maybe definitions for
countries and specific language tags)
- Layout files within ime/text/characters should only rarely
use the popup attribute directly. A better solution is to
use the definitions within ime/text/characters/extended_popups
to define the popups for each language!
- When adding a new subtype, after selecting a language the preferred
layout will automatically be pre-set.
- The 'locale' property in json has been replaced with 'languageTag'
and uses the format 'xx-XX' instead of 'xx_XX'.
- Cleaner syntax when using it with a Utils class.
- Rename dev.patrickgold.florisboard.FlorisBoardImeLauncherAlias to
dev.patrickgold.florisboard.SettingsLauncherAlias
- PrefHelper should only be responsible for raw handling, not high-level
logic, this move better helps in distinguishing those two.
- Add config.json: New place where the default subtypes and valid layout
names are defined. Replaces layout_language_config.xml.
- Better display of language when adding/editing a subtype in Settings.
- Fallback subtype is now defined in one place to reduce inconsistency.
- Bug fix: Dismiss possible open AlertDialog in Settings in onDestroy().
- Other bug fixes.
- Only exception to this is the toolbar (only temporary until solution with
viewBinding is found).
- Also rename some of the IDs to make them shorter.
- Update 'androidx.core:core-ktx' from 1.2.0 to 1.3.0
- From now on, viewBinding will be used instead of findViewById(), if
possible. This reduces unnecessary lines of code and reduces errors
due to NullPointerExceptions.
- Add error message in HomeFragment to warn user that IME is not enabled.
- The subtype management is done only internally because the default
Android subtypes don't really allow for dynamically added Subtypes.
Additionally the official Android docs recommend against using the
default Subtypes when providing a way to customize the locale/layout
association.
- Subtypes are always a triple: id/locale/layout, where the user can
configure both the locale and the layout in the Settings.
- Fallback subtype if none is specified is English/QWERTY.
- Language switch now shows accordingly to the number of subtypes defined.
- Current language name is shown on SpaceBar.
- PrefHelper.Keyboard now provides methods to easily manipulate the
subtype list and to get the current active subtype.
- Other fixes in KeyView and Looknfeel which get fixed with this commit:
- Key preview may flicker if the pointer is between the screen edge and
the first KeyView of the row, due to a indefinite circle between loose
in interest and giving the interest to the view.
- Cleanup in LooknfeelFragment.kt
- In dark theme, the tab ripple color and scrollbar color where in the
light variant, which made the barely visible on the dark background
- The ABC and DEL key in media context now follows the key press sound
/ vibration setting
- On small screens icons in the tab layout were cut off left and right,
this was happening due to padding issues
- Add kdoc comments to MediaInputManager.kt
- Similar implementation to Android's LatinIME keyboard
- Change inputView property from lateinit var to nullable because it may
happen that a function wants to check the inputView reference before it
is initialized
- Also solves the problem that key popups are clipped on Android Pie (9)
because the IME window now spans across the whole screen and therefore
the clipping won't happen
- Introduced a new InputView, which notifies the core FlorisBoard when it
has been attached to a window
- Add debug-only logs to some functions to better understand the calling order
of the methods
- MediaInputManager is now a Singleton class too
- TextInputManager now utilises both onCreate() and onCreateInputView()
- Other small fixes in documentation strings
- SmartbarManager is now a Singleton class to avoid multiple instances
- SmartbarView is now separated from SmartbarManager and tells SmartbarManager
that it is the new active SmartbarView (preparation step for dynamic theme
applying)
- SmartbarView now inflates together with the main florisboard layout rather
than being created later on
- QuickActionButtons are now responsive to the SmartbarView height
- Other bug fixes
- Currently only 2 themes are supported light and dark theme
- Ca be selected and previewed in settings
- Improve and extend PrefHelper functionality
- Fix bugs where currentInputConnection may be null but had
not been null-checked before using it
- Improve PrefHelper to be better organized
- Fix crashes that occur when changing orientation
- Fix bug that recyclerView steals focus and tries to
create its own scrollbar
- Settings screen now has a BottomNavigationView as
main navigation
- Home: Place where the user is welcomed and
other stuff like that
- Keyboard: Everything language, layout or text
correction related stuff
- Look & feel: Everything related to key press
sounds and the theme of the keyboard
- Gestures: All gesture (and glide typing)prefs
- Advanced: All other things which have no real
category