0
0
mirror of https://github.com/florisboard/florisboard.git synced 2024-09-20 03:52:18 +02:00
Commit Graph

493 Commits

Author SHA1 Message Date
Patrick Goldinger
8c9e5dae80 Add LayoutType unit test / Improve Subtype unit test 2020-07-24 00:38:15 +02:00
Patrick Goldinger
c911b5e572 Add Subtype unit test 2020-07-22 00:26:38 +02:00
Patrick Goldinger
868f59f54d
Improve wording of CONTRIBUTING.md 2020-07-20 01:39:01 +02:00
Patrick Goldinger
3b384fcfa1 Improve Subtype selection UI / Add UI strings for keyboard layouts 2020-07-19 22:49:19 +02:00
Patrick Goldinger
7a68594b36
Create CONTRIBUTING.md 2020-07-19 01:10:28 +02:00
Patrick Goldinger
897a7b18a1 Update issue templates
- Add issue template for bug reports.
- Add issue template for feature requests.
2020-07-19 00:44:29 +02:00
Patrick Goldinger
79def924a7 Update README.md + build.gradle
- Remove contents of privacy string as it does not represent what the app
  currently supports. Will be added back when the feature is implemented.
2020-07-17 23:57:43 +02:00
Patrick Goldinger
e96858ca1b Add key popups for ENTER, LANGUAGE_SWITCH and SWITCH_TO_*_CONTEXT
- 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.
2020-07-17 23:21:39 +02:00
Patrick Goldinger
46bb6c26f1 Improve general IME and layout loading performance
- 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.
2020-07-17 19:38:27 +02:00
Patrick Goldinger
6b5976d50a Improve LayoutManager and KeyboardView
- 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
2020-07-16 23:25:31 +02:00
Patrick Goldinger
80d3a51f75 Change extended popups to depend on language rather than on layout
- 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!
2020-07-13 02:55:14 +02:00
Patrick Goldinger
1dd82c2e2d Add spanish keyboard layout 2020-07-12 23:24:17 +02:00
Patrick Goldinger
4014b1f0ab Add swiss_german, swiss_french and swiss_italian keyboard layouts 2020-07-12 22:48:05 +02:00
Patrick Goldinger
6c4707203b Improve SubtypeManager and subtype dialog
- 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'.
2020-07-06 18:58:23 +02:00
Patrick Goldinger
64025d516c Refactor hide_show_app_icon.kt into PackageManagerUtils.kt
- Cleaner syntax when using it with a Utils class.
- Rename dev.patrickgold.florisboard.FlorisBoardImeLauncherAlias to
  dev.patrickgold.florisboard.SettingsLauncherAlias
2020-07-06 17:16:57 +02:00
Patrick Goldinger
a490bfbb86 Move subtype implementation from PrefHelper to SubtypeManager
- 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.
2020-07-06 16:57:07 +02:00
Patrick Goldinger
2889682bac Implement double-space period feature 2020-07-03 18:12:00 +02:00
Patrick Goldinger
5fbc55367b Add emoticon layout to media context 2020-06-28 19:34:12 +02:00
Patrick Goldinger
8e7de2ab96 Reorganize assets/ime/ folder into text and media sub directories
- No changes in code except modifying the path to the files.
- No changes in the layout files.
2020-06-28 17:29:40 +02:00
Patrick Goldinger
ba27f5b96b Add template for suggestion & correction prefs 2020-06-26 16:46:10 +02:00
Patrick Goldinger
63dfab838a Add single step only setup page support
- Is needed to let user reconfigure the IME enabling in the system
- Will come handy in the future for other reconfigure-related tasks
2020-06-26 14:55:56 +02:00
Patrick Goldinger
09cb1d6aa1 Add Setup Wizard
- Guides through the most important steps.
- The current implementation is yet to change in the near future.
2020-06-23 18:26:01 +02:00
Patrick Goldinger
6b7b50c43a Update all layouts within Settings and About to use viewBinding
- 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
2020-06-22 17:18:58 +02:00
Patrick Goldinger
0172026577 Add cardView style for error, warning and success / Enable viewBinding
- 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.
2020-06-22 15:48:16 +02:00
Patrick Goldinger
4e69793298 Update README.md + build.gradle 2020-06-21 18:02:42 +02:00
Patrick Goldinger
1e3e523d65 Add QWERTZ and AZERTY keyboard layouts 2020-06-21 15:42:03 +02:00
Patrick Goldinger
05ccaeea66 Add internal subtype management with language/layout selection
- 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
2020-06-20 18:46:16 +02:00
Patrick Goldinger
adaa3f0a9c Improve layout performance / Prepare for Emoticon&Kaomoji integration
- GIFs and stickers will not be implemented
- Home view in media context is therefore not needed and has been removed
2020-06-18 16:54:07 +02:00
Patrick Goldinger
709f47eca0 Improve UI and UX in media context
- 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
2020-06-18 13:24:12 +02:00
Patrick Goldinger
7d879cfa7a Fix keyboard jumping when height of the UI changes
- 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
2020-06-18 03:24:47 +02:00
Patrick Goldinger
42159a89e0 Fix issues in Settings 2020-06-17 17:56:50 +02:00
Patrick Goldinger
8846043954 Implement preference caching for PrefHelper 2020-06-15 00:49:22 +02:00
Patrick Goldinger
1e47f79674 Add theme applying to keyboard after being set in preferences 2020-06-13 13:48:04 +02:00
Patrick Goldinger
27c4c158d6 Fix input view layout not rendering correctly after toggling one-handed mode
- Add refreshLayoutFor(view) function in view_utils.kt (will also be useful for
  layout refreshes in other parts of the keyboard)
2020-06-10 21:07:06 +02:00
Patrick Goldinger
f6a50a1f3a Fix keyboard not loading when it is initialized a second time
- 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
2020-06-10 19:21:59 +02:00
Patrick Goldinger
2792b193ba Improve initial keyboard loading time 2020-06-07 23:55:59 +02:00
Patrick Goldinger
995d403cdf Quick action container now auto collapses when switching to media context
- MediaInputManager is now a Singleton class too
- TextInputManager now utilises both onCreate() and onCreateInputView()
- Other small fixes in documentation strings
2020-06-07 22:06:00 +02:00
Patrick Goldinger
68185f8e95 Optimize SmartbarManager and smartbar layout
- 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
2020-06-07 21:10:02 +02:00
Patrick Goldinger
3cf4e336ac Optimize SettingsMainActivity.kt 2020-06-07 18:07:51 +02:00
Patrick Goldinger
20616bf260 Add switch to media context key / Add fun launchSettings() to core
- Currently this key is always visible, but in the future
  it will only be visible if there is only 1 language
  set in prefs.
2020-06-06 19:23:26 +02:00
Patrick Goldinger
e6f3fc4256 Fix navigation bar coloring / Fix crashes + bugs 2020-06-03 19:40:30 +02:00
Patrick Goldinger
03b0ec7e3f Update README.md + build.gradle / Fix bug 2020-06-02 01:10:38 +02:00
Patrick Goldinger
2a5c236e01 Improve layout and sync smartbar height with key height 2020-06-02 00:51:47 +02:00
Patrick Goldinger
b05bd166e3 Add dark theme for keyboard / Fix bugs which caused crashes
- 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
2020-06-01 23:05:09 +02:00
Patrick Goldinger
d19405fcc4 Improve PrefHelper / Fix crashes + bugs
- 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
2020-06-01 04:30:23 +02:00
Patrick Goldinger
1c819ab995 Add KeyboardView preview in Looknfeel section 2020-06-01 02:10:58 +02:00
Patrick Goldinger
7e7098232e Add Settings dark theme
Additionally add KeyboardView preview in Settings (Looknfeel section).
2020-06-01 02:10:10 +02:00
Patrick Goldinger
a61b8c9e99 Add KeyboardView preview mode support
Useful for showing a preview of the KeyboardView in
Settings.
2020-06-01 02:07:52 +02:00
Patrick Goldinger
6d47ec7607 Overhaul Settings screen
- 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
2020-05-31 02:24:45 +02:00
Patrick Goldinger
d86dad6982 Update gradle build tools to 4.0.0 2020-05-29 19:17:25 +02:00