keymanapp / keymanapp/keyman

bug(android): inconsistent UI behavior when cancelling update

Open
#16,277 0 comments 0 reactions 0 assignees View on GitHub
android/ bug
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

Image

## 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

Image

Keyman 19.0.258-alpha-local

Contributor guide

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.