Created
April 24, 2017 19:05
-
-
Save fbencosme/515da117768db32269b2f161fb912849 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public static class UiExtensions | |
{ | |
public static IObservable<Keycode> RxKeyPressed(this EditText tv, bool ignoreBackKey = false) => | |
Observable.Create((IObserver<Keycode> obs) => { | |
tv.SetOnKeyListener(new KeyUpPressedListener(obs, ignoreBackKey)); | |
return () => tv.SetOnKeyListener(null); | |
}); | |
public static IObservable<string> RxTextChanged (this TextView tv, int dueTimeMilliseconds = 500) => | |
FromEventPattern<TextChangedEventArgs> ( | |
ev => tv.TextChanged += ev, | |
ev => tv.TextChanged -= ev | |
).Select(_ => _.EventArgs.Text.ToString()) | |
.Restrict(dueTimeMilliseconds); | |
public static IObservable<Unit> RxClick(this View v) => | |
FromEventPattern( | |
ev => v.Click += ev, | |
ev => v.Click -= ev | |
).Select(_ => Unit.Default); | |
public static IObservable<int> RxSelectedItem(this Spinner s) => | |
FromEventPattern<AdapterView.ItemSelectedEventArgs>( | |
ev => s.ItemSelected += ev, | |
ev => s.ItemSelected -= ev | |
).Select(_=> (_.Sender as Spinner).SelectedItemPosition); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment