Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Skip to content
Commit 426a11d7 authored by burakov's avatar burakov Committed by Danny Burakov
Browse files

[flexiglass] Bouncer refactoring, improvements and fixes.

1. Store `AuthMethodBouncerViewModel`s polymorphically.

2. Extract most of the common logic of the bouncer sub-view-models into
the parent `AuthMethodBouncerViewModel`, to ensure behavior consistency
and remove some code duplication. This fixes some bugs like the error
message not always being cleared when the input is cleared.

3. Represent the authentication attempt result more explicitly via a
dedicated enum, to prevent confusion when handling a `null` vs `false`
result.

4. Fix a memory leak when switching the authentication method.

5. Assign child view models of `BouncerViewModel` a temporary coroutine
scope, so we can dispose of them properly when the authentication method
is switched.

6. Move the "skip-authentication" business logic from `BouncerViewModel`
to `BouncerInteractor`.

7. Remove `minPatternLength` from `BouncerViewModel` and
`BouncerInteractor`.

8. Make view-model unit tests more concise by extracting the setup code
(setting the authentication method, locking the device and opening the
bouncer) to a helper function.

Fix: 300441917
Test: Unit tests still pass.
Test: Manually tested the 3 different bouncer auth methods and verified
 they still work as expected.
Change-Id: I711df14547d8b10caf275890b4de6cbdd3177c36
parent 3d505196
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment