protected abstract void NewIntent(Cirrious.CrossCore.Core.MvxValueEventArgs <Intent> e);
protected override async void NewIntent(Cirrious.CrossCore.Core.MvxValueEventArgs <Intent> e) { WriteResult writeResult = new WriteResult(); writeResult.ReasonForFailure = FailureReasons.Unkown; var id = GetIdFromTag(e.Value); var intent = e.Value; Tag tag = (Tag)intent.GetParcelableExtra(NfcAdapter.ExtraTag); Ndef ndef = Ndef.Get(tag); if (ndef != null) { ndef.Connect(); if (!ndef.IsWritable) { writeResult.ReasonForFailure = FailureReasons.TagReadOnly; _taskCompletionSource.TrySetResult(writeResult); return; } byte[] message = _messageToWrite.ToByteArray(); if (ndef.MaxSize < message.Length) { writeResult.ReasonForFailure = FailureReasons.TagTooSmall; _taskCompletionSource.TrySetResult(writeResult); return; } try { await ndef.WriteNdefMessageAsync(new Android.Nfc.NdefMessage(message)); writeResult.ReasonForFailure = FailureReasons.DidNotFail; writeResult.NFCTag = new NFCTag() { Id = id }; _taskCompletionSource.TrySetResult(writeResult); return; } catch (TagLostException tagLost) { writeResult.ReasonForFailure = FailureReasons.TagLostDuringWrite; _taskCompletionSource.TrySetResult(writeResult); return; } catch (Exception err) { Mvx.Error("Error writing Tag: " + err.ToString()); writeResult.ReasonForFailure = FailureReasons.ErrorDuringWrite; _taskCompletionSource.TrySetResult(writeResult); return; } } else { writeResult.ReasonForFailure = FailureReasons.UnableToFormatTag; _taskCompletionSource.TrySetResult(writeResult); return; } }
/// <summary> /// This is fired when a NFC tag is scanned (and we are doing foreground scanning) /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void droidEvents_NewIntentCalled(object sender, Cirrious.CrossCore.Core.MvxValueEventArgs <Intent> e) { NewIntent(e); }
public override void HandleViewDidDisappearCalled(object sender, Cirrious.CrossCore.Core.MvxValueEventArgs <bool> e) { Console.WriteLine(this.ViewController.GetType().Name + ": ViewDidDisappear"); }