package Ġcom . mp article . inspector . adapters Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġcom . mp article . inspector .* Ċ import Ġcom . mp article . inspector . events .* Ċ import Ġcom . mp article . inspector . view holders .* Ċ import Ġcom . mp article . inspector . utils . Mutable Ċ import Ġcom . mp article . inspector . utils . visible Ċ import Ġjava . util .* Ċ Ċ class ĠRecent ListAdapter ( context : ĠContext , Ġdata Manager : ĠData Manager , Ġobject Map : ĠMutable Map < Event ViewType , ĠLinked HashSet < Event >> Ġ= ĠHashMap (), Ġdisplay Callback : Ġ( Int ) Ġ-> ĠUnit , ĠstartTime : ĠLong ): ĠBase ListAdapter ( context , ĠstartTime , Ġdisplay Callback , Ġdata Manager ) Ġ{ ĊĊĠĠĠ Ġval Ġitem Limit Ġ= Ġ 1 0 0 ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlock Ġ= ĠObject () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġobject Map . values ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fold ( ArrayList < Event >()) Ġ{ Ġacc , Ġlist Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġacc . apply Ġ{ Ġadd All ( list ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ Ġadd Item ( it ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate All View Hold ers ( view Holder : ĠRecyclerView . ViewHolder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( view Holder Ġis ĠItem ViewHolder ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewHolder . title View ?. visible ( true ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġbind All View Hold ers ( holder : ĠRecyclerView . ViewHolder ?, Ġevent : ĠEvent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( holder Ġis ĠItem ViewHolder ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . title View ?. text Ġ= Ġevent . get ShortName () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġadd Item ( event : ĠEvent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġobj Ġ= Ġevent ĊĠĠĠĠĠĠĠ Ġsynchronized ( lock ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(( obj Ġis ĠCategory Title Ġ|| Ġobj . get Dto Type () Ġ== ĠEvent ViewType . val State Generic ) Ġ&& Ġ!( event Ġis ĠKit Api Call )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( obj Ġis ĠMessage Event ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobj Ġ= ĠMessage Table ( obj . name ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessages . put ( obj Ġas ĠMessage Event , ĠMutable ( false )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġobjects Ġ= Ġget Objects () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobjects ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. indexOf First Ġ{ Ġobj . created Time Ġ> Ġit . created Time Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( objects . size Ġ> Ġitem Limit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobjects Ġ= Ġobjects . sub List ( 0 , Ġitem Limit ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobjects . add ( it , Ġobj ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh Data ( objects , Ġit , Ġremoved Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobjects . add ( 0 , Ġobj ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh Data ( objects , Ġ 0 , Ġremoved Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }