package Ġcom . example . my di agnosis . adapter Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . example . my di agnosis . R Ċ import Ġcom . example . my di agnosis . database . Di agnosis Room Database Ċ import Ġcom . example . my di agnosis . model . Risk Factor Ċ import Ġcom . example . my di agnosis . view holder . Risk Factor ViewHolder Ċ import Ġcom . example . my di agnosis . view model . Risk Factors ViewModel Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . launch Ċ Ċ class ĠR isk Factors Adapter ( val Ġcontext Ġ: ĠContext , Ġval Ġrisk Factors Ġ: ĠList < Risk Factor >, Ġval Ġlayout Inflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrisk Factors ViewModel : ĠR isk Factors ViewModel ) Ġ: ĠRecyclerView . Adapter < Risk Factor ViewHolder >() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( p 0 : ĠViewGroup , Ġp 1 : ĠInt ): ĠR isk Factor ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġlayout Inflater . inflate ( R . layout . risk _ factor _ layout , Ġp 0 , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠR isk Factor ViewHolder ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġrisk Factors . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( p 0 : ĠR isk Factor ViewHolder , Ġp 1 : ĠInt ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// Ġbind Ġthe Ġview Ġhere ĊĊĠĠĠĠĠĠĠ Ġp 0 . get Risk Factor Name (). text Ġ= Ġrisk Factors [ p 1 ]. getName () ĊĠĠĠĠĠĠĠ Ġp 0 . get Risk Factor Gender (). text Ġ= Ġrisk Factors [ p 1 ]. get Gender () ĊĊĠĠĠĠĠĠĠ Ġp 0 . get Risk Factor ToggleButton (). setOn Checked ChangeListener Ġ{ Ġ_ Ġ, Ġis Checked Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠCor outine Scope ( Dispatch ers . IO ). launch Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdatabase Ġ= ĠDi agnosis Room Database . get Database ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrisk Factor Ġ= Ġdatabase ?. risk Factors Dao ()?. get Risk Factor With Id ( risk Factors [ p 1 ]. getId ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrisk Factor ?. let Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġpresent Or Absent Ġ= Ġ" abs ent " ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( isChecked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresent Or Absent Ġ= Ġ" present " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrisk Factors ViewModel . on Risk Factor Added ( context , Ġrisk Factors [ p 1 ]. getId (), Ġpresent Or Absent ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġrisk Factor Icon Ġ= Ġp 0 . get Risk Factor Severity Icon () ĊĠĠĠĠĠĠĠ Ġif ( risk Factors [ p 1 ]. get Severity () Ġ== Ġ" normal ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrisk Factor Icon . setImage Resource ( R . drawable . normal ) ĊĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif ( risk Factors [ p 1 ]. get Severity () Ġ== Ġ" ser ious ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrisk Factor Icon . setImage Resource ( R . drawable . warning ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif ( risk Factors [ p 1 ]. get Severity () Ġ== Ġ" em ergency ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrisk Factor Icon . setImage Resource ( R . drawable . em ergency ) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊ Ċ }