package Ġcom . example . j oren . part yn ight planner . views . details Ċ Ċ import Ġandroid . arch . lifecycle . ViewModel Providers Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 4 . app . Fragment Ċ import Ġandroid . support . v 7 . widget . Linear LayoutManager Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . example . j oren . part yn ight planner . MainActivity Ċ import Ġcom . example . j oren . part yn ight planner . R Ċ import Ġcom . example . j oren . part yn ight planner . adapters . Event Adapter Ċ import Ġcom . example . j oren . part yn ight planner . adapters . Night Adapter Ċ import Ġcom . example . j oren . part yn ight planner . domain . Night Ċ import Ġcom . example . j oren . part yn ight planner . util . Injector Utils Ċ import Ġcom . example . j oren . part yn ight planner . views . new Night . Night ViewModel Ċ import Ġcom . facebook . AccessToken Ċ import Ġcom . facebook . Graph Request Ċ import Ġcom . facebook . Graph Response Ċ import Ġcom . facebook . HttpMethod Ċ import Ġkotlinx . android . synt hetic . main . night _ detail .* Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ Ċ class ĠContent Night Detail : ĠFragment () Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġlayout Manager : ĠRecyclerView . LayoutManager ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġadapter : ĠRecyclerView . Adapter < Event Adapter . ViewHolder >? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . night _ detail , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonStart () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onStart () ĊĠĠĠĠĠĠĠ Ġinit Ui () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Stop () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Stop () ĊĊĠĠĠĠĠĠĠ Ġlayout Manager Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġadapter Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġnight Detail Recycler view . layout Manager Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġnight Detail Recycler view . adapter Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġbtn Detail Invite Friends . setOnClickListener ( null ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Ui (){ ĊĠĠĠĠĠĠĠ Ġval Ġfactory Ġ= ĠInject or Utils . provide Night ViewModel Factory () ĊĠĠĠĠĠĠĠ Ġval ĠviewModel Ġ= ĠViewModel Providers . of ( this , Ġfactory ). get ( Night ViewModel :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġarguments !!. let { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . containsKey ( ARG _ N IGHT )){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . parse Night ( it . get Serializable ( ARG _ N IGHT ) Ġas ĠNight ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠviewModel . night . let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnight Detail Name . text Ġ= Ġit . name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnight Detail Desc . text Ġ= Ġit . desc ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnight Detail StartDate And Time . text Ġ= ĠSimpleDateFormat (" dd ĠMM Ġy yyy Ġhh : mm Ġa ", ĠLocale . US ). format ( it . retrieve Sorted Events ()[ 0 ]. startDate . time ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnight Detail EndDate And Time . text Ġ= ĠSimpleDateFormat (" dd ĠMM Ġy yyy Ġhh : mm Ġa ", ĠLocale . US ). format ( it . retrieve Sorted Events ()[ it . retrieve Sorted Events (). size Ġ- Ġ 1 ]. endDate . time ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġdeli ber ately Ġno Ġli ved ata Ġas Ġnight 's Ġevents Ġcan 't Ġchange Ġonce Ġit 's Ġcreated ĊĠĠĠĠĠĠĠ Ġwith ( viewModel ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= ĠEvent Adapter ( get Events (), Ġactivity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnight Detail Recycler view . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠviewModel . get Friend Names (). observe ( this , Ġandroid . arch . lifecycle . Observer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnight Detail Friends . text Ġ= Ġit !!. join ToString ( separator Ġ= Ġ", Ġ") ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠLinearLayoutManager ( context ) ĊĠĠĠĠĠĠĠ Ġnight Detail Recycler view . layout Manager Ġ= Ġlayout Manager ĊĊĠĠĠĠĠĠĠ Ġbtn Detail Invite Friends . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( activity Ġas ĠMainActivity ). open Invite Friends Panel ( viewModel . night ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( item : ĠNight ): ĠContent Night Detail Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġargs Ġ= ĠBundle () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġargs . put Serializable ( ARG _ N IGHT , Ġitem ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfragment Ġ= ĠContent Night Detail () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment . arguments Ġ= Ġargs ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfragment ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠARG _ N IGHT Ġ= Ġ" item _ id " ĊĠĠĠ Ġ} Ċ }