public void ItemScannedAction(QrMessage message) { try { var qrId = message.ParseQrCode(); var activeScanningMethod = appStorage.GetScanningAction(); if (activeScanningMethod == ScanningAction.RelocateItem) { Boolean done = false; Device.BeginInvokeOnMainThread(async() => { await NavigateFromMenu((int)MenuItemType.RelocateItems); done = true; }); while (!done) { // Wait for the navigate to complete. } } if (Detail.GetType() == typeof(NavigationPage)) { var currentPage = ((NavigationPage)Detail).CurrentPage; if (currentPage.GetType() == typeof(UpdateMdAssignedItemPage)) { ((UpdateMdAssignedItemPage)currentPage).UpdatedScannedItem(qrId); return; } var root = ((NavigationPage)Detail).RootPage; if (root.GetType() == typeof(MultiItemUpdatePage)) { ((MultiItemUpdatePage)root).AddQrId(qrId); return; } } var detailsModel = new ItemDetailViewModel(); detailsModel.loadFromQrId(qrId); var detailsPage = ItemDetailPage.CreateItemDetailPage(detailsModel); var newPage = new NavigationPage(detailsPage); Device.BeginInvokeOnMainThread(async() => { await NavigateToNewPageFromApp(newPage); }); } catch (Exception ex) { var exMessage = CdbApiFactory.ParseApiException(ex); Debug.WriteLine(exMessage); Device.BeginInvokeOnMainThread(async() => { await DisplayAlert(exMessage.SimpleName, exMessage.Message, "OK"); }); } }
public override bool OnKeyUp([GeneratedEnum] Keycode keyCode, KeyEvent e) { var currentKeyChar = e.DisplayLabel; if (char.IsLetterOrDigit(currentKeyChar) || currentKeyChar.Equals('=') || keyCode == Keycode.Enter) { var currentKey = currentKeyChar + ""; if (QRIDtrigger.Equals(PreviousKeyStroke)) { if (keyCode == Keycode.Enter) { var topic = QrMessage.MESSAGE_SCANNED_TOPIC; var type = QrMessage.NUMERIC_INPUT_CODETYPE; var message = new QrMessage(type, Code); MessagingCenter.Send <QrMessage>(message, topic); } int result = -1; if (int.TryParse(currentKey, out result)) { Code += result; } else { PreviousKeyStroke = ""; Code = ""; } } else { if (QRIDtrigger.StartsWith(PreviousKeyStroke)) { PreviousKeyStroke += currentKey; } else { PreviousKeyStroke = currentKey; Code = ""; } } } //process key press return(base.OnKeyUp(keyCode, e)); }
void scanner_Data(object sender, Scanner.DataEventArgs e) { ScanDataCollection scanDataCollection = e.P0; if ((scanDataCollection != null) && (scanDataCollection.Result == ScannerResults.Success)) { IList <ScanDataCollection.ScanData> scanData = scanDataCollection.GetScanData(); foreach (ScanDataCollection.ScanData data in scanData) { Console.WriteLine(data.LabelType + " : " + data.Data); var topic = QrMessage.MESSAGE_SCANNED_TOPIC; var message = new QrMessage(data.LabelType.ToString(), data.Data); MessagingCenter.Send <QrMessage>(message, topic); } } }
async void TypeQR_Clicked(System.Object sender, System.EventArgs e) { string result = await DisplayPromptAsync("Type QRID", "Enter Component QR Code:", initialValue : "", maxLength : 9, keyboard : Keyboard.Numeric); QrMessage.SubmitTypedQRIDResult(result); }