Conversation
Collaborator
|
Changes in this pull request will be available for download in Keyman version 14.0.251-beta |
Collaborator
|
Changes in this pull request will be available for download in Keyman version 15.0.19-alpha |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #4339.
Nobody likes a lack of feedback or when something instinctively feels broken. It's better to let a user know that progress is happening... even if so. So, toward that end... a batch of mini-features and fixes designed to better inform users of the app's progress during a keyboard search.
Something that may be worth keeping in mind: the package installer uses asynchronous code that makes it quite possible for associated lexical model queries to still be ongoing when the user reaches a package's welcome page. Commits 2 and 3 are about improving the UX in such conditions.
First commit: the keyboard search now displays a progress bar while loading relevant pages.
That little bit of blue makes a world of difference. Without it... the search feels outright broken, with no indication that the issue is a poor 'net connection. Might not be a bad idea to have some sort of default text / a 'filler' page to display during the load as well, though. But... that's design work best left to another time.
It works for more than just the initial page load, too:
It took a little while to work out just how to achieve that visual metaphor iOS users know and love, but it's there now. Of course, its actual responsiveness is also on par with the system's usual responsiveness. So... not that great, but at least it's there.
Second + third commits: the finalization process for package installation is now more polished - both in the frontend and the backend. The two "completion handler" pathways, which were confusing to manage, have now been successfully united into a single, consistent, and clearer-to-understand pathway. (Yay!)
In terms of user benefit, the keyboard will now never display until
AssociatingPackageInstallerfully relinquishes control. (Well, once the fix within #4568 also lands.) Furthermore, if installations are delayed because of internet issues when attempting to look up associated lexical models, the welcome page (should it be available) will remain interactive, just with a wait-spinner on top of it.In such cases, lexical-model association queries are pending in the background. The view will auto-dismiss once those queries complete.
No welcome page? No problem! You'll be able to check out the readme page, but you won't be able to select anything or scroll the language list. Also has a spinner. A good test is with the following legacy package, though it does lack multiple language codes: https://downloads.keyman.com/keyboards/gff_bcq_7/1.0/gff_bcq_7.kmp
Ideally, we'd use progress bars (like with the first commit) instead of spinners... but the code we'd need to actually track progress to give meaningful 'bar' information was triaged beyond 14.0.
(Refer to the final few lines of the following.)
keyman/ios/engine/KMEI/KeymanEngine/Classes/Resource Management/AssociatingPackageInstaller.swift
Lines 174 to 193 in 6180b01
So, spinners.