package Ġio . pet ros . prices . presentation . feature . prices Ċ Ċ import Ġandroid . arch . lifecycle . Observer Ċ import Ġandroid . os . Bundle Ċ import Ġio . pet ros . prices . R Ċ import Ġio . pet ros . prices . domain . model . instrument . Instrument Ċ import Ġio . pet ros . prices . presentation . feature . Base Activity Ċ import Ġio . pet ros . prices . presentation . feature . prices . listener . Subscription Callback Ċ import Ġio . pet ros . prices . presentation . feature . prices . view . Instrument View Ċ import Ġkotlinx . android . synt hetic . main . activity _ instrument s .* Ċ Ċ @ Suppress (" Too Many Functions ") Ċ class ĠInstrument s Activity Ġ: ĠBase Activity < Instrument s Activity ViewModel >(), ĠSubscription Callback Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġinit Instrument s () ĊĠĠĠĠĠĠĠ Ġinit Observer s () ĊĠĠĠĠĠĠĠ Ġsubscribe For Updates () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĠV IE WS Ġ*/ ĊĊĠĠĠ Ġprivate Ġfun Ġinit Instrument s () Ġ{ ĊĠĠĠĠĠĠĠ Ġbtn _ add . setOnClickListener Ġ{ Ġadd Instrument () Ġ} ĊĠĠĠĠĠĠĠ Ġadd Instrument () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Instrument () Ġ{ ĊĠĠĠĠĠĠĠ Ġll _ instrument s . addView ( Instrument View ( this )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĠOB SERVER S Ġ*/ ĊĊĠĠĠ Ġprivate Ġfun Ġinit Observer s () Ġ{ ĊĠĠĠĠĠĠĠ Ġobserve Instrument s () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġobserve Instrument s () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . instrument Observable . observe ( this , ĠObserver Ġ{ Ġit Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit ?. let Ġ{ Ġcheck AndUpdate Instrument ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" Nested Block Depth ") ĊĠĠĠ Ġprivate Ġfun Ġcheck AndUpdate Instrument ( instrument : ĠInstrument ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( index Ġin Ġ 0 .. ll _ instrument s . child Count ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinstrument View Ġ= Ġll _ instrument s . getChild At ( index ) Ġas ? ĠInstrument View ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinstrument View ?. let Ġ{ Ġif Ġ( it . matches Is in ( instrument )) Ġit . bind ( instrument ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĠDATA ĠLO ADING Ġ*/ ĊĊĠĠĠ Ġprivate Ġfun Ġsubscribe For Updates () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . subscribe For Instrument Updates () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĠCALL BACK S Ġ*/ ĊĊĠĠĠ Ġoverride Ġfun Ġon Subscribe ( isin : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . subscribe To Instrument ( isin ) ĊĠĠĠĠĠĠĠ Ġadd Instrument () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Un subscribe ( isin : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . unsubscribe From Instrument ( isin ) ĊĠĠĠĠĠĠĠ Ġadd Instrument () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* ĠCONTRACT Ġ*/ ĊĊĠĠĠ Ġoverride Ġfun Ġconstruct ContentView () Ġ= ĠR . layout . activity _ instrument s ĊĊĠĠĠ Ġoverride Ġfun Ġconstruct ViewModel () Ġ= ĠInstrument s Activity ViewModel :: class . java Ċ Ċ } Ċ