VerificationFilePage(AddVerificationPage verificationPage, VerifyFileJson verifyItem, OpenFile file = null) : base("VerificationFilePage") { _verificationPage = verificationPage; _item = verifyItem ?? new VerifyFileJson(); AddTitleRow("Title"); AddHeaderRow("File"); Status.AddBusyView(AddButtonRow("Select", Select)); _link = AddEntryRow(null, "Link"); _link.SetDetailViewIcon(Icons.RowLink); _verifyView = new VerifyFileView(false); AddViewRow(_verifyView); if (verifyItem != null) { _link.Edit.Text = verifyItem.link; _fileName = verifyItem.name; _fileHash = verifyItem.GetHash(); _length = verifyItem.length; _verifyView.Update(verifyItem); } Status.Add(_link.Edit, T("LinkStatus"), (view, entry, newText, oldText) => { if (string.IsNullOrEmpty(newText)) { return(true); } return(newText.IsValdiUrl(true)); }); Status.Add(T("FileStatus"), (sv) => { return(!string.IsNullOrEmpty(_fileName) && _fileHash != null && _length > 0); }); AddFooterRow(); AddSubmitRow("Submit", Submit); if (file != null) { UIApp.Run(() => HashFile(file)); } }
async Task Verify(VerifyFileJson verifyFile) { using (var file = await UIApp.OpenFilePicker2()) { if (file.Valid) { IsBusy = true; Toast(".VerificationFilePage.Wait"); var valid = await Task.Run(() => VerifyFileJson.CheckHash(file.Stream, verifyFile.GetHash(), verifyFile.length)); IsBusy = false; await MessageAsync(valid? ".VerifyPage.Success" : ".VerifyPage.Failure"); } } }