Eerste commit

This commit is contained in:
jf
2026-09-27 14:21:31 +00:00
commit de4ff128cb
295 changed files with 47374 additions and 0 deletions
+39
View File
@@ -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);
}