From 096b5a4d17c85fa5f87db3e72364e9c3506d1e64 Mon Sep 17 00:00:00 2001 From: cirakg Date: Sun, 25 Oct 2026 12:46:42 +0100 Subject: feat(pin): exactly 4 digits, entered on the 4th digit The keypad has no OK key; the 4th digit submits, so a tap that also arrives as START can no longer submit a partial PIN (the likely cause of "Wrong PIN" before the code opened). PINs set by earlier versions still unlock and are then replaced by a 4-digit one. Opening an entry ignores a second request from the same tap. A Require PIN sent from the phone while the watch is locked now applies at the next PIN instead of waiting for Confirm all. The linter skips .claude. Co-Authored-By: Claude Opus 5.5 --- source/settings/SettingsProcessor.mc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'source/settings/SettingsProcessor.mc') diff --git a/source/settings/SettingsProcessor.mc b/source/settings/SettingsProcessor.mc index cf7684b..57fe411 100644 --- a/source/settings/SettingsProcessor.mc +++ b/source/settings/SettingsProcessor.mc @@ -65,11 +65,17 @@ class SettingsProcessor { } if (job.forms > 0) { var lines = job.lines; - var waiting = ChangeQueue.count(AppState.theVault()); + // "Require PIN" items apply by themselves at the next PIN. + var vault = AppState.theVault(); + var locks = ChangeQueue.countLocks(vault); + var waiting = ChangeQueue.count(vault) - locks; if (waiting > 0) { lines.add(waiting + (waiting == 1 ? " change waits" : " changes wait") + " for your PIN: menu, Phone changes."); } + if (locks > 0) { + lines.add(locks + (locks == 1 ? " entry locks" : " entries lock") + " when you next enter your PIN."); + } Results.save(lines); WatchUi.pushView(new InfoView("Results", lines, "results"), new InfoDelegate(), WatchUi.SLIDE_UP); Results.markSeen(); -- cgit v1.2.3