package Ġcom . ry bar stud ios . bucket list . fragment Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . List Fragment Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . ry bar stud ios . bucket list . R Ċ import Ġcom . ry bar stud ios . bucket list . adapter . Bucket Item RecyclerView Adapter Ċ import Ġcom . ry bar stud ios . bucket list . model . Bucket Item Ċ import Ġcom . ry bar stud ios . bucket list . model . Bucket ListItem Ċ import Ġkotlinx . android . synt hetic . main . fragment _ bucket _ item _ list .* Ċ Ċ // ĠTODO : ĠRename Ġparameter Ġarguments , Ġchoose Ġnames Ġthat Ġmatch Ċ // Ġthe Ġfragment Ġinitialization Ġparameters , Ġe . g . ĠARG _ ITEM _ NUMBER Ċ private Ġconst Ġval ĠARG _ PARAM 1 Ġ= Ġ" param 1 " Ċ private Ġconst Ġval ĠARG _ PARAM 2 Ġ= Ġ" param 2 " Ċ Ċ /** Ċ Ġ* ĠA Ġsimple Ġ[ Fragment ] Ġsubclass . Ċ Ġ* ĠActiv ities Ġthat Ġcontain Ġthis Ġfragment Ġmust Ġimplement Ġthe Ċ Ġ* Ġ[ List Fragment . On Movie List Fragment Interaction Listener ] Ġinterface Ċ Ġ* Ġto Ġhandle Ġinteraction Ġevents . Ċ Ġ* ĠUse Ġthe Ġ[ List Fragment . newInstance ] Ġfactory Ġmethod Ġto Ċ Ġ* Ġcreate Ġan Ġinstance Ġof Ġthis Ġfragment . Ċ Ġ* Ċ Ġ*/ Ċ class ĠBucket ItemList Fragment Ġ: ĠFragment () Ġ{ ĊĠĠĠ Ġ// ĠTODO : ĠRename Ġand Ġchange Ġtypes Ġof Ġparameters ĊĠĠĠ Ġprivate Ġvar Ġparam 1 : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġparam 2 : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġbucket ItemList Listener : ĠOn Bucket ItemList Fragment Interaction Listener ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġarguments ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparam 1 Ġ= Ġit . getString ( ARG _ PARAM 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparam 2 Ġ= Ġit . getString ( ARG _ PARAM 2 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠInf late Ġthe Ġlayout Ġfor Ġthis Ġfragment ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . fragment _ bucket _ item _ list , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCalled Ġimmediately Ġafter Ġ[. onCreate View ] ĊĠĠĠĠ Ġ* Ġhas Ġreturned , Ġbut Ġbefore Ġany Ġsaved Ġstate Ġhas Ġbeen Ġrestored Ġin Ġto Ġthe Ġview . ĊĠĠĠĠ Ġ* ĠThis Ġgives Ġsubclasses Ġa Ġchance Ġto Ġinitialize Ġthemselves Ġonce ĊĠĠĠĠ Ġ* Ġthey Ġknow Ġtheir Ġview Ġhierarchy Ġhas Ġbeen Ġcompletely Ġcreated . Ġ ĠThe Ġfragment 's ĊĠĠĠĠ Ġ* Ġview Ġhierarchy Ġis Ġnot Ġhowever Ġattached Ġto Ġits Ġparent Ġat Ġthis Ġpoint . ĊĠĠĠĠ Ġ* Ġ@ param Ġview ĠThe ĠView Ġreturned Ġby Ġ[. onCreate View ]. ĊĠĠĠĠ Ġ* Ġ@ param ĠsavedInstanceState ĠIf Ġnon - null , Ġthis Ġfragment Ġis Ġbeing Ġre - construct ed ĊĠĠĠĠ Ġ* Ġfrom Ġa Ġprevious Ġsaved Ġstate Ġas Ġgiven Ġhere . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĊĊĠĠĠĠĠĠĠ Ġbucket _ item _ list . set Has Fixed Size ( true ) ĊĠĠĠĠĠĠĠ Ġval Ġlayout Manager Ġ= ĠLinearLayoutManager ( context , ĠRecyclerView . VERTICAL , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġbucket _ item _ list . layout Manager Ġ= Ġlayout Manager ĊĠĠĠĠĠĠĠ Ġval Ġmovie ListAdapter Ġ= ĠBucket Item RecyclerView Adapter ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBucket ListItem . bucket ListItem , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbucket ItemList Listener ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġbucket _ item _ list . adapter Ġ= Ġmovie ListAdapter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Attach ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( context ) ĊĠĠĠĠĠĠĠ Ġif Ġ( context Ġis ĠOn Bucket ItemList Fragment Interaction Listener ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbucket ItemList Listener Ġ= Ġcontext ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRuntimeException ( context . toString () Ġ+ Ġ" Ġmust Ġimplement ĠOn Shopping List Fragment Interaction Listener ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Detach () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Detach () ĊĠĠĠĠĠĠĠ Ġbucket ItemList 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 Bucket ItemList Fragment Interaction Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Bucket ItemList Fragment Interaction ( item : ĠBucket Item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠUse Ġthis Ġfactory Ġmethod Ġto Ġcreate Ġa Ġnew Ġinstance Ġof ĊĠĠĠĠĠĠĠĠ Ġ* Ġthis Ġfragment Ġusing Ġthe Ġprovided Ġparameters . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġparam 1 ĠParameter Ġ 1 . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġparam 2 ĠParameter Ġ 2 . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠA Ġnew Ġinstance Ġof Ġfragment ĠList Fragment . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ// ĠTODO : ĠRename Ġand Ġchange Ġtypes Ġand Ġnumber Ġof Ġparameters ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( param 1 : ĠString , Ġparam 2 : ĠString ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠList Fragment (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarguments Ġ= ĠBundle (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput String ( ARG _ PARAM 1 , Ġparam 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput String ( ARG _ PARAM 2 , Ġparam 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }