FIX - modernize lock screen passcode flow

Rebuild device unlock around the current iOS-style wallpaper, outlined keypad, telephone letters, status bar, and keyboard support. Require the passcode only for the first unlock of each open device session so a soft lock from the status bar returns directly after the session is authenticated.
This commit is contained in:
Leon.Schmidt
2026-08-15 22:20:06 +02:00
parent a04863179f
commit 2f70444071
4 changed files with 353 additions and 96 deletions
@@ -22,6 +22,19 @@ describe('browser development preview contract', () => {
expect(source).toContain('else loadUnlockedPhoneData()')
})
it('requires the passcode only for the first unlock of a device session', () => {
expect(source).toContain('const passcodeRequired = ref(false)')
expect(source).toContain(
'if (phone.security.enabled && passcodeRequired.value)',
)
expect(source).toContain(
'passcodeRequired.value = isLocked.value && phone.security.enabled',
)
expect(source).toMatch(
/function lockPhone\(\): void \{[\s\S]*?passcodeRequired\.value = false[\s\S]*?isLocked\.value = true/,
)
})
it('keeps hairlines at one rendered device pixel through phone zoom', () => {
expect(source).toContain(
'...getHairlinePixelStyle(phoneZoom.value, browserDevicePixelRatio.value)',