package Ġtech . sk ot . tools . generation . view legacy Ċ Ċ import Ġcom . squareup . kotlin po et .* Ċ import Ġtech . sk ot . tools . generation .* Ċ Ċ fun ĠGenerator . generate View Legacy Injector Impl ( module : ĠString ) Ġ{ ĊĊĠĠĠ ĠFile Spec . builder ( view Injector Impl . packageName , Ġview Injector Impl . simple Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Type ( Type Spec . class Builder ( view Injector Impl . simple Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Super interface ( view Injector Interface ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Functions ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomponents . map Ġ{ Ġit . as View Legacy Injection ( this ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomponents . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Import ClassName ( it . proxy ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . sub Components . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Import TypeName ( it . type . to Proxy ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. writeTo ( generated Android Sources ( module )) Ċ } Ċ Ċ fun ĠComponent Def . as View Legacy Injection ( generator : ĠGenerator ) Ġ= ĊĠĠĠĠĠĠĠ ĠFun Spec . builder ( name . de capitalize ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Modifiers ( K Modifier . OVERRIDE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Screen ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Parameter ( name Ġ= ĠGenerator . VIS IBILITY _ LIST ENER _ VAR _ NAME , Ġtype Ġ= ĠFramework ClassNames . sk Vis ib l ity Listener ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsub Components . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Parameter ( it . as Param ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfix Properties . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Parameter ( it . as Param ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmutable Properties . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Parameter ( it . initial (). as Param ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. returns ( vc ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Code ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" return Ġ${ proxy (). simple Name } (${ if Ġ( is Screen ) Ġ"${ Generator . VIS IBILITY _ LIST ENER _ VAR _ NAME }," Ġelse Ġ"" } Ġ${ ( sub Components . map Ġ{ Ġ"${ it . name } Ġas Ġ${ it . type . to Proxy (). simple Name () }" Ġ} Ġ+ Ġ( fix Properties . map Ġ{ Ġit . name Ġ} Ġ+ Ġmutable Properties . map Ġ{ Ġit . initial (). name Ġ})). join ToString ( separator Ġ= Ġ", ") }) ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build ()