From 34daecaa25e5bdd995179a2b4b9d922f8bbb3b54 Mon Sep 17 00:00:00 2001 From: cirakg Date: Mon, 26 Oct 2026 15:20:20 +0100 Subject: fix(pin): START never submits on touch; Change PIN asks once after a legacy PIN A legacy PIN (0.8.0 or earlier) on a touch screen was still submitted by START, and a tap that also arrives as START could submit the digits typed so far as a counted wrong PIN. The OK key is tapped instead. "Change PIN" while locked with a legacy PIN asked for the new PIN twice: the forced new PIN after the unlock is now the change. Found in the review of b8addc8 and 096b5a4. make test and make screenshots pass on the Forerunner 70. Co-Authored-By: Claude Opus 5.5 --- source/ui/PinView.mc | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) (limited to 'source/ui/PinView.mc') diff --git a/source/ui/PinView.mc b/source/ui/PinView.mc index 47b12fd..af18e2b 100644 --- a/source/ui/PinView.mc +++ b/source/ui/PinView.mc @@ -515,16 +515,11 @@ class PinDelegate extends WatchUi.BehaviorDelegate { return true; } - // START on a touch screen submits only a legacy PIN. Otherwise it does - // nothing: one tap can arrive both here and in onTap, and submitting - // the digits typed so far was a wrong PIN. + // START on a touch screen does nothing, in every mode: one tap can arrive + // both here and in onTap, and submitting the digits typed so far was a + // counted wrong PIN. A legacy PIN is submitted with the tappable OK key. function onKey(event as WatchUi.KeyEvent) as Boolean { - var v = view(); - if (v != null && Ui.isTouch() && event.getKey() == WatchUi.KEY_ENTER) { - if (v.legacy) { - v.markChanged(); - v.press(PinView.KEY_OK); - } + if (Ui.isTouch() && event.getKey() == WatchUi.KEY_ENTER) { return true; } return false; -- cgit v1.2.3