bug(android): inconsistent UI behavior when cancelling update
- Dominant language
- Pascal
- Stars
- 534
- Forks
- 143
- Avg merge
- 2d 10h
- Merged PRs (30d)
- 113
Description
If a keyboard or model is installed for multiple languages, clicking the "Install Updates" menu item results in multiple confirmation dialogs, one for each language. If the user cancels one and confirms the other, the keyboard/model is still updated.
## To reproduce
(Note that updates are checked only once a day, so an update might not be offered right away!)
- install [SIL EuroLatin keyboard v3.0.0](https://downloads.keyman.com/keyboards/sil_euro_latin/3.0.0/sil_euro_latin.kmp) for English
- add German as additional language for SIL EuroLatin.
- confirm the versions - SIL EuroLatin should be v3.0.0 and an update available for both English and German
- in the main menu, click the "Install Updates" button
- cancel confirmation dialog for "German: EuroLatin (SIL)"
- click Download on the confirmation dialog for "English: EuroLatin (SIL)"
- verify that the keyboard version for EuroLatin (SIL) for English is v3.0.5 and no update is available
- for German however, the version for EuroLatin (SIL) is shown as v3.0.5 and an available update is shown
## Problems
There are two problems with this behavior:
- it's wrong that an update is shown as being available if the latest keyboard version is already installed
- it doesn't respect the user's choice of not updating the keyboard for German
Similar problems exist for lexical models.
## Suggestions
I think it would be better to show only one confirmation dialog per keyboard/model and list the languages that would be affected. For example, the confirmation dialog could show:
**EuroLatin (SIL)**
for English, German
Would you like to download the latest version of this keyboard?
Cancel / Download
### Current confirmation dialog
Keyman 19.0.258-alpha-local
Contributor guide
Research direction
Start in the Android flow opened by the main-menu “Install Updates” item and reproduce the EuroLatin setup with English and German. Trace how confirmation dialogs handle cancellation and download decisions for keyboards and lexical models. Done means one dialog per keyboard or model, affected languages are listed, and cancelling prevents the update and stale availability state for that language.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android
- Domain
- mobile
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100