package Ġcom . android . sample . feature . search . ui . detail Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġcom . android . sample . common . base . Base Fragment Ċ import Ġcom . android . sample . common . util . Resource Ċ import Ġcom . android . sample . core . response . Character Ċ import Ġcom . android . sample . feature . search . BR Ċ import Ġcom . android . sample . feature . search . R Ċ import Ġcom . android . sample . feature . search . databinding . Fragment Detail Binding Ċ import Ġcom . android . sample . feature . search . di . D agger Detail Component Ċ import Ġcom . android . sample . feature . search . di . Detail Module Ċ import Ġcom . android . sample . feature . search . model . Spec ie Wrapper . Companion . getUn Available Spec ie Ċ import Ġcom . android . sample . feature . search . view model . Detail ViewModel Ċ import Ġcom . android . sample . star w ars . Star W ars Application Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠDetail Fragment Ġ: ĠBase Fragment < Detail ViewModel , ĠFragment Detail Binding >( ĊĠĠĠ ĠR . layout . fragment _ detail Ċ ) Ġ{ ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġcharacter : ĠCharacter ĊĊĠĠĠ Ġoverride Ġval Ġvm Variable Id Ġ= ĠBR . vm ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠInitialize Ġdagger Ġinjection Ġdependency Ġgraph . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon Init DependencyInjection () Ġ{ ĊĠĠĠĠĠĠĠ ĠD agger Detail Component ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. core Component ( Star W ars Application . core Component ( require Context ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. detail Module ( Detail Module ( this )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. inject ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?, ĊĠĠĠ Ġ): ĠView Ġ{ ĊĊĠĠĠĠĠĠĠ Ġsuper . onCreate View ( in flater , Ġcontainer , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġbinding . character Ġ= Ġthis @ Detail Fragment . character ĊĊĠĠĠĠĠĠĠ Ġval Ġfilm Adapter Ġ= ĠFil m Adapter () ĊĊĠĠĠĠĠĠĠ Ġwith ( binding ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoolbar Character Details . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Navigation OnClickListener Ġ{ Ġfind Nav Controller (). navigate Up () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġre cyclerView Film . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Has Fixed Size ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= Ġfilm Adapter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . live Data . observe ( view Lifecycle Owner , Ġ{ Ġresource Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( resource Ġis ĠResource . Success ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspecies Ġ= Ġresource . data ?. species ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspec ie Ġ= Ġif Ġ( species . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Un Available Spec ie ( require Context ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspecies [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfilm Adapter . submit List ( resource . data ?. fil ms ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} Ċ }