package Ġcom . example . hell or x 3 Ċ Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġio . reactivex . Observable Ċ import Ġio . reactivex . rx kotlin . to Observable Ċ import Ġjava . util . concurrent . TimeUnit ĊĊ Ċ const Ġval ĠLOG Ġ= Ġ" rx kotlin -" Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ Ġplay With Filter () ĊĠĠĠĠĠĠĠ Ġplay With Distinct () ĊĠĠĠĠĠĠĠ Ġplay With ElementAt () ĊĠĠĠĠĠĠĠ Ġplay With Skip () ĊĠĠĠĠĠĠĠ Ġplay With De bounce () ĊĠĠĠĠĠĠĠ Ġplay With Throttle () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġplay With Filter () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsub Ġ= Ġ( 1 .. 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Observable () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġ% Ġ 2 Ġ== Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( LOG Ġ+ Ġ"- filter ", Ġit . toString ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsub . dispose () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġplay With Distinct () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsub Ġ= ĠarrayOf ( 2 , Ġ 3 , Ġ 3 , Ġ 3 , Ġ 4 , Ġ 8 , Ġ 1 1 , Ġ 1 1 , Ġ 1 1 , Ġ 1 9 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Observable () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. distinct () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( LOG Ġ+ Ġ"- distinct ", Ġit . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsub . dispose () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġplay With ElementAt () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsub Ġ= ĠarrayOf (" John ", Ġ" B udi ", Ġ" J oko ", Ġ" Sus an ", Ġ" D ew i ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Observable () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. elementAt ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( LOG Ġ+ Ġ"- elementAt ", Ġit . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsub . dispose () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġplay With Skip () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsub Ġ= Ġ( 1 .. 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Observable () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. skip ( 7 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( LOG Ġ+ Ġ"- skip ", Ġit . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsub . dispose () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġplay With De bounce () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsub Ġ= ĠObservable . create < Int > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . onNext ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . onNext ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠThread . sleep ( 6 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . onNext ( 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠThread . sleep ( 6 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . onNext ( 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . onNext ( 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . onNext ( 6 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠThread . sleep ( 6 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. de bounce ( 2 0 0 , ĠTimeUnit . MILLISECONDS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( LOG Ġ+ Ġ"- de bounce ", Ġit . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsub . dispose () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġplay With Throttle () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsub Ġ= ĠObservable . create < Int > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . onNext ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . onNext ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠThread . sleep ( 6 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . onNext ( 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠThread . sleep ( 6 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . onNext ( 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . onNext ( 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . onNext ( 6 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠThread . sleep ( 6 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. throttle First ( 1 0 0 0 , ĠTimeUnit . MILLISECONDS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( LOG Ġ+ Ġ"- throttle ", Ġit . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsub . dispose () ĊĠĠĠ Ġ} Ċ } Ċ