package Ġcom . th re ec se devs . med ic heck er . activities Ċ Ċ import Ġandroid . app . AlertDialog Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . DialogInterface Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . Editable Ċ import Ġandroid . text . TextUtils Ċ import Ġandroid . text . Text Watcher Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . view . input method . Input Method Manager Ċ import Ġandroid . widget . CheckBox Ċ import Ġandroid . widget . EditText Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġcom . th re ec se devs . med ic heck er . R Ċ import Ġcom . th re ec se devs . med ic heck er . database . My Med icine Database Helper Ċ import Ġcom . th re ec se devs . med ic heck er . med icine . Med icine Ċ import Ġcom . th re ec se devs . med ic heck er . med icine . Med icine ListView Adapter Ċ import Ġkotlinx . android . synt hetic . main . activity _ home .* Ċ Ċ class ĠHome Activity Ġ: ĠFragment () Ġ{ ĊĠĠĠ Ġvar Ġdb Handler Ġ: ĠMy Med icine Database Helper ? Ġ= Ġnull ĊĠĠĠ Ġfun ĠViewGroup . inflate ( layout Id : ĠInt , Ġattach To Root : ĠBoolean Ġ= Ġfalse ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠLayoutInflater . from ( context ). inflate ( layout Id , Ġthis , Ġattach To Root ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcontainer ?. inflate ( R . layout . activity _ home ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠChange ĠStatus Bar ĠColor ĊĠĠĠĠĠĠĠ Ġthis . activity ?. window ?. status Bar Color Ġ= ĠContext Compat . getColor ( context !! , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . color . color White ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġvar Ġview Ġ= Ġthis . activity ?. window ?. decor View ĊĠĠĠĠĠĠĠ Ġview !!. system Ui Visibility Ġ= ĠView . SYSTEM _ UI _ FLAG _ LIGHT _ STATUS _ BAR ĊĊĠĠĠĠĠĠĠ Ġdb Handler Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMy Med icine Database Helper ( this . context !! ) ĊĠĠĠĠĠĠĠ Ġvar Ġm list : ĠMutable List < Med icine > Ġ= Ġdb Handler !!. getAll Med icine () ĊĊĠĠĠĠĠĠĠ Ġmedic ine List . adapter Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMed icine ListView Adapter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . context !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . layout . med icine _ item , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm list ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġmedic ine List . empty View Ġ= Ġhelp Text ĊĊĠĠĠĠĠĠĠ Ġadd _ button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠAlertDialog . Builder ( this . context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog View Ġ= Ġlayout Inflater . inflate ( R . layout . add _ med icine _ dialog , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmedic ine Name ToAdd Ġ= Ġdialog View . findViewById < EditText >( R . id . med icine Name ToAdd ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtake Mor ning Ġ= Ġdialog View . findViewById < CheckBox >( R . id . mor ning Check ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtake L unch Ġ= Ġdialog View . findViewById < CheckBox >( R . id . l unch Check ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtake D inner Ġ= Ġdialog View . findViewById < CheckBox >( R . id . d inner Check ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimm Ġ= Ġcontext !!. application Context . getSystem Service ( Context . INPUT _ METHOD _ SERVICE ) Ġas ĠInput Method Manager ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġmedic ine Name ToAdd . request Focus () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimm . toggle Soft Input ( Input Method Manager . SHOW _ FOR CED , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġadd btn Ġ= Ġbuilder . setView ( dialog View ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button (" Add ") Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAdd ĠItem Ġto ĠCustom ListView ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! TextUtils . isEmpty ( med icine Name ToAdd . text . trim ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmed Ġ= ĠMed icine ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmedic ine Name ToAdd . text . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtake Mor ning . isChecked , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtake L unch . isChecked , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtake D inner . isChecked ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdb Handler !!. add Med icine ( med ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( med icine List . adapter Ġas ĠMed icine ListView Adapter ). add ( med ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( med icine List . adapter Ġas ĠMed icine ListView Adapter ). notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimm . hide Soft Input From Window ( med icine Name ToAdd . window Token , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this . context !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Fill Ġin Ġthe ĠMed icine ĠName !", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Negative Button (" Cancel ") Ġ{ dialog Interface , Ġi Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCancel ĠB tn . ĠDo Ġnothing . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimm . hide Soft Input From Window ( med icine Name ToAdd . window Token , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get Button ( DialogInterface . BUTTON _ POSITIVE ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd btn . isEnabled Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġmedic ine Name ToAdd . add TextChanged Listener ( object : ĠText Watcher Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġafter TextChanged ( p 0 : ĠEdit able ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! TextUtils . isEmpty ( p 0 . toString (). trim ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd btn . isEnabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmedic ine Name ToAdd . error Ġ= Ġ" Med icine ĠName Ġis Ġrequired ." ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd btn . isEnabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbefore TextChanged ( p 0 : ĠCharSequence ?, Ġp 1 : ĠInt , Ġp 2 : ĠInt , Ġp 3 : ĠInt ) Ġ{ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon TextChanged ( p 0 : ĠCharSequence ?, Ġp 1 : ĠInt , Ġp 2 : ĠInt , Ġp 3 : ĠInt ) Ġ{ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ