diff --git a/android/history.md b/android/history.md index 2c0686be99..bddcb509d2 100644 --- a/android/history.md +++ b/android/history.md @@ -1,20 +1,28 @@ # Keyman for Android +## 2019-01-02 11.0.2050 beta +* Initial beta release of Keyman for Android 11 +* [Pull Requests](https://github.com/keymanapp/keyman/pulls?utf8=%E2%9C%93&q=is%3Apr+merged%3A2018-07-01..2019-01-01+label%3Aandroid+-label%3Acherry-pick+-label%3Astable) -## 11.0 alpha -* Move to 11.0 -* Add round launcher icons (#1077) -* Change default keyboard from `european` to `sil_euro_latin` (#1112) -* Remove deprecated ad-hoc distribution of keyboards via `keyman://` protocol (#1109) -* Add splash screen (#1151) -* Update app to use Material Design theme (#681) -* Fix globe button when pausing WebBrowser (#1213) -* Change system keyboard to "numeric" layer for digit/phone number text fields (#1218) -* Add feature to vibrate device when Keyman Web calls `beep` (#1227) -* Add support for extra key found on European hardware keyboards (#1291) -* Add feature for keyboard picker to switch to next keyboard (#1283) -* Update to Cloud API 4.0 for downloading keyboards (#1320) -* Fixes issue where file extensions are upper-case, e.g. ".TTF" (#1333) +* New Features: + * System keyboard changes to "numeric" layer for digit/phone number text fields (#1218) + * Device vibrates when Keyman Web calls `beep` -- when invalid combinations are pressed (#1227) + * Added support for 102nd key found on European hardware keyboards (#1291) + * Keyboard picker can now switch to next system keyboard (#1283) + +* Changes: + * Added round launcher icons (#1077) + * Added splash screen (#1151) + * Updated app to use Material Design theme (#681, #1378, #1303) + * Updated to Cloud API 4.0 for downloading keyboards (#1320) + * Removed deprecated ad-hoc distribution of keyboards via `keyman://` protocol (#1109) + * Changed default keyboard from `european` to `sil_euro_latin` (#1112, #1400) + +* Bug fixes: + * Diacritics now display more consistently on key caps (#1407) + * Fixed globe button when pausing WebBrowser (#1213) + * Fixed issue where file extensions are upper-case, e.g. ".TTF" (#1333) + * Fixed various crashes (#1108, #1057) ## 2018-11-14 10.0.508 stable * Fix crash that can occur when text selection ends before the starting position (#1313) diff --git a/common/engine/keyboardprocessor/src/km_kbp_options_api.cpp b/common/engine/keyboardprocessor/src/km_kbp_options_api.cpp index eeee167d62..e50b0a331b 100644 --- a/common/engine/keyboardprocessor/src/km_kbp_options_api.cpp +++ b/common/engine/keyboardprocessor/src/km_kbp_options_api.cpp @@ -42,9 +42,9 @@ km_kbp_state_option_lookup(km_kbp_state const *state, if (scope == KM_KBP_OPT_UNKNOWN || scope > KM_KBP_OPT_MAX_SCOPES) return KM_KBP_STATUS_INVALID_ARGUMENT; - auto & opts = state->options(); + auto & processor = state->processor(); - *value_out = opts.lookup(km_kbp_option_scope(scope), key); + *value_out = processor.lookup_option(km_kbp_option_scope(scope), key); if (!*value_out) return KM_KBP_STATUS_KEY_ERROR; return KM_KBP_STATUS_OK; @@ -57,7 +57,7 @@ km_kbp_state_options_update(km_kbp_state *state, km_kbp_option_item const *opt) assert(state); assert(opt); if (!state|| !opt) return KM_KBP_STATUS_INVALID_ARGUMENT; - auto & opts = state->options(); + auto & processor = state->processor(); try { @@ -66,7 +66,10 @@ km_kbp_state_options_update(km_kbp_state *state, km_kbp_option_item const *opt) if (opt->scope == KM_KBP_OPT_UNKNOWN || opt->scope > KM_KBP_OPT_MAX_SCOPES) return KM_KBP_STATUS_INVALID_ARGUMENT; - if (!opts.assign(state, km_kbp_option_scope(opt->scope), opt->key, opt->value)) + if (processor.update_option( + km_kbp_option_scope(opt->scope), + opt->key, + opt->value).empty()) return KM_KBP_STATUS_KEY_ERROR; } } @@ -92,7 +95,8 @@ km_kbp_state_options_to_json(km_kbp_state const *state, char *buf, size_t *space try { - jo << state->options(); +// TODO: Fix +// jo << state->options(); } catch (std::bad_alloc) { diff --git a/common/engine/keyboardprocessor/src/km_kbp_state_api.cpp b/common/engine/keyboardprocessor/src/km_kbp_state_api.cpp index dae278974f..7dc9c1fe37 100644 --- a/common/engine/keyboardprocessor/src/km_kbp_state_api.cpp +++ b/common/engine/keyboardprocessor/src/km_kbp_state_api.cpp @@ -176,7 +176,7 @@ km_kbp_status km_kbp_state_to_json(km_kbp_state const *state, jo << json::object << "$schema" << "keyman/keyboardprocessor/doc/introspection.schema" << "keyboard" << state->processor().keyboard() - << "options" << state->options() +// << "options" << state->options() TODO: Fix << "context" << state->context() << "actions" << state->actions() << json::close; diff --git a/common/engine/keyboardprocessor/src/kmx/kmx_actions.cpp b/common/engine/keyboardprocessor/src/kmx/kmx_actions.cpp index 5182154978..03c70eb134 100644 --- a/common/engine/keyboardprocessor/src/kmx/kmx_actions.cpp +++ b/common/engine/keyboardprocessor/src/kmx/kmx_actions.cpp @@ -4,7 +4,8 @@ */ #include -using namespace km::kbp::kmx; +using namespace km::kbp; +using namespace kmx; void KMX_Actions::ResetQueue() { @@ -31,7 +32,7 @@ KMX_BOOL KMX_Actions::QueueAction(int ItemType, KMX_DWORD dwData) QueueSize++; int result = TRUE; - + switch(ItemType) { case QIT_VKEYDOWN: diff --git a/common/engine/keyboardprocessor/src/kmx/kmx_environment.cpp b/common/engine/keyboardprocessor/src/kmx/kmx_environment.cpp index c17a8762e8..4fac39182f 100644 --- a/common/engine/keyboardprocessor/src/kmx/kmx_environment.cpp +++ b/common/engine/keyboardprocessor/src/kmx/kmx_environment.cpp @@ -21,23 +21,41 @@ namespace { } KMX_Environment::KMX_Environment() { + Load(KM_KBP_KMX_ENV_PLATFORM, DEFAULT_PLATFORM); + Load(KM_KBP_KMX_ENV_BASELAYOUT, DEFAULT_BASELAYOUT); + Load(KM_KBP_KMX_ENV_BASELAYOUTALT, DEFAULT_BASELAYOUTALT); + Load(KM_KBP_KMX_ENV_SIMULATEALTGR, DEFAULT_SIMULATEALTGR); + Load(KM_KBP_KMX_ENV_CAPSLOCK, DEFAULT_CAPSLOCK); + Load(KM_KBP_KMX_ENV_BASELAYOUTGIVESCTRLRALTFORRALT, DEFAULT_BASELAYOUTGIVESCTRLRALTFORRALT); } -void KMX_Environment::InitOption(std::vector