Eerste commit
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
namespace MijnBesluit.AppUi;
|
||||
|
||||
/// <summary>
|
||||
/// Het slot van het toestel zelf: vingerafdruk, gezicht, of de pincode of het patroon waarmee
|
||||
/// je je telefoon ontgrendelt.
|
||||
///
|
||||
/// De app ziet die vingerafdruk of code nooit. Hij vraagt het toestel om iemand te controleren
|
||||
/// en krijgt alleen ja of nee terug; het echte werk gebeurt in een deel van de telefoon waar
|
||||
/// geen enkele app bij kan. Er valt hier dus ook niets te bewaren of te lekken.
|
||||
///
|
||||
/// Net als de bestandskiezer staat dit als afspraak in de schermen en niet als code: een
|
||||
/// webview kan hier niet bij, dat moet de app eromheen doen. Zonder implementatie is
|
||||
/// <see cref="Beschikbaar"/> onwaar en gedraagt de app zich als vroeger - dan logt hij uit in
|
||||
/// plaats van op slot te gaan.
|
||||
/// </summary>
|
||||
public interface IToestelslot
|
||||
{
|
||||
/// <summary>
|
||||
/// Kan dit toestel iemand controleren? Onwaar als de telefoon geen schermslot heeft, of
|
||||
/// als de Android-versie te oud is. Dan heeft vergrendelen geen zin: iedereen die de
|
||||
/// telefoon in handen heeft komt er toch in.
|
||||
/// </summary>
|
||||
bool Beschikbaar { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Laat het toestel om een vingerafdruk of code vragen. Waar als het gelukt is, onwaar bij
|
||||
/// afbreken of mislukken. Gooit niets: een slot dat stukgaat hoort de app niet te laten
|
||||
/// vallen, het hoort dicht te blijven.
|
||||
/// </summary>
|
||||
Task<bool> OntgrendelAsync(string titel, string uitleg);
|
||||
}
|
||||
|
||||
/// <summary>Wordt gebruikt als er geen toestelslot is. Zegt netjes nee.</summary>
|
||||
public sealed class Geenslot : IToestelslot
|
||||
{
|
||||
public bool Beschikbaar => false;
|
||||
|
||||
public Task<bool> OntgrendelAsync(string titel, string uitleg) => Task.FromResult(false);
|
||||
}
|
||||
Reference in New Issue
Block a user