package Ġcom . ton ss er . k action . sample Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . widget . Toast Ċ import Ġcom . jak ew h art on . r xb ind ing 2 . widget . Rx Compound Button Ċ import Ġcom . ton ss er . k action . K Action Ċ import Ġio . reactivex . Observable Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . dis pos ables . Composite Disposable Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġcomposite Disposable Ġ= ĠComposite Disposable () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠCreating Ġan Ġaction Ġwhich Ġdepending Ġon Ġthe Ġinput Ġ( clicked Ġitem Ġid ) Ġreturns Ġa Ġmessage ĊĠĠĠĠĠĠĠ Ġval Ġsample Action : ĠK Action < Int , ĠString > Ġ= ĠK Action ({ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . navigation _ home Ġ-> Ġ" Home " ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . navigation _ dashboard Ġ-> Ġ" Dashboard " ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . navigation _ notifications Ġ-> Ġ" Notifications " ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ" Undefined " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠObservable . just ( message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠ Ġ}, ĠRx Compound Button . checked Changes ( checkbox ). subscribe On ( Android Schedulers . main Thread ()) Ġ/* ĠOptional : ĠOnly Ġexecute Ġif Ġcheckbox Ġis Ġchecked Ġ*/) ĊĊĠĠĠĠĠĠĠ Ġ// ĠSubscribe Ġto Ġoutputs , Ġset Ġthe Ġtext Ġdepending Ġon Ġthe Ġreturned Ġmessage ĊĠĠĠĠĠĠĠ Ġcomposite Disposable . add ( sample Action . outputs . subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage _ tv . text Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġ// ĠSubscribe Ġto Ġerrors ĊĠĠĠĠĠĠĠ Ġcomposite Disposable . add ( sample Action . errors . subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage _ tv . text Ġ= Ġit . message ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġ// ĠSubscribe Ġto Ġthe Ġexecuting Ġstate , Ġthis Ġis Ġwhere Ġwould Ġnormally Ġattach Ġa ĠProgress View 's Ġvisibility Ġto ĊĠĠĠĠĠĠĠ Ġ// Ġa Ġlong Ġrunning Ġaction . ĊĠĠĠĠĠĠĠ Ġcomposite Disposable . add ( sample Action . exec uting . subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" Is Ġexecuting Ġ$ it ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġ// ĠSubscribe Ġto Ġcancel Ġevent ĊĠĠĠĠĠĠĠ Ġcomposite Disposable . add ( sample Action . cancel . subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage _ tv . text Ġ= Ġit . message ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġ// ĠThe ĠBottom Navigation View Ġwill Ġreturn Ġexecute Ġthe Ġsample Action Ġwith Ġthe Ġid Ġof Ġthe Ġclicked Ġitem ĊĠĠĠĠĠĠĠ Ġnavigation . setOn Navigation ItemSelected Listener ({ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsample Action . execute ( it . itemId ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ setOn Navigation ItemSelected Listener Ġtrue ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġcomposite Disposable . dispose () ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠ Ġ} Ċ } Ċ