package Ġorg . phen oc raft . ui . clone Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . recyclerview . widget . Grid LayoutManager Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġorg . phen oc raft . R Ċ Ċ import Ġorg . phen oc raft . data . model . dummy . Dummy Content Ċ import Ġorg . phen oc raft . data . model . dummy . Dummy Content . Dummy Item Ċ Ċ /** Ċ Ġ* ĠA Ġfragment Ġrepresenting Ġa Ġlist Ġof ĠItems . Ċ Ġ* ĠActiv ities Ġcontaining Ġthis Ġfragment ĠMUST Ġimplement Ġthe Ċ Ġ* Ġ[ Cl oning Fragment . On List Fragment Interaction Listener ] Ġinterface . Ċ Ġ*/ Ċ class ĠCl oning Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġ// ĠTODO : ĠCustom ize Ġparameters ĊĠĠĠ Ġprivate Ġvar Ġcolumn Count Ġ= Ġ 1 ĊĊĠĠĠ Ġprivate Ġvar Ġlistener : ĠOn List Fragment Interaction Listener ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġarguments ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolumn Count Ġ= Ġit . getInt ( ARG _ COLUMN _ COUNT ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġinflater . inflate ( R . layout . fragment _ cl oning _ list , Ġcontainer , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠSet Ġthe Ġadapter ĊĠĠĠĠĠĠĠ Ġif Ġ( view Ġis ĠRecyclerView ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( view ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolumn Count Ġ<= Ġ 1 Ġ-> ĠLinearLayoutManager ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠGrid LayoutManager ( context , Ġcolumn Count ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= ĠCl oning RecyclerView Adapter ( Dummy Content . ITEMS , Ġlistener ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ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 Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠTODO : ĠUpdate Ġargument Ġtype Ġand Ġname ĊĠĠĠĠĠĠĠ Ġfun Ġon List Fragment Interaction ( item : ĠDummy Item ?) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// ĠTODO : ĠCustom ize Ġparameter Ġargument Ġnames ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠARG _ COLUMN _ COUNT Ġ= Ġ" column - count " ĊĊĠĠĠĠĠĠĠ Ġ// ĠTODO : ĠCustom ize Ġparameter Ġinitialization ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( column Count : ĠInt ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCl oning Fragment (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarguments Ġ= ĠBundle (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Int ( ARG _ COLUMN _ COUNT , Ġcolumn Count ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ