package Ġcom . bad oo . ri bs . example . rib . dialog _ example Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . lifecycle . Lifecycle Ċ import Ġcom . bad oo . mv ic ore . android . lifecycle . start Stop Ċ import Ġcom . bad oo . ri bs . android . Text Ċ import Ġcom . bad oo . ri bs . core . Interactor Ċ import Ġcom . bad oo . ri bs . core . Router Ċ import Ġcom . bad oo . ri bs . dialog . Dialog Ċ import Ġcom . bad oo . ri bs . dialog . Dialog . Cancellation Policy . C ancellable Ċ import Ġcom . bad oo . ri bs . example . rib . dialog _ example . Dialog Example Router . Configuration Ċ import Ġcom . bad oo . ri bs . example . rib . dialog _ example . Dialog Example Router . Configuration . Content Ċ import Ġcom . bad oo . ri bs . example . rib . dialog _ example . Dialog Example Router . Configuration . Overlay Ċ import Ġcom . bad oo . ri bs . example . rib . dialog _ example . Dialog Example View . Event . Show Lazy Dialog Ċ import Ġcom . bad oo . ri bs . example . rib . dialog _ example . Dialog Example View . Event . Show R ib Dialog Clicked Ċ import Ġcom . bad oo . ri bs . example . rib . dialog _ example . Dialog Example View . Event . Show Simple Dialog Clicked Ċ import Ġcom . bad oo . ri bs . example . rib . dialog _ example . Dialog Example View . ViewModel Ċ import Ġcom . bad oo . ri bs . example . rib . dialog _ example . dialog . Lazy Dialog Ċ import Ġcom . bad oo . ri bs . example . rib . dialog _ example . dialog . R ib Dialog Ċ import Ġcom . bad oo . ri bs . example . rib . dialog _ example . dialog . Simple Dialog Ċ import Ġcom . bad oo . ri bs . example . rib . lo rem _ ip sum . Lorem Ip sum Ċ import Ġcom . jak ew h art on . rx relay 2 . Behavior Relay Ċ import Ġio . reactivex . functions . Consumer Ċ Ċ class ĠDialog Example Interactor ( ĊĠĠĠ ĠsavedInstanceState : ĠBundle ?, ĊĠĠĠ Ġprivate Ġval Ġrouter : ĠRouter < Configuration , ĠNothing , ĠContent , ĠOverlay , ĠDialog Example View >, ĊĠĠĠ Ġprivate Ġval Ġsimple Dialog : ĠSimple Dialog , ĊĠĠĠ Ġprivate Ġval Ġlazy Dialog : ĠLazy Dialog , ĊĠĠĠ Ġprivate Ġval Ġ rib Dialog : ĠR ib Dialog Ċ ) Ġ: ĠInter actor < Dialog Example View >( ĊĠĠĠ ĠsavedInstanceState Ġ= ĠsavedInstanceState , ĊĠĠĠ Ġdis pos ables Ġ= Ġnull Ċ ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġdummy View Input Ġ= ĠBehavior Relay . create Default ( ĊĠĠĠĠĠĠĠ ĠViewModel (" Dialog Ġexamples ") ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠDialog Example View , Ġview Lifecycle : ĠLifecycle ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview Lifecycle . start Stop Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbind ( dummy View Input Ġto Ġview ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbind ( view Ġto Ġview Event Consumer ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbind ( simple Dialog Ġto Ġdialog Event Consumer ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbind ( lazy Dialog Ġto Ġdialog Event Consumer ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbind ( rib Dialog Ġto Ġdialog Event Consumer ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġview Event Consumer : ĠConsumer < Dialog Example View . Event > Ġ= ĠConsumer Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠShow Simple Dialog Clicked Ġ-> Ġrouter . push Overlay ( Overlay . Simple Dialog ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠShow Lazy Dialog Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit Lazy Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrouter . push Overlay ( Overlay . Lazy Dialog ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠShow R ib Dialog Clicked Ġ-> Ġrouter . push Overlay ( Overlay . R ib Dialog ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Lazy Dialog () Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( lazy Dialog ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= ĠText . Plain (" Lazy Ġdialog Ġtitle ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Ġ= ĠText . Plain (" Lazy Ġdialog Ġmessage ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuttons Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġneutral ( Text . Plain (" Lazy Ġneutral Ġbutton "), ĠDialog . Event . Neutral ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcancellation Policy Ġ= ĠC ancellable ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent Ġ= ĠDialog . Event . Cancelled , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcancel On Touch Outside Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġdialog Event Consumer Ġ: ĠConsumer < Dialog . Event > Ġ= ĠConsumer Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDialog . Event . Positive Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdummy View Input . accept ( ViewModel (" Dialog Ġ- ĠPositive Ġclicked ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDialog . Event . Negative Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdummy View Input . accept ( ViewModel (" Dialog Ġ- ĠNegative Ġclicked ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDialog . Event . Neutral Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdummy View Input . accept ( ViewModel (" Dialog Ġ- ĠNe utral Ġclicked ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDialog . Event . Cancelled Ġ-> { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdummy View Input . accept ( ViewModel (" Dialog Ġ- ĠCancel led ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġval Ġlorem Ip sum Output Consumer Ġ: ĠConsumer < Lorem Ip sum . Output > Ġ= ĠConsumer Ġ{ ĊĠĠĠĠĠĠĠ Ġdummy View Input . accept ( ViewModel (" Button Ġin ĠLorem ĠIpsum ĠR IB Ġclicked ")) ĊĠĠĠĠĠĠĠ Ġrouter . pop Back Stack () ĊĠĠĠ Ġ} Ċ } Ċ