From a61aa38d24bdfc850935eb0582ebb3ba14024d6d Mon Sep 17 00:00:00 2001 From: DaPi Date: Tue, 20 Aug 2024 17:31:50 +0200 Subject: [PATCH] QR-Code Scanner --- Jugenddienst Stunden/Models/Stunde.cs | 2 +- .../ViewModels/StundenViewModel.cs | 1 + Jugenddienst Stunden/Views/AboutPage.xaml.cs | 62 +++++++++++++++---- Jugenddienst Stunden/Views/StundenPage.xaml | 10 +-- 4 files changed, 56 insertions(+), 19 deletions(-) diff --git a/Jugenddienst Stunden/Models/Stunde.cs b/Jugenddienst Stunden/Models/Stunde.cs index 1effe77..d114c47 100644 --- a/Jugenddienst Stunden/Models/Stunde.cs +++ b/Jugenddienst Stunden/Models/Stunde.cs @@ -9,7 +9,7 @@ namespace Jugenddienst_Stunden.Models { private static readonly string BaseAddress = "http://hours.dauni.mine.nu:81"; //private static readonly string apiKey = "MTQzfEFlMVRjQXdZMnI4RmpxZ0FSY3A0VEN2bVZYVXxodHRwOi8vaG91cnMuZGF1bmkubWluZS5udTo4MS9hcHBhcGk="; //Christine - private static readonly string apiKey = "MTU0fGpkQUNYTGkvcjMvVk4rNkMyK0dDQkJmMkFwVXxodHRwOi8vaG91cnMuZGF1bmkubWluZS5udTo4MS9hcHBhcGk="; //Damian + public static string apiKey = "MTU0fGpkQUNYTGkvcjMvVk4rNkMyK0dDQkJmMkFwVXxodHRwOi8vaG91cnMuZGF1bmkubWluZS5udTo4MS9hcHBhcGk="; //Damian private static readonly string requestUrl = $"{BaseAddress}/appapi?hours"; public DateTime Date { get; set; } diff --git a/Jugenddienst Stunden/ViewModels/StundenViewModel.cs b/Jugenddienst Stunden/ViewModels/StundenViewModel.cs index 4a8b9d9..ecdf4c2 100644 --- a/Jugenddienst Stunden/ViewModels/StundenViewModel.cs +++ b/Jugenddienst Stunden/ViewModels/StundenViewModel.cs @@ -57,5 +57,6 @@ namespace Jugenddienst_Stunden.ViewModels { OnPropertyChanged(nameof(Hours)); } + } } diff --git a/Jugenddienst Stunden/Views/AboutPage.xaml.cs b/Jugenddienst Stunden/Views/AboutPage.xaml.cs index 8d158b5..73070ca 100644 --- a/Jugenddienst Stunden/Views/AboutPage.xaml.cs +++ b/Jugenddienst Stunden/Views/AboutPage.xaml.cs @@ -1,28 +1,64 @@ -using ZXing; -using ZXing.Net.Maui.Controls; +using Microsoft.Maui.Controls; +using System.Collections.Generic; +using ZXing.Net.Maui; + namespace Jugenddienst_Stunden.Views; -public partial class AboutPage : ContentPage -{ - public AboutPage() - { +public partial class AboutPage : ContentPage { + + private DateTime _lastDetectionTime; + private readonly TimeSpan _detectionInterval = TimeSpan.FromSeconds(3); + + public AboutPage() { InitializeComponent(); + barcodeScannerView.Options = new ZXing.Net.Maui.BarcodeReaderOptions { Formats = ZXing.Net.Maui.BarcodeFormat.QrCode, AutoRotate = true, Multiple = false }; - } private void BarcodesDetected(object sender, ZXing.Net.Maui.BarcodeDetectionEventArgs e) { - var first = e.Results?.FirstOrDefault(); - if (first is null) { - return; + //var first = e.Results?.FirstOrDefault(); + + var currentTime = DateTime.Now; + if ((currentTime - _lastDetectionTime) > _detectionInterval) { + _lastDetectionTime = currentTime; + foreach (var barcode in e.Results) { + MainThread.InvokeOnMainThreadAsync(() => { + DisplayAlert("Barcode erkannt", $"Barcode: {barcode.Format} - {barcode.Value}", "OK"); + Models.Stunde.apiKey = barcode.Value; + }); + } } - Dispatcher.DispatchAsync(async () => { - await DisplayAlert("Scan-Ergebnis", $"Barcode: {first.Value}", "OK"); - }); + + //if (first is null) { + // return; + //} + //Dispatcher.DispatchAsync(async () => { + // await DisplayAlert("Scan-Ergebnis", $"Barcode: {first.Value}", "OK"); + //}); + //MainThread.InvokeOnMainThreadAsync(() => { + // DisplayAlert("Barcode erkannt", $"Barcode: {first.Format} - {first.Value}", "OK"); + // Models.Stunde.apiKey = first.Value; + //}); + } + protected override void OnDisappearing() { + base.OnDisappearing(); + barcodeScannerView.CameraLocation = CameraLocation.Front; + barcodeScannerView.IsDetecting = false; + + } + + protected override void OnAppearing() { + base.OnAppearing(); + + barcodeScannerView.IsDetecting = true; + barcodeScannerView.CameraLocation = CameraLocation.Rear; + } + + } \ No newline at end of file diff --git a/Jugenddienst Stunden/Views/StundenPage.xaml b/Jugenddienst Stunden/Views/StundenPage.xaml index 2f2ddf8..c17001d 100644 --- a/Jugenddienst Stunden/Views/StundenPage.xaml +++ b/Jugenddienst Stunden/Views/StundenPage.xaml @@ -20,11 +20,11 @@