package Ġcom . openj its u . android . openj its u . ui . explore . detail Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . openj its u . android . openj its u . Application Ċ import Ġcom . openj its u . android . openj its u . R Ċ import Ġcom . openj its u . android . openj its u . data . repositories . Comment Repository Ċ import Ġkotlinx . android . synt hetic . main . explore _ list .* Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . launch Ċ import Ġkotlinx . coroutines . with Context Ċ import Ġjavax . inject . Inject Ċ Ċ /** Ċ Ġ* ĠA Ġfragment Ġrepresenting Ġa Ġlist Ġof ĠItems . Ċ Ġ* ĠActiv ities Ġcontaining Ġthis Ġfragment ĠMUST Ġimplement Ġthe Ċ Ġ* Ġ[ Comment Fragment . On List Fragment Interaction Listener ] Ġinterface . Ċ Ġ*/ Ċ class ĠComment Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġcomment Repository : ĠComment Repository ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġcoroutine Scope : ĠCor outine Scope ĊĊĠĠĠ Ġprivate Ġvar Ġcolumn Count Ġ= Ġ 1 ĊĊĠĠĠ Ġprivate Ġvar Ġlistener : ĠOn List Fragment Interaction Listener ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠInject Ġthe Ġdependencies ĊĠĠĠĠĠĠĠ ĠApplication . app Component . inject ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġinflater . inflate ( R . layout . fragment _ comment _ sheet , Ġcontainer , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġview . findViewById < RecyclerView >( R . id . comment _ list ) ĊĊĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= ĠComment RecyclerView Adapter ( emptyList (), Ġlistener ) ĊĠĠĠĠĠĠĠ Ġlist . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠ ĠApplication . app Component . inject ( adapter ) ĊĊĠĠĠĠĠĠĠ Ġ/* ĊĠĠĠĠĠĠĠĠ Ġ* ĠLaunch Ġa Ġnew ĠCo Routine Ġon Ġa Ġseper ate Ġthread Ġto Ġhandle Ġpassing Ġthe Ġdata ĊĠĠĠĠĠĠĠĠ Ġ* Ġretrieved Ġfrom Ġthe ĠRepository Ġto Ġthe Ġadapter ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġcoroutine Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitems Ġ= Ġwith Context ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġarguments ?. getString ( Explore Detail Fragment . ARG _ ITEM _ ID ) Ġ?: Ġ"- 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomment Repository . get Comments By Position Id ( id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitems . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i (" openj its u / data ", Ġ" Found Ġ" Ġ+ Ġitems . size Ġ+ Ġ" Ġitems !") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . replace Items ( items ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġview ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Attach ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( context ) ĊĠĠĠĠĠĠĠ Ġif Ġ( context Ġis ĠOn List Fragment Interaction Listener ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener Ġ= Ġcontext ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRuntimeException ( context . toString () Ġ+ Ġ" Ġmust Ġimplement ĠOn List Fragment Interaction Listener ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Detach () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Detach () ĊĠĠĠĠĠĠĠ Ġlistener Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġinterface Ġmust Ġbe Ġimplemented Ġby Ġactivities Ġthat Ġcontain Ġthis ĊĠĠĠĠ Ġ* Ġfragment Ġto Ġallow Ġan Ġinteraction Ġin Ġthis Ġfragment Ġto Ġbe Ġcommunic ated ĊĠĠĠĠ Ġ* Ġto Ġthe Ġactivity Ġand Ġpotentially Ġother Ġfragments Ġcontained Ġin Ġthat ĊĠĠĠĠ Ġ* Ġactivity . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠSee Ġthe ĠAndroid ĠTraining Ġlesson ĊĠĠĠĠ Ġ* Ġ[ Com munic ating Ġwith ĠOther ĠF rag ments ]( http :// developer . android . com / training / basics / fragments / com munic ating . html ) ĊĠĠĠĠ Ġ* Ġfor Ġmore Ġinformation . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinterface ĠOn List Fragment Interaction Listener Ċ } Ċ