/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 6 Ġ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 . timeline . meta Ċ Ċ import Ġorg . and status . app . R Ċ import Ġorg . and status . app . util . Collections Util Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* Ġ@ author Ġy vol k @ y ur iv olk ov . com Ċ Ġ*/ Ċ internal Ġclass ĠManage Time lines View Item Comparator ( private Ġval ĠsortBy Field : ĠInt , Ġprivate Ġval Ġsort Default : ĠBoolean , Ġprivate Ġval Ġis Total : ĠBoolean ) Ġ: ĠComparator < Manage Time lines View Item ?> Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġcompare ( lhs : ĠManage Time lines View Item ?, Ġrhs : ĠManage Time lines View Item ?): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( lhs Ġ== Ġnull Ġ|| Ġrhs Ġ== Ġnull ) Ġreturn Ġcompare Null s ( lhs , Ġrhs ) ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġwhen Ġ( sortBy Field ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . display ed In Selector Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġcompare Any ( lhs . timeline , Ġrhs . timeline ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Ġ!= Ġ 0 ) Ġreturn Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġcompare Any ( lhs . timeline Title . toString (). toLowerCase (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrhs . timeline Title . toString (). toLowerCase ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Ġ!= Ġ 0 ) Ġreturn Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġcompare Any ( lhs . timeline Title . account Name , Ġrhs . timeline Title . account Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Ġ!= Ġ 0 ) Ġreturn Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcompare Any ( lhs . timeline Title . origin Name , Ġrhs . timeline Title . origin Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . title Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġcompare Any ( lhs . timeline Title . toString (). toLowerCase (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrhs . timeline Title . toString (). toLowerCase ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Ġ!= Ġ 0 ) Ġreturn Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġcompare Any ( lhs . timeline Title . account Name , Ġrhs . timeline Title . account Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Ġ!= Ġ 0 ) Ġreturn Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcompare Any ( lhs . timeline Title . origin Name , Ġrhs . timeline Title . origin Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . account Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġcompare Any ( lhs . timeline Title . account Name , Ġrhs . timeline Title . account Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Ġ!= Ġ 0 ) Ġreturn Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcompare Any ( lhs . timeline Title . origin Name , Ġrhs . timeline Title . origin Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . origin Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġcompare Any ( lhs . timeline Title . origin Name , Ġrhs . timeline Title . origin Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Ġ!= Ġ 0 ) Ġreturn Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġcompare Any ( lhs . timeline Title . account Name , Ġrhs . timeline Title . account Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Ġ!= Ġ 0 ) Ġreturn Ġresult ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġcompare Any ( lhs . timeline Title . title , Ġrhs . timeline Title . title ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Ġ!= Ġ 0 ) Ġreturn Ġresult ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcompare Sync ed ( lhs , Ġrhs ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . sync ed Ġ-> Ġreturn Ġcompare Sync ed ( lhs , Ġrhs ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . sync ed Times Count Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġcompare Long Descending ( lhs . timeline . get Sync ed Times Count ( is Total ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrhs . timeline . get Sync ed Times Count ( is Total )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Ġ!= Ġ 0 ) Ġreturn Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġcompare Long Descending ( lhs . timeline . get Downloaded Items Count ( is Total ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrhs . timeline . get Downloaded Items Count ( is Total )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Ġ!= Ġ 0 ) Ġreturn Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġcompare Long Descending ( lhs . timeline . getNew Items Count ( is Total ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrhs . timeline . getNew Items Count ( is Total )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Ġ!= Ġ 0 ) Ġreturn Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġcompare Long Descending ( lhs . timeline . get Sync Succeeded Date (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrhs . timeline . get Sync Succeeded Date ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Ġ!= Ġ 0 ) Ġreturn Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcompare Sync ed ( lhs , Ġrhs ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . downloaded Items Count Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġcompare Long Descending ( lhs . timeline . get Downloaded Items Count ( is Total ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrhs . timeline . get Downloaded Items Count ( is Total )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Ġ!= Ġ 0 ) Ġreturn Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġcompare Long Descending ( lhs . timeline . getNew Items Count ( is Total ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrhs . timeline . getNew Items Count ( is Total )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Ġ!= Ġ 0 ) Ġreturn Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġcompare Long Descending ( lhs . timeline . get Sync Succeeded Date (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrhs . timeline . get Sync Succeeded Date ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Ġ!= Ġ 0 ) Ġreturn Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcompare Sync ed ( lhs , Ġrhs ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . new Items Count Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġcompare Long Descending ( lhs . timeline . getNew Items Count ( is Total ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrhs . timeline . getNew Items Count ( is Total )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Ġ!= Ġ 0 ) Ġreturn Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġcompare Long Descending ( lhs . timeline . get Sync Succeeded Date (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrhs . timeline . get Sync Succeeded Date ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Ġ!= Ġ 0 ) Ġreturn Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcompare Sync ed ( lhs , Ġrhs ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . sync Succeeded Date Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġcompare Long Descending ( lhs . timeline . get Sync Succeeded Date (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrhs . timeline . get Sync Succeeded Date ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Ġ!= Ġ 0 ) Ġreturn Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcompare Sync ed ( lhs , Ġrhs ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . sync Failed Date , ĠR . id . sync Failed Times Count Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġcompare Long Descending ( lhs . timeline . get Sync Failed Date (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrhs . timeline . get Sync Failed Date ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Ġ!= Ġ 0 ) Ġreturn Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcompare Sync ed ( lhs , Ġrhs ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . errorMessage Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġcompare Any ( lhs . timeline . get ErrorMessage (), Ġrhs . timeline . get ErrorMessage ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTODO : ĠStr ange Ġlogic : Ġno Ġreturn Ġhere Ġon Ġ!= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcompare Sync ed ( lhs , Ġrhs ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġcompare Long Descending ( lhs . timeline . getLast Changed Date (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrhs . timeline . getLast Changed Date ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Ġ!= Ġ 0 ) Ġreturn Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcompare Sync ed ( lhs , Ġrhs ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . last Changed Date Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġcompare Long Descending ( lhs . timeline . getLast Changed Date (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrhs . timeline . getLast Changed Date ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Ġ!= Ġ 0 ) Ġreturn Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcompare Sync ed ( lhs , Ġrhs ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġreturn Ġresult ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġ< T Ġ: ĠComparable < T >> Ġcompare Any ( lhs : ĠT ?, Ġrhs : ĠT ?): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( lhs Ġ== Ġnull Ġ|| Ġrhs Ġ== Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcompare Null s ( lhs , Ġrhs ) ĊĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġlhs . compareTo ( rhs ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( result Ġ== Ġ 0 ) Ġ 0 Ġelse Ġif Ġ( sort Default ) Ġresult Ġelse Ġ 0 Ġ- Ġresult ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġ< T > Ġcompare Null s ( lhs : ĠT ?, Ġrhs : ĠT ?): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( lhs Ġ== Ġnull Ġ&& Ġrhs Ġ== Ġnull ) Ġreturn Ġ 0 ĊĠĠĠĠĠĠĠ Ġif Ġ( rhs Ġ== Ġnull ) Ġreturn Ġif Ġ( sort Default ) Ġ 1 Ġelse Ġ- 1 ĊĠĠĠĠĠĠĠ Ġif Ġ( lhs Ġ== Ġnull ) Ġreturn Ġif Ġ( sort Default ) Ġ- 1 Ġelse Ġ 1 ĊĠĠĠĠĠĠĠ Ġreturn Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcompare Sync ed ( lhs : ĠManage Time lines View Item , Ġrhs : ĠManage Time lines View Item ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġcompare Long Descending ( lhs . timeline . getLast Sync ed Date (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrhs . timeline . getLast Sync ed Date ()) ĊĠĠĠĠĠĠĠ Ġif Ġ( result Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġcompare Checkbox ( lhs . timeline . is Sync ed Autom atically (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrhs . timeline . is Sync ed Autom atically ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( result Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġcompare Checkbox ( lhs . timeline . is Sync able Autom atically (), Ġrhs . timeline . is Sync able Autom atically ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcompare Long Descending ( lhs : ĠLong , Ġrhs : ĠLong ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġif Ġ( lhs Ġ== Ġrhs ) Ġ 0 Ġelse Ġif Ġ( lhs Ġ> Ġrhs ) Ġ 1 Ġelse Ġ- 1 ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( result Ġ== Ġ 0 ) Ġ 0 Ġelse Ġif Ġ(! sort Default ) Ġresult Ġelse Ġ 0 Ġ- Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcompare Checkbox ( lhs : ĠBoolean , Ġrhs : ĠBoolean ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠCollections Util . compare Checkbox ( lhs , Ġrhs ) ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( result Ġ== Ġ 0 ) Ġ 0 Ġelse Ġif Ġ( sort Default ) Ġresult Ġelse Ġ 0 Ġ- Ġresult ĊĠĠĠ Ġ} Ċ } Ċ