Open moneymanolis opened 1 year ago
I think jumping to the cell using touch screen makes most sense. I think it's better than having a "previous word" button. Cursor also makes sense to implement. I didn't do that because right now the cursor is always at the end.
I've thought about this screen more.
We should split the UX improvements into two parts. The first part should make the "enter your phrase" UX better and the second part should improve the UI if you want / need to correct a word. Let's start with the first part. I think these relatively easy (?) changes would go a long way:
(a) Highlighting the currently used row in RecoverMnemonicScreen
. This would, for example, help to understand that clicking on one of the auto-complete options is using this word and moving on to the next row / word.
(b) Separate "Next word" and "Auto-complete"-functionality into two different UI elements. It might be enough to have the "Next word" button really just move on to the next word (if the current one is a valid one) instead of it performing an auto-complete as well. So, the auto-completion would only be done when clicking on the suggested word(s).
@stepansnigirev let me know what you think.
For future reference, (b) can be achieved probably by changing:
elif c == "Next word":
word = self.table.get_last_word()
if self.lookup is not None and len(word) >= 2:
candidates = self.lookup(word, 2)
if len(candidates) == 1:
self.table.autocomplete_word(candidates[0])
to
elif c == "Next word":
word = self.table.get_last_word()
self.table.autocomplete_word(candidates[0])
and by changing the control of the button:
if len(candidates) == 1 or word in candidates
in get_mnemonic
to
if len(candidates) == 1 and word in candidates
Two things would massively improve the UX here:
<
sign - and this would also erase a lot of entered words when going back from, say, word 10 to word 2 to change it. The alternative here would be to enable to jump to a previous word by the touch display, but I suppose this is much more difficult to implement @stepansnigirev?