NFC teszt és egyebek javítása, fejlesztése
This commit is contained in:
@@ -0,0 +1,17 @@
|
|||||||
|
using Plugin.NFC;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace WorkFlowCheck.MAUI.Pages.NFC
|
||||||
|
{
|
||||||
|
public class NFCData
|
||||||
|
|
||||||
|
{
|
||||||
|
public string DateReceived { get; set; }
|
||||||
|
public string SerialNumber { get; set; } = null!;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -3,10 +3,18 @@
|
|||||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||||
x:Class="WorkFlowCheck.MAUI.Pages.NFC.NFCTestPage"
|
x:Class="WorkFlowCheck.MAUI.Pages.NFC.NFCTestPage"
|
||||||
Title="NFCTestPage">
|
Title="NFCTestPage">
|
||||||
<VerticalStackLayout>
|
<RefreshView x:Name="refreshView" Command="{Binding RefreshCommand}" IsRefreshing="{Binding IsRefreshing}">
|
||||||
<Label
|
<CollectionView x:Name="NFCDataListCollection" ItemsSource="{Binding NFCDataList}">
|
||||||
Text="NFC Teszt"
|
<CollectionView.ItemTemplate>
|
||||||
VerticalOptions="Center"
|
<DataTemplate>
|
||||||
HorizontalOptions="Center" />
|
<Frame BorderColor="Gray" Padding="10" Margin="5" HasShadow="True">
|
||||||
</VerticalStackLayout>
|
<StackLayout>
|
||||||
|
<Label Text="{Binding SerialNumber}" FontSize="16" FontAttributes="Bold" />
|
||||||
|
<Label Text="{Binding DateReceived}" FontSize="14" />
|
||||||
|
</StackLayout>
|
||||||
|
</Frame>
|
||||||
|
</DataTemplate>
|
||||||
|
</CollectionView.ItemTemplate>
|
||||||
|
</CollectionView>
|
||||||
|
</RefreshView>
|
||||||
</ContentPage>
|
</ContentPage>
|
||||||
@@ -1,25 +1,35 @@
|
|||||||
using Plugin.NFC;
|
using Plugin.NFC;
|
||||||
|
using System.Collections.ObjectModel;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using System.Windows.Input;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
namespace WorkFlowCheck.MAUI.Pages.NFC;
|
namespace WorkFlowCheck.MAUI.Pages.NFC;
|
||||||
|
|
||||||
public partial class NFCTestPage : ContentPage
|
public partial class NFCTestPage : ContentPage
|
||||||
{
|
{
|
||||||
public NFCTestPage()
|
public NFCTestPage()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ObservableCollection<NFCData> NFCDataList { get; set; }
|
||||||
|
public ICommand RefreshCommand { get; set; }
|
||||||
|
|
||||||
public const string ALERT_TITLE = "NFC";
|
public const string ALERT_TITLE = "NFC";
|
||||||
bool _eventsAlreadySubscribed = false;
|
bool _eventsAlreadySubscribed = false;
|
||||||
|
public bool IsRefreshing { get; set; }
|
||||||
|
|
||||||
protected override async void OnAppearing()
|
protected override async void OnAppearing()
|
||||||
{
|
{
|
||||||
base.OnAppearing();
|
base.OnAppearing();
|
||||||
|
|
||||||
CrossNFC.Legacy = false;
|
CrossNFC.Legacy = false;
|
||||||
if (CrossNFC.IsSupported)
|
if (CrossNFC.IsSupported)
|
||||||
{
|
{
|
||||||
if (!CrossNFC.Current.IsAvailable)
|
if (!CrossNFC.Current.IsAvailable)
|
||||||
await ShowAlert("NFC is not available");
|
await ShowAlert("NFC is not available");
|
||||||
|
|
||||||
if (!CrossNFC.Current.IsEnabled)
|
if (!CrossNFC.Current.IsEnabled)
|
||||||
await ShowAlert("NFC is disabled");
|
await ShowAlert("NFC is disabled");
|
||||||
|
|
||||||
@@ -29,6 +39,8 @@ public partial class NFCTestPage : ContentPage
|
|||||||
{
|
{
|
||||||
await ShowAlert("NFC is not available");
|
await ShowAlert("NFC is not available");
|
||||||
}
|
}
|
||||||
|
RefreshCommand = new Command(async () => await LoadNFCDataList());
|
||||||
|
BindingContext = this;
|
||||||
}
|
}
|
||||||
Task ShowAlert(string message, string title = null) => DisplayAlert(string.IsNullOrWhiteSpace(title) ? ALERT_TITLE : title, message, "OK");
|
Task ShowAlert(string message, string title = null) => DisplayAlert(string.IsNullOrWhiteSpace(title) ? ALERT_TITLE : title, message, "OK");
|
||||||
async Task AutoStartAsync()
|
async Task AutoStartAsync()
|
||||||
@@ -39,7 +51,7 @@ public partial class NFCTestPage : ContentPage
|
|||||||
}
|
}
|
||||||
async Task StartListeningIfNotiOS()
|
async Task StartListeningIfNotiOS()
|
||||||
{
|
{
|
||||||
|
|
||||||
await BeginListening();
|
await BeginListening();
|
||||||
}
|
}
|
||||||
async Task BeginListening()
|
async Task BeginListening()
|
||||||
@@ -64,23 +76,23 @@ public partial class NFCTestPage : ContentPage
|
|||||||
|
|
||||||
_eventsAlreadySubscribed = true;
|
_eventsAlreadySubscribed = true;
|
||||||
|
|
||||||
CrossNFC.Current.OnMessageReceived += Current_OnMessageReceived;
|
CrossNFC.Current.OnMessageReceived += Current_OnMessageReceived_NFCData;
|
||||||
//CrossNFC.Current.OnMessagePublished += Current_OnMessagePublished;
|
//CrossNFC.Current.OnMessagePublished += Current_OnMessagePublished;
|
||||||
//CrossNFC.Current.OnTagDiscovered += Current_OnTagDiscovered;
|
//CrossNFC.Current.OnTagDiscovered += Current_OnTagDiscovered;
|
||||||
//CrossNFC.Current.OnNfcStatusChanged += Current_OnNfcStatusChanged;
|
//CrossNFC.Current.OnNfcStatusChanged += Current_OnNfcStatusChanged;
|
||||||
//CrossNFC.Current.OnTagListeningStatusChanged += Current_OnTagListeningStatusChanged;
|
//CrossNFC.Current.OnTagListeningStatusChanged += Current_OnTagListeningStatusChanged;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
void UnsubscribeEvents()
|
void UnsubscribeEvents()
|
||||||
{
|
{
|
||||||
CrossNFC.Current.OnMessageReceived -= Current_OnMessageReceived;
|
CrossNFC.Current.OnMessageReceived -= Current_OnMessageReceived_NFCData;
|
||||||
//CrossNFC.Current.OnMessagePublished -= Current_OnMessagePublished;
|
//CrossNFC.Current.OnMessagePublished -= Current_OnMessagePublished;
|
||||||
//CrossNFC.Current.OnTagDiscovered -= Current_OnTagDiscovered;
|
//CrossNFC.Current.OnTagDiscovered -= Current_OnTagDiscovered;
|
||||||
//CrossNFC.Current.OnNfcStatusChanged -= Current_OnNfcStatusChanged;
|
//CrossNFC.Current.OnNfcStatusChanged -= Current_OnNfcStatusChanged;
|
||||||
//CrossNFC.Current.OnTagListeningStatusChanged -= Current_OnTagListeningStatusChanged;
|
//CrossNFC.Current.OnTagListeningStatusChanged -= Current_OnTagListeningStatusChanged;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
_eventsAlreadySubscribed = false;
|
_eventsAlreadySubscribed = false;
|
||||||
}
|
}
|
||||||
@@ -111,6 +123,42 @@ public partial class NFCTestPage : ContentPage
|
|||||||
await ShowAlert(GetMessage(first), title);
|
await ShowAlert(GetMessage(first), title);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
async void Current_OnMessageReceived_NFCData(ITagInfo tagInfo)
|
||||||
|
{
|
||||||
|
|
||||||
|
if (tagInfo == null)
|
||||||
|
{
|
||||||
|
await ShowAlert("No tag found");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Customized serial number
|
||||||
|
var identifier = tagInfo.Identifier;
|
||||||
|
var serialNumber = NFCUtils.ByteArrayToHexString(identifier, ":");
|
||||||
|
|
||||||
|
if (NFCDataList == null)
|
||||||
|
{
|
||||||
|
NFCDataList = new ObservableCollection<NFCData>();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
NFCDataList.Add(new NFCData()
|
||||||
|
{
|
||||||
|
SerialNumber = serialNumber,
|
||||||
|
DateReceived = $"{DateTime.Now.Date.ToShortDateString()} {DateTime.Now.ToLongTimeString()}"
|
||||||
|
});
|
||||||
|
|
||||||
|
NFCDataListCollection.ItemsSource = NFCDataList.OrderByDescending(o => o.DateReceived);
|
||||||
|
await LoadNFCDataList();
|
||||||
|
}
|
||||||
|
|
||||||
|
private async Task LoadNFCDataList()
|
||||||
|
{
|
||||||
|
IsRefreshing = true;
|
||||||
|
IsRefreshing = false;
|
||||||
|
OnPropertyChanged(nameof(IsRefreshing));
|
||||||
|
OnPropertyChanged(nameof(NFCDataList));
|
||||||
|
}
|
||||||
string GetMessage(NFCNdefRecord record)
|
string GetMessage(NFCNdefRecord record)
|
||||||
{
|
{
|
||||||
var message = $"Message: {record.Message}";
|
var message = $"Message: {record.Message}";
|
||||||
@@ -127,7 +175,8 @@ public partial class NFCTestPage : ContentPage
|
|||||||
|
|
||||||
return message;
|
return message;
|
||||||
}
|
}
|
||||||
protected override bool OnBackButtonPressed() {
|
protected override bool OnBackButtonPressed()
|
||||||
|
{
|
||||||
Shell.Current.GoToAsync("//MainPage");
|
Shell.Current.GoToAsync("//MainPage");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -96,7 +96,7 @@
|
|||||||
<MauiXaml Update="Pages\BaseStock\Equipments\EquipmentsPage.xaml">
|
<MauiXaml Update="Pages\BaseStock\Equipments\EquipmentsPage.xaml">
|
||||||
<Generator>MSBuild:Compile</Generator>
|
<Generator>MSBuild:Compile</Generator>
|
||||||
</MauiXaml>
|
</MauiXaml>
|
||||||
<MauiXaml Update="Pages\BaseStock\LocationsPage.xaml">
|
<MauiXaml Update="Pages\BaseStock\Locations\LocationsPage.xaml">
|
||||||
<Generator>MSBuild:Compile</Generator>
|
<Generator>MSBuild:Compile</Generator>
|
||||||
</MauiXaml>
|
</MauiXaml>
|
||||||
<MauiXaml Update="Pages\NFC\NFCTestPage.xaml">
|
<MauiXaml Update="Pages\NFC\NFCTestPage.xaml">
|
||||||
|
|||||||
Reference in New Issue
Block a user