package Ġcom . sd c . ud n . open l ora . activity . adapter Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . support . v 7 . widget . AppCompat TextView Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . sd c . ud n . open l ora . R Ċ import Ġcom . sd c . ud n . open l ora . activity . database . model . Log Device Model Ċ Ċ class ĠLog Device Adapter ( private Ġval Ġcontext : ĠContext ) Ġ: ĠRecyclerView . Adapter < Log Device Adapter . Log ViewHolder >() Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġlist Logs Ġ= Ġmutable ListOf < Log Device Model >() ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( p 0 : ĠViewGroup , Ġp 1 : ĠInt ): ĠLog ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( context ). inflate ( R . layout . item _ log _ device _ view , Ġp 0 , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠLog ViewHolder ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ= Ġlist Logs . size ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( p 0 : ĠLog ViewHolder , Ġpost ition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġp 0 . display ( list Logs [ post ition ]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠUpdate Ġnew ĠDevice ĠLog Ġand Ġsort Ġby ĠTime Stamp . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġupdate Log ( log : ĠLog Device Model ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlog Ex its Ġ= Ġlist Logs . first OrNull Ġ{ Ġlog Index Ġ-> Ġlog Index . time Stamp Ġ== Ġlog . time Stamp Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( log Ex its Ġ!= Ġnull ) Ġreturn ĊĊĠĠĠĠĠĠĠ Ġlist Logs . add ( log ) ĊĠĠĠĠĠĠĠ Ġlist Logs . sortBy Descending Ġ{ Ġit . time Stamp Ġ} ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRemove Ġa ĠDevice ĠLog . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġremove Log ( log : ĠLog Device Model ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlog Ex its Ġ= Ġlist Logs . first OrNull Ġ{ Ġlog Index Ġ-> Ġlog Index . time Stamp Ġ== Ġlog . time Stamp Ġ} Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġlist Logs . remove ( log Ex its ) ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠLog ViewHolder ( item View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlbl Time : ĠAppCompat TextView Ġ= ĠitemView . findViewById ( R . id . lbl Time ) ĊĠĠĠĠĠĠĠ Ġval Ġlbl Source : ĠAppCompat TextView Ġ= ĠitemView . findViewById ( R . id . lbl Source ) ĊĠĠĠĠĠĠĠ Ġval Ġlbl Status : ĠAppCompat TextView Ġ= ĠitemView . findViewById ( R . id . lbl Status ) ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠDisplay ĠDevice ĠLog . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġdisplay ( model : ĠLog Device Model ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlbl Time . text Ġ= Ġmodel . date String () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlbl Source . text Ġ= Ġmodel . source Control ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlbl Status . text Ġ= Ġif Ġ( model . status ) ĠitemView . context . getString ( R . string . lbl _ on ) Ġelse ĠitemView . context . getString ( R . string . lbl _ off ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }