From 91377b583bfbb57b83a02d05d51fa27de2a6bf54 Mon Sep 17 00:00:00 2001 From: DaPi Date: Fri, 18 Oct 2024 16:23:11 +0200 Subject: [PATCH] Swipe down to refresh --- .../ViewModels/StundenViewModel.cs | 45 ++++-- Jugenddienst Stunden/Views/StundenPage.xaml | 141 +++++++++--------- 2 files changed, 107 insertions(+), 79 deletions(-) diff --git a/Jugenddienst Stunden/ViewModels/StundenViewModel.cs b/Jugenddienst Stunden/ViewModels/StundenViewModel.cs index 7d8e8ec..3fb043e 100644 --- a/Jugenddienst Stunden/ViewModels/StundenViewModel.cs +++ b/Jugenddienst Stunden/ViewModels/StundenViewModel.cs @@ -1,6 +1,7 @@ using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; using Jugenddienst_Stunden.Types; +using Newtonsoft.Json.Linq; using System.Collections.ObjectModel; using System.ComponentModel; using System.Runtime.CompilerServices; @@ -20,13 +21,25 @@ internal class StundenViewModel : ObservableObject, IQueryAttributable, INotifyP public ICommand NewEntryCommand { get; } public ICommand SelectEntryCommand { get; } public ICommand LoadDataCommand { get; private set; } + public ICommand LoadDayCommand { get; private set; } public ICommand RefreshListCommand { get; } + public ICommand RefreshCommand { get; } - public event EventHandler AlertEvent; + public event EventHandler AlertEvent; public event EventHandler InfoEvent; + private bool isRefreshing; + public bool IsRefreshing { + get => isRefreshing; + set { + if (isRefreshing != value) { + isRefreshing = value; + OnPropertyChanged(); + } + } + } - private string _title = Preferences.Default.Get("name", "") + " " + Preferences.Default.Get("surname", ""); + private string _title = Preferences.Default.Get("name", "") + " " + Preferences.Default.Get("surname", ""); public string Title { get => _title; set => SetProperty(ref _title, value); @@ -76,11 +89,12 @@ internal class StundenViewModel : ObservableObject, IQueryAttributable, INotifyP dateToday = value; //GetDay = value; //OnPropertyChanged(); - _ = LoadDay(value); - } + Task.Run(() => LoadDay(value)); + } } } + /// /// Monatsübersicht: Geleistete Stunden /// @@ -137,7 +151,9 @@ internal class StundenViewModel : ObservableObject, IQueryAttributable, INotifyP Task task = LoadDay(DateTime.Today); - } + RefreshCommand = new Command(async () => await RefreshItemsAsync()); + + } /// @@ -219,10 +235,21 @@ internal class StundenViewModel : ObservableObject, IQueryAttributable, INotifyP } } - /// - /// Refreshes all properties - /// - private void RefreshProperties() { + + private async Task RefreshItemsAsync() { + IsRefreshing = true; + + // Fügen Sie hier die Logik zum Aktualisieren der Daten hinzu + //await Task.Delay(2000); // Simuliert eine Datenaktualisierung + await LoadDay(DateToday); + + IsRefreshing = false; + } + + /// + /// Refreshes all properties + /// + private void RefreshProperties() { OnPropertyChanged(nameof(Nominal)); OnPropertyChanged(nameof(Overtime)); OnPropertyChanged(nameof(OvertimeMonth)); diff --git a/Jugenddienst Stunden/Views/StundenPage.xaml b/Jugenddienst Stunden/Views/StundenPage.xaml index 3780afc..cddcb68 100644 --- a/Jugenddienst Stunden/Views/StundenPage.xaml +++ b/Jugenddienst Stunden/Views/StundenPage.xaml @@ -19,22 +19,22 @@ - + + + - - - - + - - - - - - + + + + + - - - + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - + + + + + + - - - + + + - + + -