public ScheduledWampConnection(IControlledWampConnection <TMessage> connection, IScheduler scheduler) { mConnection = connection; mScheduler = scheduler; mMessageArrived = GetEventHandler <WampMessageArrivedEventArgs <TMessage> > (x => mConnection.MessageArrived += x, x => mConnection.MessageArrived -= x); mConnectionOpen = GetEventHandler (x => mConnection.ConnectionOpen += x, x => mConnection.ConnectionOpen -= x); mConnectionClosed = GetEventHandler (x => mConnection.ConnectionClosed += x, x => mConnection.ConnectionClosed -= x); mConnectionError = GetEventHandler <WampConnectionErrorEventArgs> (x => mConnection.ConnectionError += x, x => mConnection.ConnectionError -= x); }
public override void ViewDidLoad() { base.ViewDidLoad (); // Set the Image inside the ImageView var imgView = new UIImageView (UIImage.FromBundle ("leaf.jpg")) { ContentMode = UIViewContentMode.Center }; // Set the scrollpad content size so it has plenty of room to scroll (Image Size) scrollPad.ContentSize = imgView.Bounds.Size; scrollPad.AddSubview (imgView); // Subscribe to normal event handler so when ScrollView is Decelerating // this will be called scrollPad.DraggingEnded += (object sender, DraggingEventArgs e) => { if (e.Decelerate == true) { Console.WriteLine ("Dragging ended, Decelerate:{0}", e.Decelerate); InvokeOnMainThread (() => lblStatus.Text = "Try Again."); } }; // The Rx fun starts here, we will look at DraggingEnded event and look inside its DraggingEventArgs // to see if Decelerate == false, so only then we will "React" to the event. ScrollReactSource = Observable.FromEventPattern<DraggingEventArgs> (scrollPad, "DraggingEnded") .Where (ev => ev.EventArgs.Decelerate == false) .ToEventPattern (); ReactOnDecelerate += (sender, ev) => InvokeOnMainThread (() => { lblStatus.Text = "Cool you did it!! Rx Working!"; Console.WriteLine ("Dragging ended from Rx, Decelerate:false"); }); }
private static void ToEventPattern() { IObservable <EventPattern <MyEventArgs> > source = Observable.Interval(TimeSpan.FromSeconds(1)) .Select(it => new EventPattern <MyEventArgs>(null, new MyEventArgs(it))); IEventPatternSource <MyEventArgs> resultPatterns = source.ToEventPattern(); resultPatterns.OnNext += (sender, args) => Console.WriteLine(args.Value); }
protected override void OnCreate(Bundle bundle) { base.OnCreate (bundle); SetContentView (Resource.Layout.Main); var text = FindViewById<TextView> (Resource.Id.theText); var surface = FindViewById<View> (Resource.Id.theToucheable); triple_touch_source = Observable.FromEventPattern<View.TouchEventArgs> (surface, "Touch") .Where (ev => ev.EventArgs.Event.Action == MotionEventActions.Move) .Where (ev => ev.EventArgs.Event.PointerCount == 3) //.SubscribeOn (Application.SynchronizationContext) .ToEventPattern (); TripleTouch += (sender, ev) => this.RunOnUiThread (() => text.Text = GetEventDescription (ev.Event)); }
public ApiCall(IEventPatternSource <SuccessEventArgs> onSuccess, IEventPatternSource <TimeoutEventArgs> onTimeout) { OnSuccess = onSuccess; OnTimeout = onTimeout; }