package Ġcom . mobile j azz . sample . screens . detail Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . Html Ċ import Ġandroid . view . MenuItem Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġcom . mobile j azz . har mony . kotlin . android . helpers . Localized Strings Ċ import Ġcom . mobile j azz . har mony . kotlin . android . threading . extension . onComplete Ui Ċ import Ġcom . mobile j azz . sample . R Ċ import Ġcom . mobile j azz . sample . core . domain . inter actor . Get Items ById Interactor Ċ import Ġcom . mobile j azz . sample . core . domain . model . Item Ċ import Ġcom . mobile j azz . sample . screens . Items Adapter Ċ import Ġdagger . android . Android Injection Ċ import Ġkotlinx . android . synt hetic . main . activity _ item _ detail .* Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠItem Detail Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġconst Ġval ĠITEM _ KEY Ġ= Ġ" item - key " ĊĊĠĠĠ Ġfun Ġget Intent ( context : ĠContext , Ġitem : ĠItem ): ĠIntent Ġ= ĠIntent ( context , ĠItem Detail Activity :: class . java ). apply Ġ{ Ġput Extra ( ITEM _ KEY , Ġitem ) Ġ} ĊĠ Ġ} ĊĊĠ Ġ@ Inject ĊĠ Ġlateinit Ġvar Ġget Items ById Interactor : ĠGet Items ById Interactor ĊĊĠ Ġ@ Inject ĊĠ Ġlateinit Ġvar Ġlocalized Strings : ĠLocal ized Strings ĊĊĠ Ġprivate Ġval Ġadapter Ġby Ġlazy Ġ{ ĊĠĠĠ ĠItems Adapter ( listener Ġ= Ġ{ ĊĠĠĠĠĠ Ġ// ĠNothing Ġto Ġdo ĊĠĠĠ Ġ}, Ġdisplay All Content Ġ= Ġtrue ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠ ĠAndroid Injection . inject ( this ) ĊĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠ ĠsetContentView ( R . layout . activity _ item _ detail ) ĊĊĠĠĠ Ġtitle Ġ= Ġ" H acker ĠNews " ĊĊĠĠĠ Ġsupport ActionBar ?. set Display Home As Up Enabled ( true ) ĊĊĊĠĠĠ Ġval Ġitem Ġ= Ġintent . extras ?. get ( ITEM _ KEY ) Ġas ĠItem ĊĊĠĠĠ Ġactivity _ detail _ item _ title _ tv . text Ġ= Ġitem . title ĊĊĊĠĠĠ Ġactivity _ detail _ items _ rv . layout Manager Ġ= ĠLinearLayoutManager ( this ) ĊĠĠĠ Ġactivity _ detail _ items _ rv . adapter Ġ= Ġadapter ĊĊĠĠĠ Ġactivity _ detail _ item _ by _ tv . text Ġ= Ġ" by : Ġ${ item . by }" ĊĊĠĠĠ Ġitem . text ?. let Ġ{ ĊĠĠĠĠĠ Ġactivity _ detail _ item _ description _ tv . text Ġ= ĠHtml . from Html ( it ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġitem . k ids ?. let Ġ{ ĊĠĠĠĠĠ Ġactivity _ detail _ items _ comments _ tv . text Ġ= Ġlocalized Strings . get ( R . string . loading ) ĊĊĠĠĠĠĠ Ġload Comments ( it ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠ Ġandroid . R . id . home Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġelse Ġ-> Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĊĠ Ġprivate Ġfun Ġload Comments ( ids : ĠList < Int >) Ġ{ ĊĠĠĠ Ġget Items ById Interactor ( ids ). onComplete Ui ( on Success Ġ= Ġ{ ĊĠĠĠĠĠ Ġadapter . reload Data ( it ) ĊĊĠĠĠĠĠ Ġactivity _ detail _ items _ comments _ tv . text Ġ= Ġ"${ ids . size } Ġ" Ġ+ Ġlocalized Strings . get Pl ural ( R . plurals . comments , Ġids . size ) ĊĠĠĠ Ġ}, Ġon Failure Ġ= Ġ{ ĊĠĠĠĠĠ Ġ// ĠNothing Ġto Ġdo ĊĠĠĠ Ġ}) ĊĠ Ġ} Ċ Ċ } Ċ