40 lines
1.5 KiB
C#
40 lines
1.5 KiB
C#
using Microsoft.Extensions.DependencyInjection;
|
|
using MijnBesluit.AppUi;
|
|
|
|
namespace MijnBesluit.App;
|
|
|
|
public partial class App : Application
|
|
{
|
|
private readonly Terugknop _terugknop;
|
|
|
|
public App(Terugknop terugknop)
|
|
{
|
|
InitializeComponent();
|
|
_terugknop = terugknop;
|
|
}
|
|
|
|
protected override Window CreateWindow(IActivationState? activationState)
|
|
{
|
|
var venster = new Window(new HoofdPagina(_terugknop)) { Title = "MijnBesluit" };
|
|
|
|
// Android verbreekt de socketverbinding zodra de app een tijdje op de achtergrond staat -
|
|
// bijvoorbeeld terwijl iemand zijn e-mail leest om de inlogcode op te halen. Bij het
|
|
// terugkomen halen we de gegevens opnieuw op, zodat de melding "geen verbinding"
|
|
// verdwijnt zonder dat de gebruiker ergens op hoeft te drukken.
|
|
venster.Resumed += async (_, _) =>
|
|
{
|
|
var diensten = IPlatformApplication.Current?.Services;
|
|
|
|
// Eerst kijken of de app zichzelf had moeten uitloggen terwijl hij in de achtergrond
|
|
// stond. Dat is het geval waar automatisch uitloggen voor bedoeld is - een telefoon
|
|
// die een uur in een tas zit - en het hoort te gebeuren vóór we gegevens ophalen.
|
|
diensten?.GetService<Uitlogklok>()?.Hervatten();
|
|
|
|
var toestand = diensten?.GetService<AppToestand>();
|
|
if (toestand is { IsAangemeld: true }) await toestand.VerversAsync();
|
|
};
|
|
|
|
return venster;
|
|
}
|
|
}
|