From 8bf11d271f9390353415b362bd3fdf8602b079a4 Mon Sep 17 00:00:00 2001 From: Dave Arter Date: Sun, 2 Sep 2018 17:40:17 +0100 Subject: [PATCH] Default to numeric input for phone number inputs --- lib/dialogs.py | 10 ++++++---- phone/main.py | 2 +- sms/main.py | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/lib/dialogs.py b/lib/dialogs.py index 9f03f89..86626b0 100644 --- a/lib/dialogs.py +++ b/lib/dialogs.py @@ -72,7 +72,7 @@ def prompt_boolean(text, title="TiLDA", true_text="Yes", false_text="No", font=F if button_no: button_no.destroy() label.destroy() -def prompt_text(description, init_text="", true_text="OK", false_text="Back", font=FONT_MEDIUM_BOLD, style=default_style_badge): +def prompt_text(description, init_text="", true_text="OK", false_text="Back", font=FONT_MEDIUM_BOLD, style=default_style_badge, numeric=False): """Shows a dialog and keyboard that allows the user to input/change a string Returns None if user aborts with button B @@ -102,7 +102,7 @@ def prompt_text(description, init_text="", true_text="OK", false_text="Back", fo if buttons.is_triggered(buttons.Buttons.BTN_A): return edit.text() if buttons.is_triggered(buttons.Buttons.BTN_B): return None if buttons.is_triggered(buttons.Buttons.BTN_Menu): return edit.text() - handle_keypad(edit) + handle_keypad(edit, numeric) finally: window.hide() @@ -116,7 +116,7 @@ def prompt_text(description, init_text="", true_text="OK", false_text="Back", fo last_key = None last_keytime = None -def handle_keypad(edit): +def handle_keypad(edit, numeric): global last_key, last_keytime threshold = 1000 keymap = { @@ -136,7 +136,9 @@ def handle_keypad(edit): for key, chars in keymap.items(): if buttons.is_triggered(key): - if key != last_key: + if numeric: + edit.text(edit.text() + chars[-1]) + elif key != last_key: edit.text(edit.text() + chars[0]) else: if last_keytime is None or (time.ticks_ms() - last_keytime) > threshold: diff --git a/phone/main.py b/phone/main.py index d5a402f..d6087bf 100644 --- a/phone/main.py +++ b/phone/main.py @@ -19,7 +19,7 @@ ugfx.clear() def makecall(): - notocall = prompt_text("Number to call:") + notocall = prompt_text("Number to call:", numeric=True) if (notocall): sim800.call(notocall) diff --git a/sms/main.py b/sms/main.py index e037dbe..ba61523 100644 --- a/sms/main.py +++ b/sms/main.py @@ -24,7 +24,7 @@ def send_message(): number = "" message = "" while True: - number = prompt_text("Number to message:", init_text=number) + number = prompt_text("Number to message:", init_text=number, numeric=True) if number is None: return message = prompt_text("Message:", init_text=message)