package Ġcom . k yle cor ry . health sense . med icine . ui Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . lifecycle . lifecycle Scope Ċ import Ġcom . k yle cor ry . health sense . R Ċ import Ġcom . k yle cor ry . health sense . databinding . Fragment Med icine Binding Ċ import Ġcom . k yle cor ry . health sense . databinding . ListItem Med icine Binding Ċ import Ġcom . k yle cor ry . health sense . heart . domain . Blood Pressure Reading Ċ import Ġcom . k yle cor ry . health sense . med icine . domain . Frequency Ċ import Ġcom . k yle cor ry . health sense . med icine . domain . Med icine Ċ import Ġcom . k yle cor ry . health sense . med icine . domain . Med icine Food Requirement Ċ import Ġcom . k yle cor ry . health sense . med icine . domain . Time OfDay Ċ import Ġcom . k yle cor ry . health sense . med icine . infrastructure . Med icine Repo Ċ import Ġcom . k yle cor ry . tr ails ense core . infrastructure . system . Ui Utils Ċ import Ġcom . k yle cor ry . tr ails ense core . infrastructure . view . ListView Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . launch Ċ import Ġkotlinx . coroutines . with Context Ċ import Ġjava . time . DayOfWeek Ċ Ċ class ĠMed icine Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġ_ binding : ĠFragment Med icine Binding ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġbinding Ġget () Ġ= Ġ_ binding !! ĊĊĠĠĠ Ġprivate Ġval Ġmedic ine Repo Ġby Ġlazy Ġ{ ĠMed icine Repo . getInstance ( require Context (). application Context ) Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ binding Ġ= ĠFragment Med icine Binding . inflate ( in flater , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠĠĠĠĠ Ġ_ binding Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġval ĠlistView Ġ= ĠListView < Med icine >( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . med icine List , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . layout . list _ item _ med icine ĊĠĠĠĠĠĠĠ Ġ) Ġ{ Ġmedic ine View , Ġmedic ine Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Binding Ġ= ĠListItem Med icine Binding . bind ( med icine View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem Binding . med icine Name . text Ġ= Ġmedic ine . name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem Binding . med icine Dos age . text Ġ= Ġmedic ine . dos age Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmedic ine View . setOn Long ClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUi Utils . alert With Cancel ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Context (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . delete _ med icine ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmedic ine . name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . dialog _ ok ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . dialog _ cancel ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ Ġcancelled Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! cancelled ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlifecycle Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith Context ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmedic ine Repo . delete ( med icine ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġmedic ine Repo . getAll (). observe ( view Lifecycle Owner , ĠObserver Ġ{ ĠlistView . setData ( it ) Ġ}) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ// ĠTODO : ĠAllow Ġthe Ġuser Ġto Ġstore Ġall Ġmedic ines Ġthey Ġtake ĊĠĠĠ Ġ// ĠTODO : ĠAllow Ġuser Ġto Ġschedule Ġa Ġreminder Ġfor Ġeach Ġmedic ine Ġwith Ġfrequency Ġ( for ĠM VP , Ġevery ĠX Ġdays Ġat Ġa Ġlist Ġof Ġtimes ) ĊĠĠĠ Ġ// ĠTODO : ĠAllow Ġthe Ġuser Ġto Ġpick Ġpredefined Ġtimes Ġ( ex . ĠMor ning , ĠM idd ay , ĠA f tern oon , ĠNight ) ĊĠĠĠ Ġ// ĠTODO : ĠAllow Ġthe Ġuser Ġto Ġspecify Ġdos ages ĊĠĠĠ Ġ// ĠTODO : ĠAllow Ġthe Ġuser Ġto Ġspecify Ġwhether Ġthey Ġcan Ġtake Ġwithout Ġfood Ċ }