Files
Jugenddienst-Stunden/Jugenddienst Stunden/Views/StundenPage.xaml.cs
2024-10-21 19:11:05 +02:00

80 lines
2.3 KiB
C#

using Jugenddienst_Stunden.ViewModels;
namespace Jugenddienst_Stunden.Views;
/// <summary>
/// Code-Behind für die Stunden-Übersicht
/// </summary>
public partial class StundenPage : ContentPage {
private int heightValue;
/// <summary>
/// CTOR
/// </summary>
public StundenPage() {
InitializeComponent();
if (BindingContext is StundenViewModel vm) {
vm.AlertEvent += Vm_AlertEvent;
vm.InfoEvent += Vm_InfoEvent;
}
if (!CheckLogin()) {
NavigateToTargetPage();
}
//// Bildschirmhöhe abrufen
//var screenHeight = DeviceDisplay.MainDisplayInfo.Height / DeviceDisplay.MainDisplayInfo.Density;
//// Berechnen der gewünschten Höhe
//var desiredHeight = screenHeight - 450; // Abzüglich der Stundenübersicht
//stundeItems.HeightRequest = desiredHeight;
#if ANDROID
heightValue = 280;
#elif IOS
heightValue = 280;
#elif WINDOWS
heightValue = 320;
#else
heightValue = 300;
#endif
SizeChanged += OnPageSizeChanged;
}
private void Vm_AlertEvent(object? sender, string e) {
MainThread.BeginInvokeOnMainThread(async () => {
await DisplayAlert("Fehler:", e, "OK");
});
}
private void Vm_InfoEvent(object? sender, string e) {
MainThread.BeginInvokeOnMainThread(async () => {
await DisplayAlert("Information:", e, "OK");
});
}
/// <summary>
/// Beim Laden der Seite den Titel setzen
/// </summary>
protected override void OnAppearing() {
base.OnAppearing();
Title = Preferences.Default.Get("name", "Nicht") + " " + Preferences.Default.Get("surname", "eingeloggt");
}
private bool CheckLogin() {
return Preferences.Default.Get("apiKey", "") != "";
}
private async void NavigateToTargetPage() {
await Navigation.PushAsync(new LoginPage());
}
private void OnPageSizeChanged(object sender, EventArgs e) {
double windowHeight = this.Height;
AdjustLayout(windowHeight);
}
private void AdjustLayout(double height) {
// Passen Sie Ihre UI-Elemente basierend auf der Fensterhöhe an
stundeItems.HeightRequest = height - heightValue; //Datepicker Height 50, Monatssummen Height 125, Titel + Navigation Height xyz
}
}