You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
98 lines
2.5 KiB
98 lines
2.5 KiB
using System.Reflection;
|
|
using CDPShared;
|
|
using CircleViewerMaui.Popups;
|
|
using CommunityToolkit.Maui.Views;
|
|
using Syncfusion.Maui.PdfViewer;
|
|
|
|
namespace CircleViewerMaui;
|
|
|
|
public partial class MainPage : ContentPage
|
|
{
|
|
int count = 0;
|
|
// private CDPWorker _cdp;
|
|
Timer _timer;
|
|
Boolean _bConnected = false;
|
|
|
|
public MainPage()
|
|
{
|
|
using (LogMethod.Log(MethodBase.GetCurrentMethod().ReflectedType.Name))
|
|
{
|
|
InitializeComponent();
|
|
_timer = new Timer(IsReady, null, 250, 250);
|
|
}
|
|
}
|
|
|
|
void IsReady(object state)
|
|
{
|
|
if (_bConnected != App.CDP.Ready)
|
|
{
|
|
_bConnected = App.CDP.Ready;
|
|
OnReady();
|
|
_timer = null;
|
|
}
|
|
}
|
|
|
|
void OnReady()
|
|
{
|
|
// Device.InvokeOnMainThreadAsync(() => { lblConnected.Text = "Connected"; });
|
|
}
|
|
|
|
public async Task<string> OpenCirFileAsync()
|
|
{
|
|
var fileTypes = new FilePickerFileType(new Dictionary<DevicePlatform, IEnumerable<string>>
|
|
{
|
|
{ DevicePlatform.iOS, new[] { "public.cir" } },
|
|
{ DevicePlatform.Android, new[] { "application/cir" } },
|
|
{ DevicePlatform.WinUI, new[] { ".cir" } },
|
|
{ DevicePlatform.macOS, new[] { ".cir" } }
|
|
});
|
|
|
|
var options = new PickOptions
|
|
{
|
|
FileTypes = fileTypes,
|
|
PickerTitle = "Open .cir File"
|
|
};
|
|
|
|
var result = await FilePicker.PickAsync(options);
|
|
|
|
if (result != null)
|
|
{
|
|
return result.FullPath;
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
async Task TestPopup()
|
|
{
|
|
var popup = new NewInvite("AS3RT3", "POEW");
|
|
popup.CanBeDismissedByTappingOutsideOfPopup = false;
|
|
this.ShowPopup(popup);
|
|
}
|
|
|
|
private async void onOpenClicked(object sender, EventArgs e)
|
|
{
|
|
// await TestPopup();
|
|
|
|
var filePath = await OpenCirFileAsync();
|
|
if (filePath != null)
|
|
{
|
|
ViewFileAsync(filePath);
|
|
}
|
|
}
|
|
|
|
async void ViewFileAsync(string fileToLoad)
|
|
{
|
|
using (LogMethod.Log(MethodBase.GetCurrentMethod().ReflectedType.Name))
|
|
{
|
|
var result = await App.CDP.Decrypt(fileToLoad);
|
|
if (result.Status.Result.GetValueOrDefault(false))
|
|
{
|
|
byte[] buf = Convert.FromBase64String(result.DecryptedData);
|
|
string ext = Path.GetExtension(result.FileName);
|
|
PdfViewer.DocumentSource = new MemoryStream(buf);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|