package Ġcom . real it ix . meal assistant . fragment ĊĊ Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . fragment . app . view Models Ċ import Ġandroidx . lifecycle . observe Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ Ċ import Ġcom . real it ix . meal assistant . R Ċ import Ġcom . real it ix . meal assistant . database . entity . Me al Ċ import Ġcom . real it ix . meal assistant . repository . Me al Repository Ċ import Ġcom . real it ix . meal assistant . util . Generic Adapter Ċ import Ġcom . real it ix . meal assistant . util . Me al Util Ċ import Ġcom . real it ix . meal assistant . util . Recycler ItemClickListener Ċ import Ġcom . real it ix . meal assistant . util . Single Line Item ViewHolder Ċ import Ġcom . real it ix . meal assistant . view model . Me al Pager ViewModel Ċ import Ġcom . real it ix . meal assistant . view model . Repository ViewModel Factory Ċ import Ġcom . wd ull aer . material datetime picker . time . Time Picker Dialog Ċ import Ġkotlinx . android . synt hetic . main . fragment _ meal _ pager .* ĊĊ Ċ class ĠMe al Pager Fragment Ġ: ĠFragment () Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġtimestamp : ĠLong Ġ= Ġ- 1 ĊĠĠĠ Ġprivate Ġval ĠviewModel : ĠMe al Pager ViewModel Ġby Ġview Models ( ĊĠĠĠĠĠĠĠ Ġfactory Producer Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRepository ViewModel Factory Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMe al Pager ViewModel ( Me al Repository . getInstance ( context !! ), Ġtimestamp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġadapter : ĠGeneric Adapter < Single Line Item ViewHolder , ĠMe al > ĊĠĠĠ Ġprivate Ġval Ġtime Picker Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠTime Picker Dialog . newInstance ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġ_: ĠTime Picker Dialog , Ġi : ĠInt , Ġi 1 : ĠInt , Ġ_: ĠInt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpicker Timestamp Ġ= ĠMe al Util . begin Day Timestamp ( timestamp ) Ġ+ ĠMe al Util . hour Timestamp ( i ) Ġ+ ĠMe al Util . minute Timestamp ( i 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmid Ġ= ĠviewModel . create Me al ( picker Timestamp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction Ġ= ĠMe als Fragment Directions . action Me als Fragment To Me al Fragment ( mid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( action ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 , Ġ 0 , Ġtrue ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġarguments ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtimestamp Ġ= Ġit . getLong (" timestamp ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ= Ġinflater . inflate ( R . layout . fragment _ meal _ pager , Ġcontainer , Ġfalse ) ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠSet ĠRecyclerView ĊĠĠĠĠĠĠĠ Ġadapter Ġ= ĠGeneric Adapter ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġv : ĠViewGroup Ġ-> ĠSingle Line Item ViewHolder . create ( v ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġholder , Ġme al Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . text . text Ġ= ĠMe al Util . hour Minute From Timestamp ( meal . timestamp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . icon . setImage Drawable ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . get Drawable ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . ic _ receipt _ black _ 3 6 dp ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġre cyclerView . has Fixed Size () ĊĠĠĠĠĠĠĠ Ġre cyclerView . adapter Ġ= Ġadapter ĊĊĠĠĠĠĠĠĠ ĠviewModel . me als . observe ( view Lifecycle Owner ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . setData ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠSet Ġfab ĊĠĠĠĠĠĠĠ Ġfab . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime Picker . show ( activity !!. support FragmentManager , Ġ" Time Picker Dialog ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġre cyclerView . add On Item Touch Listener ( Recycler ItemClickListener ( context !! , Ġre cyclerView , Ġobject : ĠRe cycler ItemClickListener . On ItemClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Item Click ( view : ĠView , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġme al Ġ= Ġadapter . get At Position ( position ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction Ġ= ĠMe als Fragment Directions . action Me als Fragment To Me al Fragment ( meal . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( action ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ})) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( timestamp : ĠLong ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMe al Pager Fragment (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarguments Ġ= ĠBundle (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Long (" timestamp ", Ġtimestamp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ