package Ġorg . step ik . android . domain . profile _ activities . inter actor Ċ Ċ import Ġio . reactivex . Single Ċ import Ġorg . step ik . android . domain . profile _ activities . model . Profile Activities Data Ċ import Ġorg . step ik . android . domain . user _ activity . repository . User Activity Repository Ċ import Ġorg . step ik . android . model . user . User Activity Ċ import Ġru . nob ird . android . domain . rx . first Ċ import Ġjavax . inject . Inject Ċ import Ġkotlin . math . max Ċ Ċ class ĠProfile Activities Interactor Ċ @ Inject Ċ constructor ( ĊĠĠĠ Ġprivate Ġval Ġuser Activity Repository : ĠUser Activity Repository Ċ ) Ġ{ ĊĠĠĠ Ġfun Ġget Profile Activities ( userId : ĠLong ): ĠSingle < Profile Activities Data > Ġ= ĊĠĠĠĠĠĠĠ Ġuser Activity Repository ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. getUser Activities ( userId ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. first () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map (:: map To Profile Activities ) ĊĊĠĠĠ Ġprivate Ġfun Ġmap To Profile Activities ( user Activity : ĠUser Activity ): ĠProfile Activities Data Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġst reak Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvar Ġmax St reak Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvar Ġbuffer Ġ= Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. user Activity . pins . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpin Ġ= Ġuser Activity . pins . getOrElse ( i ) Ġ{ Ġ 0 Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( pin Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmax St reak Ġ= Ġmax ( max St reak , Ġbuffer ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( buffer Ġ== Ġi Ġ|| Ġbuffer Ġ== Ġi Ġ- Ġ 1 ) Ġ{ Ġ// Ġfirst Ġis Ġsolved Ġtoday , Ġsecond Ġnot Ġsolved ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġst reak Ġ= Ġbuffer ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn ĠProfile Activities Data ( user Activity . pins , Ġst reak , Ġmax St reak , Ġis S olved Today Ġ= Ġuser Activity . pins [ 0 ] Ġ> Ġ 0 ) ĊĠĠĠ Ġ} Ċ }