/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 7 Ġy vol k Ġ( Y uri ĠVol kov ), Ġhttp :// y ur iv olk ov . com Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġorg . and status . app . activity Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . database . Cursor Ċ import Ġorg . and status . app . actor . Actor View Item Ċ import Ġorg . and status . app . actor . Act ors Loader Ċ import Ġorg . and status . app . context . My Context Ċ import Ġorg . and status . app . context . My Preferences Ċ import Ġorg . and status . app . data . Db Utils Ċ import Ġorg . and status . app . database . table . Activity Table Ċ import Ġorg . and status . app . net . social . Activity Type Ċ import Ġorg . and status . app . net . social . Actor Ċ import Ġorg . and status . app . note . Note View Item Ċ import Ġorg . and status . app . origin . Origin Ċ import Ġorg . and status . app . timeline . Dup lication Link Ċ import Ġorg . and status . app . timeline . Timeline Filter Ċ import Ġorg . and status . app . timeline . View Item Ċ import Ġorg . and status . app . timeline . meta . Timeline Ċ import Ġorg . and status . app . util . My StringBuilder Ċ import Ġorg . and status . app . util . Relative Time Ċ Ċ /** ĠView Ġon ĠActivity Stream Ċ Ġ* Ġ@ author Ġy vol k @ y ur iv olk ov . com Ċ Ġ*/ Ċ class ĠActivity View Item Ġ: ĠView Item < Activity View Item >, ĠComparable < Activity View Item > Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġid : ĠLong Ġ= Ġ 0 ĊĠĠĠ Ġval Ġorigin : ĠOrigin ĊĠĠĠ Ġval Ġactivity Type : ĠActivity Type ĊĠĠĠ Ġprivate Ġvar Ġnote Id : ĠLong Ġ= Ġ 0 ĊĠĠĠ Ġval Ġobj Actor Id : ĠLong ĊĊĠĠĠ Ġvar Ġactor : ĠActor View Item Ġ= ĠActor View Item . EMPTY ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠ Ġval Ġnote View Item : ĠNote View Item ĊĠĠĠ Ġprivate Ġvar Ġobj Actor Item : ĠActor View Item Ġ= ĠActor View Item . EMPTY ĊĊĠĠĠ Ġprotected Ġconstructor ( isEmpty : ĠBoolean ) Ġ: Ġsuper ( isEmpty , ĠRelative Time . DATETIME _ M ILL IS _ NE VER ) Ġ{ ĊĠĠĠĠĠĠĠ Ġorigin Ġ= Ġ ĠOrigin . EMPTY ĊĠĠĠĠĠĠĠ Ġactivity Type Ġ= ĠActivity Type . EMPTY ĊĠĠĠĠĠĠĠ Ġobj Actor Id Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġnote View Item Ġ= ĠNote View Item . EMPTY ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġconstructor ( my Context : ĠMy Context , Ġcursor : ĠCursor ) Ġ: ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper ( false , ĠDb Utils . getLong ( cursor , ĠActivity Table . UPDATED _ DATE )) Ġ{ ĊĠĠĠĠĠĠĠ Ġid Ġ= ĠDb Utils . getLong ( cursor , ĠActivity Table . ACTIVITY _ ID ) ĊĠĠĠĠĠĠĠ Ġorigin Ġ= Ġmy Context . orig ins . from Id ( Db Utils . getLong ( cursor , ĠActivity Table . ORIGIN _ ID )) ĊĠĠĠĠĠĠĠ Ġactivity Type Ġ= ĠActivity Type . from Id ( Db Utils . getLong ( cursor , ĠActivity Table . ACTIVITY _ TYPE )) ĊĠĠĠĠĠĠĠ Ġinserted Date Ġ= ĠDb Utils . getLong ( cursor , ĠActivity Table . INS _ DATE ) ĊĠĠĠĠĠĠĠ Ġactor Ġ= ĠActor View Item . from Actor ( Actor . from Id ( origin , ĠDb Utils . getLong ( cursor , ĠActivity Table . ACT OR _ ID ))) ĊĠĠĠĠĠĠĠ Ġnote Id Ġ= ĠDb Utils . getLong ( cursor , ĠActivity Table . NOTE _ ID ) ĊĠĠĠĠĠĠĠ Ġobj Actor Id Ġ= ĠDb Utils . getLong ( cursor , ĠActivity Table . OBJ _ ACT OR _ ID ) ĊĠĠĠĠĠĠĠ Ġif Ġ( obj Actor Id Ġ!= Ġ 0 L ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobj Actor Item Ġ= ĠActor View Item . from Actor Id ( origin , Ġobj Actor Id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( note Id Ġ== Ġ 0 L ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnote View Item Ġ= ĠNote View Item . EMPTY ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnote View Item Ġ= ĠNote View Item . EMPTY . from Cursor ( my Context , Ġcursor ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnote View Item . setParent ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( My Preferences . is Show Debugging Info In Ui ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMy StringBuilder . append With Space ( note View Item . details Suffix , Ġ"( act Id =$ id )") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetId (): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġid ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Date (): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġupdated Date ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġoperator Ġfun Ġcompare To ( other : ĠActivity View Item ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġjava . lang . Long . compare ( updated Date , Ġother . updated Date ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġfrom Cursor ( my Context : ĠMy Context , Ġcursor : ĠCursor ): ĠActivity View Item Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠActivity View Item ( my Context , Ġcursor ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġmatches ( filter : ĠTimeline Filter ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( note Id Ġ!= Ġ 0 L ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnote View Item . matches ( filter ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( obj Actor Id Ġ!= Ġ 0 L ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġobj Actor Item . matches ( filter ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġduplicates ( timeline : ĠTimeline , Ġpreferred Origin : ĠOrigin , Ġother : ĠActivity View Item ): ĠD up lication Link Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( isEmpty Ġ|| Ġother . isEmpty ) Ġreturn ĠD up lication Link . NONE ĊĠĠĠĠĠĠĠ Ġval Ġlink Ġ= Ġduplicates By Children ( timeline , Ġpreferred Origin , Ġother ) ĊĠĠĠĠĠĠĠ Ġif Ġ( link Ġ== ĠD up lication Link . NONE ) Ġreturn Ġlink ĊĠĠĠĠĠĠĠ Ġif Ġ( activity Type Ġ!= Ġother . activity Type Ġ&& Ġother . activity Type Ġ== ĠActivity Type . UPDATE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠD up lication Link . IS _ DUPLIC ATED ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( updated Date Ġ> Ġother . updated Date ) ĠD up lication Link . IS _ DUPLIC ATED Ġelse Ġif Ġ( updated Date Ġ< Ġother . updated Date ) ĠD up lication Link . DUPLIC ATES Ġelse Ġlink ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġduplicates By Children ( timeline : ĠTimeline , Ġpreferred Origin : ĠOrigin , Ġother : ĠActivity View Item ): ĠD up lication Link Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( note Id Ġ!= Ġ 0 L ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnote View Item . duplicates ( timeline , Ġpreferred Origin , Ġother . note View Item ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( obj Actor Id Ġ!= Ġ 0 L ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġobj Actor Item . duplicates ( timeline , Ġpreferred Origin , Ġother . obj Actor Item ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . duplicates ( timeline , Ġpreferred Origin , Ġother ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Details ( context : ĠContext , Ġshow Received Time : ĠBoolean ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= Ġget My StringBuilder With Time ( context , Ġshow Received Time ) ĊĠĠĠĠĠĠĠ Ġif Ġ( is Collapsed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . with Space ("( + ${ children Count }) ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( My Preferences . is Show Debugging Info In Ui ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . with Space ("( act Id =$ id )") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġbuilder . toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( this Ġ=== ĠEMPTY ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" EMPTY " ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġactor . actor . get Unique Name With Origin () Ġ+ Ġ" Ġ" Ġ+ Ġactivity Type Ġ+ Ġ" Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( note Id Ġ== Ġ 0 L ) Ġobj Actor Item Ġelse Ġnote View Item ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Obj Actor Item (): ĠActor View Item Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġobj Actor Item ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Obj Actor Item ( obj Actor Item : ĠActor View Item ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . obj Actor Item Ġ= Ġobj Actor Item ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġadd Act ors To Load ( loader : ĠAct ors Loader ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnote View Item . add Act ors To Load ( loader ) ĊĠĠĠĠĠĠĠ Ġif Ġ( activity Type Ġ!= ĠActivity Type . CREATE Ġ&& Ġactivity Type Ġ!= ĠActivity Type . UPDATE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġloader . add Actor ToList ( actor . actor ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġloader . add Actor Id ToList ( origin , Ġobj Actor Id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Loaded Act ors ( loader : ĠAct ors Loader ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnote View Item . set Loaded Act ors ( loader ) ĊĠĠĠĠĠĠĠ Ġif Ġ( activity Type Ġ!= ĠActivity Type . CREATE Ġ&& Ġactivity Type Ġ!= ĠActivity Type . UPDATE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġindex Ġ= Ġloader . getList (). indexOf ( actor ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( index Ġ>= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactor Ġ= Ġloader . getList ()[ index ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( obj Actor Id Ġ!= Ġ 0 L ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġindex Ġ= Ġloader . getList (). indexOf ( get Obj Actor Item ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( index Ġ>= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Obj Actor Item ( loader . getList ()[ index ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Obj Actor Item (). setParent ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠEMPTY : ĠActivity View Item Ġ= ĠActivity View Item ( true ) ĊĠĠĠ Ġ} Ċ } Ċ