Rename SELECT->ENTER

This commit is contained in:
Peter D. Gray 2023-12-06 11:42:52 -05:00
parent 15a4277302
commit 801fbb89b5
No known key found for this signature in database
GPG Key ID: A2DCD558C2BE5D7C
9 changed files with 33 additions and 35 deletions

View File

@ -18,7 +18,7 @@ except ImportError:
KEY_NFC = '\x0e' # ctrl-N
KEY_QR = '\x11' # ctrl-Q
KEY_TAB = '\t' # tab = ctrl-I
KEY_SELECT = '\r' # = CR
KEY_ENTER = '\r' # = CR
KEY_CANCEL = '\x1b' # ESC = Cancel
KEY_LEFT = '\x03' # ^B = left (incompatible)
KEY_UP = '\x0b' # ^K = up on ADM-3A
@ -56,7 +56,7 @@ if has_qwerty:
# - these are unshifted values
# - ten per row, gaps with zero
DECODER = (KEY_NFC + KEY_TAB + KEY_QR
+ KEY_LEFT + KEY_UP + KEY_DOWN + KEY_RIGHT + KEY_CANCEL + KEY_SELECT + '\0'
+ KEY_LEFT + KEY_UP + KEY_DOWN + KEY_RIGHT + KEY_CANCEL + KEY_ENTER + '\0'
+ '1234567890'
+ 'qwertyuiop'
+ 'asdfghjkl`'
@ -77,7 +77,7 @@ if has_qwerty:
# in caps mode: numbers unaffected, and also allow meta keys normally
DECODER_CAPS = (KEY_NFC + KEY_TAB + KEY_QR
+ KEY_LEFT + KEY_UP + KEY_DOWN + KEY_RIGHT + KEY_CANCEL + KEY_SELECT + '\0'
+ KEY_LEFT + KEY_UP + KEY_DOWN + KEY_RIGHT + KEY_CANCEL + KEY_ENTER + '\0'
+ '1234567890'
+ 'QWERTYUIOP'
+ "ASDFGHJKL'"
@ -88,7 +88,7 @@ if has_qwerty:
# - be nice and allow number+symbol == number + shift
# - also nicity: symb+cancel=clear
DECODER_SYMBOL = (KEY_NFC + KEY_TAB + KEY_QR
+ KEY_HOME + KEY_PAGE_UP + KEY_PAGE_DOWN + KEY_END + KEY_CANCEL + KEY_SELECT + '\0'
+ KEY_HOME + KEY_PAGE_UP + KEY_PAGE_DOWN + KEY_END + KEY_CANCEL + KEY_ENTER + '\0'
+ '!@#$%^&*()'
+ '-_`\0\0\0[]{}'
+ '+\0\0=:;~|\\"'

View File

@ -8,13 +8,13 @@ from ux import PressRelease, ux_wait_keyup, ux_show_story, ux_show_pin
from callgate import show_logout
from pincodes import pa
from uasyncio import sleep_ms
from charcodes import KEY_DELETE, KEY_SELECT, KEY_CANCEL, KEY_CLEAR
from charcodes import KEY_DELETE, KEY_ENTER, KEY_CANCEL, KEY_CLEAR
MAX_PIN_PART_LEN = 6
MIN_PIN_PART_LEN = 2
if not version.has_qwerty:
KEY_SELECT = 'y'
KEY_ENTER = 'y'
KEY_CANCEL = 'x'
KEY_DELETE = 'x'
@ -66,7 +66,7 @@ class LoginUX:
y = 4
dis.text(x, y, words[0])
dis.text(x, y+1, words[1])
dis.text(None, -1, "CANCEL or SELECT to continue")
dis.text(None, -1, "CANCEL or ENTER to continue")
else:
# Old style
from display import FontLarge, FontTiny
@ -120,7 +120,7 @@ class LoginUX:
self.pin = ''
self.show_pin()
elif ch == KEY_SELECT:
elif ch == KEY_ENTER:
if len(self.pin) < MIN_PIN_PART_LEN:
# they haven't given enough yet
continue
@ -131,7 +131,7 @@ class LoginUX:
self._show_words()
pattern = KEY_SELECT + KEY_CANCEL
pattern = KEY_ENTER + KEY_CANCEL
if self.kill_btn:
pattern += self.kill_btn
@ -143,7 +143,7 @@ class LoginUX:
callgate.fast_wipe(False)
# not reached
if nxt == KEY_SELECT:
if nxt == KEY_ENTER:
self.pin_prefix = self.pin
self.pin = ''

View File

@ -6,7 +6,7 @@ import gc
from ux import PressRelease, the_ux
from uasyncio import sleep_ms
from charcodes import (KEY_LEFT, KEY_RIGHT, KEY_UP, KEY_DOWN, KEY_HOME, KEY_SPACE,
KEY_END, KEY_PAGE_UP, KEY_PAGE_DOWN, KEY_SELECT, KEY_CANCEL)
KEY_END, KEY_PAGE_UP, KEY_PAGE_DOWN, KEY_ENTER, KEY_CANCEL)
from version import has_qwerty
# Number of full text lines per screen.
@ -34,7 +34,7 @@ def numpad_remap(key):
elif key == '0':
return KEY_HOME
elif key == 'y':
return KEY_SELECT
return KEY_ENTER
elif key == 'x':
return KEY_CANCEL
else:
@ -347,7 +347,7 @@ class MenuSystem:
if not has_qwerty:
key = numpad_remap(key)
if key == KEY_SELECT or key == KEY_SPACE:
if key == KEY_ENTER or key == KEY_SPACE:
# selected - done
return self.cursor
elif key == KEY_CANCEL:

View File

@ -6,7 +6,7 @@ import framebuf, uqr
from ux import UserInteraction, ux_wait_keyup, the_ux
from utils import word_wrap
from charcodes import (KEY_LEFT, KEY_RIGHT, KEY_UP, KEY_DOWN, KEY_HOME, KEY_NFC,
KEY_END, KEY_PAGE_UP, KEY_PAGE_DOWN, KEY_SELECT, KEY_CANCEL)
KEY_END, KEY_PAGE_UP, KEY_PAGE_DOWN, KEY_ENTER, KEY_CANCEL)
from version import has_qwerty
@ -84,7 +84,7 @@ class QRDisplaySingle(UserInteraction):
await NFC.share_text(self.addrs[self.idx])
self.redraw()
continue
elif ch in 'xy'+KEY_SELECT+KEY_CANCEL:
elif ch in 'xy'+KEY_ENTER+KEY_CANCEL:
break
elif len(self.addrs) == 1:
continue

View File

@ -24,7 +24,7 @@ from glob import settings, dis
from pincodes import pa
from nvstore import SettingsObject
from files import CardMissingError, needs_microsd, CardSlot
from charcodes import KEY_QR, KEY_SELECT, KEY_CANCEL
from charcodes import KEY_QR, KEY_ENTER, KEY_CANCEL
# seed words lengths we support: 24=>256 bits, and recommended
@ -350,7 +350,7 @@ async def add_dice_rolls(count, seed, judge_them, nwords=None, enforce=False):
# only let them abort if it's early still
if count < 10 and judge_them:
return 0, seed
elif ch == KEY_SELECT:
elif ch == KEY_ENTER:
if count < threshold and judge_them:
if not count:
return 0, seed

View File

@ -11,7 +11,7 @@ from callgate import get_is_bricked, get_genuine, clear_genuine
from utils import problem_file_line
import version
from glob import settings
from charcodes import KEY_SELECT, KEY_CANCEL
from charcodes import KEY_ENTER, KEY_CANCEL
try:
from display import FontLarge
@ -19,8 +19,8 @@ except ImportError:
FontLarge = None
async def wait_ok():
k = await ux_wait_keyup('xy' + KEY_SELECT + KEY_CANCEL)
if k not in 'y' + KEY_SELECT:
k = await ux_wait_keyup('xy' + KEY_ENTER + KEY_CANCEL)
if k not in 'y' + KEY_ENTER:
raise RuntimeError('Canceled')
def label_test(line1, line2=''):

View File

@ -7,7 +7,7 @@ from queues import QueueEmpty
import utime, gc, version
from utils import word_wrap
from charcodes import (KEY_LEFT, KEY_RIGHT, KEY_UP, KEY_DOWN, KEY_HOME, KEY_NFC, KEY_QR,
KEY_END, KEY_PAGE_UP, KEY_PAGE_DOWN, KEY_SELECT, KEY_CANCEL)
KEY_END, KEY_PAGE_UP, KEY_PAGE_DOWN, KEY_ENTER, KEY_CANCEL)
from exceptions import AbortInteraction
DEFAULT_IDLE_TIMEOUT = const(4*3600) # (seconds) 4 hours
@ -197,7 +197,7 @@ async def ux_show_story(msg, title=None, escape=None, sensitive=False, strict_es
if escape and (ch in escape):
# allow another way out for some usages
return ch
elif ch == KEY_SELECT:
elif ch == KEY_ENTER:
if not strict_escape:
return 'y' # translate for Mk4 code
elif ch == KEY_CANCEL:

View File

@ -4,8 +4,6 @@
#
from uasyncio import sleep_ms
import utime, gc
from charcodes import (KEY_LEFT, KEY_RIGHT, KEY_UP, KEY_DOWN, KEY_HOME,
KEY_END, KEY_PAGE_UP, KEY_PAGE_DOWN, KEY_SELECT, KEY_CANCEL)
from exceptions import AbortInteraction
class PressRelease:

View File

@ -13,7 +13,7 @@ import bip39
from decoders import decode_qr_result
class PressRelease:
def __init__(self, need_release=KEY_SELECT+KEY_CANCEL):
def __init__(self, need_release=KEY_ENTER+KEY_CANCEL):
# Manage key-repeat: track last key, measure time it's held down, etc.
self.need_release = need_release
self.last_key = None
@ -87,8 +87,8 @@ async def ux_enter_number(prompt, max_value, can_cancel=False):
max_w = int(log(max_value, 10) + 1)
dis.clear()
dis.text(None, -1, "CANCEL or SELECT when done." if can_cancel else
"Enter number, SELECT when done.")
dis.text(None, -1, "CANCEL or ENTER when done." if can_cancel else
"Enter number, ENTER when done.")
while 1:
# TODO: check width, go to two lines if needed? depends on prompt text
@ -96,7 +96,7 @@ async def ux_enter_number(prompt, max_value, can_cancel=False):
dis.show(cursor=CursorSpec(bx, 4, CURSOR_SOLID))
ch = await press.wait()
if ch == KEY_SELECT:
if ch == KEY_ENTER:
if not value:
return 0
@ -144,7 +144,7 @@ async def ux_input_text(value, confirm_exit=True, hex_only=False, max_len=100,
if b39_complete:
dis.text(None, -2, KEY_TAB + " to auto-complete. " + KEY_QR + " to scan.")
dis.text(None, -1, "CANCEL or SELECT when done.")
dis.text(None, -1, "CANCEL or ENTER when done.")
# TODO:
# - left/right to edit in middle
@ -214,7 +214,7 @@ async def ux_input_text(value, confirm_exit=True, hex_only=False, max_len=100,
ch = await press.wait()
if ch == KEY_SELECT:
if ch == KEY_ENTER:
if len(value) >= min_len:
break
else:
@ -336,9 +336,9 @@ def ux_show_pin(dis, pin, subtitle, is_first_part, is_confirmation, force_draw,
if is_confirmation:
cta = "Confirm pin value"
if is_confirmation:
cta = "CANCEL or SELECT when done"
cta = "CANCEL or ENTER when done"
else:
cta = "CANCEL or SELECT to continue"
cta = "CANCEL or ENTER to continue"
dis.text(None, -1, cta)
@ -458,8 +458,8 @@ async def seed_word_entry(prompt, num_words, has_checksum=True, done_cb=None):
while 1:
if word_num == num_words:
# useful to show final word on screen, even tho confirm not needed
err_msg = 'Press SELECT if all done.' if not has_checksum else \
'Valid words! Press SELECT.'
err_msg = 'Press ENTER if all done.' if not has_checksum else \
'Valid words! Press ENTER.'
cur = None
else:
x, y = pos[word_num]
@ -485,7 +485,7 @@ async def seed_word_entry(prompt, num_words, has_checksum=True, done_cb=None):
ch = await press.wait()
commit = False
if ch == KEY_SELECT:
if ch == KEY_ENTER:
if word_num == num_words:
break
commit = True