80 lines
2.3 KiB
C#
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
|
|
}
|
|
} |