QR-Code Scanner
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -20,11 +20,11 @@
|
||||
<Label Text="Überstunden Jahr:" Grid.Row="4" />
|
||||
|
||||
|
||||
<Label BackgroundColor="AliceBlue" Grid.Row="0" Grid.Column="1" Text="{Binding Nominal}" />
|
||||
<Label BackgroundColor="AliceBlue" Grid.Row="1" Grid.Column="1" Text="{Binding ZeitDone}" />
|
||||
<Label BackgroundColor="AliceBlue" Grid.Row="2" Grid.Column="1" Text="{Binding ZeitCalculated}" />
|
||||
<Label BackgroundColor="AliceBlue" Grid.Row="3" Grid.Column="1" Text="{Binding OvertimeMonth}" />
|
||||
<Label BackgroundColor="AliceBlue" Grid.Row="4" Grid.Column="1" Text="{Binding Overtime}" />
|
||||
<Label BackgroundColor="AliceBlue" Grid.Row="0" Grid.Column="1" HorizontalTextAlignment="End" Padding="0,0,5,0" Text="{Binding Nominal}" />
|
||||
<Label BackgroundColor="AliceBlue" Grid.Row="1" Grid.Column="1" HorizontalTextAlignment="End" Padding="0,0,5,0" Text="{Binding ZeitDone}" />
|
||||
<Label BackgroundColor="AliceBlue" Grid.Row="2" Grid.Column="1" HorizontalTextAlignment="End" Padding="0,0,5,0" Text="{Binding ZeitCalculated}" />
|
||||
<Label BackgroundColor="AliceBlue" Grid.Row="3" Grid.Column="1" HorizontalTextAlignment="End" Padding="0,0,5,0" Text="{Binding OvertimeMonth}" />
|
||||
<Label BackgroundColor="AliceBlue" Grid.Row="4" Grid.Column="1" HorizontalTextAlignment="End" Padding="0,0,5,0" Text="{Binding Overtime}" />
|
||||
</Grid>
|
||||
</VerticalStackLayout>
|
||||
</ContentPage>
|
||||
Reference in New Issue
Block a user