package Ġcom . se mis on fire . cloud gallery . ui . disk . model Ċ Ċ import Ġcom . se mis on fire . cloud gallery . adapter . holder . Item Ċ import Ġcom . se mis on fire . cloud gallery . common . scroll . Horizontal Scroll Item Ċ import Ġcom . se mis on fire . cloud gallery . ui . disk . data . Disk Key Ċ import Ġcom . se mis on fire . cloud gallery . ui . disk . data . Disk Value Ċ import Ġcom . se mis on fire . cloud gallery . upload . adapter . Upload Item Ċ import Ġjava . util . TreeMap Ċ import Ġjava . util . concurrent . atomic . Atomic Boolean Ċ import Ġjava . util . concurrent . atomic . Atomic Integer Ċ Ċ data Ġclass ĠDisk State ( ĊĠĠĠ Ġvar Ġuploading : ĠHorizontal Scroll Item < Upload Item >? Ġ= Ġnull , Ċ ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġitems Ġ= ĠTreeMap < Disk Key , ĠDisk Value >() Ġ{ Ġfirst Key , Ġsecond Key Ġ-> ĊĠĠĠĠĠĠĠ Ġcompare Values By ( second Key , Ġfirst Key ) Ġ{ Ġit . millis Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval ĠcurrentPage Ġ= ĠAtomicInteger ( 0 ) ĊĠĠĠ Ġval Ġhas More Ġ= ĠAtomic Boolean ( true ) ĊĊĠĠĠ Ġfun Ġset Items ( items : ĠMap < Disk Key , ĠDisk Value >) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . items . clear () ĊĠĠĠĠĠĠĠ Ġthis . items . put All ( items ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġmerge Items ( items Map : ĠMap < Disk Key , ĠDisk Value >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġiterator Ġ= Ġitems Map . iterator () ĊĠĠĠĠĠĠĠ Ġwhile Ġ( iterator . hasNext ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( key , Ġvalue ) Ġ= Ġiterator . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠoldValue Ġ= Ġitems [ key ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( oldValue Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitems [ key ] Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmerged Items Ġ= ĠoldValue . scroll Item . items Ġ+ Ġvalue . scroll Item . items ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitems [ key ] Ġ= ĠDisk Value ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue . title Item . copy ( subtitle Ġ= Ġ"${ merged Items . size } Ġphoto "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue . scroll Item . copy ( items Ġ= Ġmerged Items ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetList Items (): ĠList < Item > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġitems . entries ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap To ( mutable ListOf ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( it . value . title Item , Ġit . value . scroll Item ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ Ġuploading ?. let Ġ{ Ġadd ( 0 , Ġit ) Ġ} Ġ} ĊĠĠĠ Ġ} Ċ }