package Ġcom . t any ay u fer ova . fr ank lin . ui . statistics Ċ Ċ 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 . view Models Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġandroidx . navigation . fragment . nav Args Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġcom . t any ay u fer ova . fr ank lin . R Ċ import Ġcom . t any ay u fer ova . fr ank lin . di . Injection Ċ import Ġcom . t any ay u fer ova . fr ank lin . domain . statistics . Statistics ViewModel Ċ import Ġcom . t any ay u fer ova . fr ank lin . utils . observe Ċ import Ġkotlinx . android . synt hetic . main . fragment _ statistics .* Ċ import Ġcom . t any ay u fer ova . fr ank lin . ui . common . item decoration . Custom Position Item Divider Ċ import Ġcom . t any ay u fer ova . fr ank lin . utils . get Drawable Compat Ċ import Ġcom . t any ay u fer ova . fr ank lin . utils . now Ċ Ċ /** Ċ Ġ* ĠAuthor : ĠT anya ĠY u fer ova Ċ Ġ* ĠDate : Ġ 7 / 8 / 1 9 Ċ Ġ*/ Ċ class ĠStatistics Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġargs : ĠStatistics Fragment Args Ġby Ġnav Args () ĊĊĠĠĠ Ġprivate Ġval ĠviewModel : ĠStatistics ViewModel Ġby Ġview Models Ġ{ ĊĠĠĠĠĠĠĠ ĠInjection . provide Statistics ViewModel Factory ( require Context (), Ġargs . date ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġstatistics Adapter Ġ= ĠStatistics Adapter () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . fragment _ statistics , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġconfigure Toolbar () ĊĠĠĠĠĠĠĠ Ġconfigure Recycler () ĊĠĠĠĠĠĠĠ Ġconfigure Buttons () ĊĠĠĠĠĠĠĠ Ġconfigure Data () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġconfigure Toolbar () Ġ= Ġwith ( toolbar ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset Navigation OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate Up () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġconfigure Recycler () Ġ= Ġwith ( recycler ) Ġ{ ĊĠĠĠĠĠĠĠ Ġadapter Ġ= Ġstatistics Adapter ĊĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠLinearLayoutManager ( require Context ()) ĊĠĠĠĠĠĠĠ Ġset Has Fixed Size ( true ) ĊĠĠĠĠĠĠĠ Ġadd Item Decoration ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCustom Position Item Divider ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext Ġ= Ġrequire Context (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpositions Ġ= Ġint ArrayOf ( 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdivider Ġ= Ġcontext . get Drawable Compat ( R . drawable . divider _ horizontal _ spacing _ h ) !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġconfigure Buttons () Ġ{ ĊĠĠĠĠĠĠĠ Ġnext Week Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . onNext Week Selected () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġprevious Week Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . on Previous Week Selected () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġconfigure Data () Ġ= Ġwith ( viewModel ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvirt ues . observe ( view Lifecycle Owner , Ġstatistics Adapter :: submit List ) ĊĠĠĠĠĠĠĠ Ġtoolbar Title . observe ( view Lifecycle Owner , Ġweek Title :: setText ) ĊĠĠĠĠĠĠĠ Ġperiod . observe ( view Lifecycle Owner ) Ġ{ Ġ(_, Ġend ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Week Button . isEnabled Ġ= Ġend . before ( now ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ