Commit graph

161 commits

Author SHA1 Message Date
Darcy Wong
bf3e05e2a4 Refactor setIsChiral 2018-10-09 13:23:30 +07:00
Darcy Wong
47d2e30af3 Refactor KMEA Keyboard JS handlers
Refactor common JS interface functions from `KMInAppKeyboardJSHandler` and `KMSystemKeyboardJSHandler` into a base class `KMKeyboardJSHandler`.

They still need to implement `setIsChiral` and `insertText`.
2018-10-08 15:49:40 +07:00
Darcy Wong
d6ceee5ada Cherrypick fix from #1230 2018-10-04 09:43:15 +07:00
Darcy Wong
3e1bb4dca1 Shorten duration to 100ms 2018-10-03 08:43:28 +07:00
Darcy Wong
5905e95ba5 Fix vibrate
Apply 500ms vibrate
2018-10-02 15:19:28 +07:00
Darcy Wong
69de652956 Add hooks to vibrate when KMW sends BEEP 2018-10-01 16:13:12 +07:00
Darcy Wong
c2fe6197db Change system keyboard to "numeric" layer for numeric text fields
Fixes #289

When changing to a digit/phone number text field, set the OSK to "numeric" layer if it exists. 

This will occur after `resetContext()`.
2018-09-27 13:14:25 +07:00
Darcy Wong
47e1f0aebc Fix null pointer for KeyboardInfoActivity 2018-09-19 14:39:59 +07:00
Darcy Wong
544a58c151 Add Material Design 2018-09-19 13:46:03 +07:00
Darcy Wong
39fe506d8c Resolve review comments
* Clean up unnecessary `KMKey_` keys
* Update MainActivity to only download ad-hoc KMP packages.
2018-08-27 11:17:25 +07:00
Darcy Wong
74ca0d09d0 Merge remote-tracking branch 'origin/master' into android-remove-adhoc-json 2018-08-27 07:43:04 +07:00
Darcy Wong
ad8638e47c Validate keyboard ID when downloading keyboard from Keyman cloud
Cherry-pick of #1121
2018-08-22 22:51:54 -05:00
Darcy Wong
77c03eef84 Ensure keyboards list has an entry
Cherrypick #1112 to master

There are some crash reports coming from `KeyboardPickerActivity.java` because the keyboards list is null (file access error). When the app tries to display the installed keyboards list, this results in the crash.

`getKeyboardsList()` already checks the existence of the `keyboards_list.dat` file, so some of that code is also redundant.
2018-08-22 21:04:32 +07:00
Darcy Wong
7b0af9a68c Add keyboard file and update history.md 2018-08-20 04:26:03 -05:00
Darcy Wong
948836d9ee Change default keyboard from european2 to sil_euro_latin
Fixes #1100
2018-08-20 04:13:02 -05:00
Darcy Wong
bb72f4406c Remove ad-hoc distribution of keyboards via keyman:// protocol
Addresses Android platform for #538
2018-08-16 22:29:14 -05:00
Darcy Wong
1c9775e287 Fix crashes when input connection or package name is null
This cherry picks the commits from #1103 onto master
2018-08-15 22:05:42 -05:00
Marc Durdin
087f681146 Merge branch 'beta' into beta-p3s6-alpha 2018-06-27 14:58:58 +07:00
Marc Durdin
d871951521 Fix conflicts 2018-06-27 13:57:30 +07:00
Marc Durdin
b694885d4b Fixes #1026. updateKMText was called with unescaped string in some contexts. 2018-06-26 15:25:10 +07:00
Marc Durdin
08f282e550 Fixes #992. Cancel attempt to cancel a touchcancel event that can't be cancelled. Enough cancels there for ya? 2018-06-20 13:32:33 +07:00
darcywong00
37c47e650c Revert to cloud 3.0 2018-06-19 14:30:53 +07:00
darcywong00
44afcbed7d Fix api.keyman.com/cloud query for language list
* Update to cloud 4.0
* Include `&languageidtype=bcp47
2018-06-19 14:16:39 +07:00
Marc Durdin
6291ad83fc Fixes #968. Platform tests on Android now give correct results for hardware keyboard. Partial fix for #966 (hardware keyboard in Chrome emulator). 2018-06-08 13:30:32 +07:00
darcywong00
393ca2d336 Fix globe button for system keyboard
Fixes #913

In #848, we used [webView.pauseTimers()](https://developer.android.com/reference/android/webkit/WebView#pauseTimers()) to disable JavaScript for transitioning between in-app and system keyboards. Unfortunately, `pauseTimers()` globally affects all the WebViews, breaking the globe button in system keyboards.

(This worked going from the Keyman app to in-app browser because the browser "resumed" its keyboard)

Solution is removing calls to `pauseTimers()`.
2018-06-05 13:19:53 +07:00
Marc Durdin
27bb92aec8
Merge branch 'master' into beta-p3s3-merge-to-master 2018-05-18 13:10:32 +07:00
Darcy Wong
217ffcd3be
Merge branch 'beta' into android-exit-browser 2018-05-10 11:52:27 +07:00
darcywong00
e03baaff29 Update compile SDKVersion from 25 to 27
Fixes #750 

Currently, Keyman for Android targets SDK version 25 (Nougat). 

This PR targets  the latest Android API and updates all the Gradle dependencies to the latest. This will remove some lint Obsolete warnings.

Sample and Test projects needed to add 
```
implementation 'com.android.support:support-v4:27.1.1'
```
to ensure all dependencies use the same version.
2018-05-10 08:02:09 +07:00
darcywong00
b2d1818f5f Add additional check
Fixes startup condition where in app keyboard wasn't rendering because it was paused by the "Getting Started" dialog.
2018-05-09 14:03:42 +07:00
darcywong00
e2a33d1577 Handle pausing/resuming keyboard webView timers
Updated `KMManager` to handle `pauseTimers()` and `resumeTimers()` for in-app and system keyboards. This fixes the globe button when transitioning from the WebBrowser activity back to the Main activity.

Also fixed KMKeyboard to return empty string when `txtFont` is empty (and not return a root path)
2018-05-09 14:03:42 +07:00
darcywong00
44aec2944b Start cleaning up console log
Fixes #748

* Remove nearly all uses of `Log.d()`
* Disable `window.console.log()` calls in `keyboard.html`
2018-05-08 10:50:15 +07:00
darcywong00
c593a45e7d Update string handling for PackageProcessor
Fixes #819

* If package version undefined, use "1.0"
* Keyman Developer won't allow undefined package name, but just in case return package ID from the filename
* Check for null before String.toLowerCase()
* Added package processor test for undefined version
2018-05-07 14:47:11 +07:00
Marc Durdin
a9113c8f82
Merge branch 'master' into beta-p3s2-to-master 2018-05-04 21:06:21 +07:00
darcywong00
15dff6a392 Merge branch 'beta' into android-osk-304 2018-04-27 12:59:14 +07:00
darcywong00
b44ce5edda Fixes #786
Fixed call for finishing activity when cancelling keyboard download dialog
2018-04-27 11:39:38 +07:00
darcywong00
d1dadcc381 Revert to original background-color styling 2018-04-26 14:49:18 +07:00
darcywong00
7fcc6018f3 Fix OSK missing keys on older Android configurations
This fixes #304

Reference: https://jira.appcelerator.org/browse/TIMOB-16358

Older versions of WebView have an issue with transparent/gradient backgrounds. The symptom was the OSK slowly loading keys individually, and having the OSK be missing keys.

A workaround fix is styling the body `background-color` alpha to 1.0.

## Testing configuration
* Android API level 22
* Nexus One emulator
* French-French keyboard
2018-04-25 16:05:39 +07:00
darcywong00
cfdb2b6591 Hide system OSK when resuming Keyman app
This handles all transitions where an external app/dialog using the system OSK returns to the Keyman app such as resuming:
* from WebBrowserActivity
* from Android Oreo's "Add to dictionary" dialog
2018-04-24 13:41:23 +07:00
darcywong00
3a7f8fde70 Move Android to 11.0 alpha
* Get major.minor version from `./resources/VERSION.md`
* Remove legacy KMEA `getVersion()` call that was returning a stale `2.4.3` value
2018-03-22 16:14:14 +07:00
darcywong00
ce1781124a Change parameter names for Firebase logging
The `.` character isn't allowed in parameter names passed to Firebase analytics. This was flagging Firebase errors when trying to view the events in the Firebase console.

Replacing `cm.` with `cm_` works. (cm is just the naming convention I used for JS ConsoleMessage properties)
2018-03-16 13:07:14 +07:00
darcywong00
f482aba0f7 Log KMW console error to crashlytics 2018-03-09 08:58:09 +07:00
darcywong00
8e844149e1 Fix path of special OSK font used for longpress of special keys 2018-03-01 14:41:02 +07:00
Darcy Wong
94d2eb52db
Merge pull request #628 from keymanapp/android-increase-connection-timeout-575
Change connection timeout from 10 to 20 sec
2018-02-27 14:28:00 +07:00
darcywong00
ba1d010867 Change connection timeout from 10 to 20 sec 2018-02-26 22:32:07 +07:00
darcywong00
46d9eba5c1 Only passKFont and KOskFont to KMW if they are defined
Per PR review comment, only defined fonts are added to the JSON object going to `kbdInterface.registerStub()`
2018-02-26 14:47:42 +07:00
darcywong00
26f3e52a16 Fix undefined fonts that get passed to KMW
Clean up font parsing so undefined fonts get passed to KMW as `undefined`, and not `'undefined'`.
2018-02-26 12:04:02 +07:00
darcywong00
90246a72e6 [Android] Use BCP-47 codes for registering keyboards 2018-02-21 22:00:21 +07:00
darcywong00
3d12eb07b8 Update build.sh so CI monitors JUnit test results 2018-02-20 08:52:45 +07:00
darcywong00
067b43cfd3 Remove Answers
Removing Answers because of the setup involved with Fabric IO. Keeping this feature to Crashlytics
2018-02-14 20:48:26 +07:00
darcywong00
9cd8eed976 Tweak Crashlytics / Firebase
Using Crashlytics for crash reporting.
Trying Firebase and Crashlytics.Answers for logging events (like km_add_keyboard) for analytics

Firebase events don't persist between app launches
2018-02-14 19:37:21 +07:00