package Ġch . r my . android . http _ shortcuts . activities . editor . pr ere quest Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . widget . EditText Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġch . r my . android . http _ shortcuts . R Ċ import Ġch . r my . android . http _ shortcuts . activities . Base Activity Ċ import Ġch . r my . android . http _ shortcuts . extensions . attach To Ċ import Ġch . r my . android . http _ shortcuts . extensions . bind ViewModel Ċ import Ġch . r my . android . http _ shortcuts . extensions . observe Text Changes Ċ import Ġch . r my . android . http _ shortcuts . extensions . setText S af ely Ċ import Ġch . r my . android . http _ shortcuts . utils . Base Intent Builder Ċ import Ġch . r my . android . http _ shortcuts . variables . Variable Placeholder Provider Ċ import Ġio . reactivex . Comp letable Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġk ot ter knife . bind View Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ class ĠPre Request Activity Ġ: ĠBase Activity () Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠviewModel : ĠPre Request ViewModel Ġby Ġbind ViewModel () ĊĠĠĠ Ġprivate Ġval Ġshortcut Data Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . shortcut ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġval Ġvariables Data Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . variables ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġval Ġvariable Placeholder Provider Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠVariable Placeholder Provider ( variables Data ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġprepare Code Input : ĠEditText Ġby Ġbind View ( R . id . input _ code _ prepare ) ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ pre _ request ) ĊĊĠĠĠĠĠĠĠ Ġinit Views () ĊĠĠĠĠĠĠĠ Ġbind Views To ViewModel () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Views () Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbind Views To ViewModel () Ġ{ ĊĠĠĠĠĠĠĠ Ġshortcut Data . observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Shortcut Views () ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġbind Text ChangeListener ( prepare Code Input ) Ġ{ Ġshortcut Data . value ?. code On Prepare Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbind Text ChangeListener ( textView : ĠEditText , Ġcurrent Value Provider : Ġ() Ġ-> ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ ĠtextView . observe Text Changes () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. de bounce ( 3 0 0 , ĠTimeUnit . MILLISECONDS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . toString () Ġ!= Ġcurrent Value Provider . invoke () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. concat Map Comp letable Ġ{ Ġupdate ViewModel From Views () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. attach To ( destroy er ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate ViewModel From Views (): ĠComp letable Ġ= ĊĠĠĠĠĠĠĠ ĠviewModel . set Code On Prepare ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcode Ġ= Ġprepare Code Input . text . toString () ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Shortcut Views () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġshortcut Ġ= Ġshortcut Data . value Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġprepare Code Input . setText S af ely ( shortcut . code On Prepare ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠIntent Builder ( context : ĠContext ) Ġ: ĠBase Intent Builder ( context , ĠPre Request Activity :: class . java ) Ċ Ċ }