/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 7 - 2 0 2 1 Ġ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 . context Ċ Ċ import Ġio . v avr . control . Try Ċ import Ġkotlinx . coroutines . delay Ċ import Ġorg . and status . app . First Activity Ċ import Ġorg . and status . app . account . Demo Account Inser ter Ċ import Ġorg . and status . app . account . My Account Ċ import Ġorg . and status . app . backup . Progress Logger Ċ import Ġorg . and status . app . data . Demo G nu Social Conversation Inser ter Ċ import Ġorg . and status . app . data . checker . Data Checker Ċ import Ġorg . and status . app . net . social . Actor Ċ import Ġorg . and status . app . origin . Demo Origin Inser ter Ċ import Ġorg . and status . app . os . Async Enum Ċ import Ġorg . and status . app . os . Async Runnable Ċ import Ġorg . and status . app . service . My Service Manager Ċ import Ġorg . and status . app . timeline . meta . Timeline Ċ import Ġorg . and status . app . timeline . meta . Timeline Type Ċ import Ġorg . and status . app . util . My Log Ċ import Ġorg . and status . app . util . Tri State Ċ import Ġorg . and status . app . util . Try Utils Ċ import Ġorg . hamcrest . Core Matchers Ċ import Ġorg . hamcrest . Matcher Assert Ċ import Ġorg . junit . Assert Ċ import Ġjava . util .* Ċ Ċ class ĠGenerate Demo Data Ġconstructor ( val Ġprogress Listener : ĠProgress Logger . Progress Listener , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmy Context : ĠMy Context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdemo Data : ĠDemo Data Ċ ) Ġ: ĊĠĠĠ ĠAsync Runnable ( Generate Demo Data :: class , ĠAsync Enum . DEFAULT _ POOL ) Ġ{ ĊĠĠĠ Ġval Ġlog Tag : ĠString Ġ= Ġprogress Listener . getLog Tag () ĊĠĠĠ Ġoverride Ġval Ġcancel able : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġdo In Background ( params : ĠUnit ): ĠTry < Unit > Ġ{ ĊĠĠĠĠĠĠĠ ĠMy Log . i ( log Tag , Ġ"$ log Tag ; Ġstarted ") ĊĠĠĠĠĠĠĠ Ġprogress Listener . on Progress Message (" Generating Ġdemo Ġdata ...") ĊĠĠĠĠĠĠĠ Ġdelay ( 5 0 0 ) ĊĠĠĠĠĠĠĠ ĠMy Log . v ( log Tag , Ġ" Before Ġinitialize Ġ 1 ") ĊĠĠĠĠĠĠĠĠ ĠMy Context Holder . my Context Holder . initialize ( null , Ġlog Tag ). get Blocking () ĊĠĠĠĠĠĠĠ ĠMy Log . v ( log Tag , Ġ" After Ġinitialize Ġ 1 ") ĊĠĠĠĠĠĠĠ ĠMy Service Manager . set Service Unavailable () ĊĠĠĠĠĠĠĠ Ġval Ġorigin Inser ter Ġ= ĠDemo Origin Inser ter ( my Context ) ĊĠĠĠĠĠĠĠ Ġorigin Inser ter . insert () ĊĠĠĠĠĠĠĠ Ġval Ġaccount Inser ter Ġ= ĠDemo Account Inser ter ( my Context ) ĊĠĠĠĠĠĠĠ Ġaccount Inser ter . insert () ĊĠĠĠĠĠĠĠ Ġmy Context . time lines . save Changed () ĊĠĠĠĠĠĠĠ ĠMy Log . v ( log Tag , Ġ" Before Ġinitialize Ġ 2 ") ĊĠĠĠĠĠĠĠ ĠMy Context Holder . my Context Holder . initialize ( null , Ġlog Tag ). get Blocking () ĊĠĠĠĠĠĠĠ ĠMy Log . v ( log Tag , Ġ" After Ġinitialize Ġ 2 ") ĊĠĠĠĠĠĠĠ ĠMy Service Manager . set Service Unavailable () ĊĠĠĠĠĠĠĠ Ġprogress Listener . on Progress Message (" Demo Ġaccounts Ġadded ...") ĊĠĠĠĠĠĠĠ Ġdelay ( 5 0 0 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġmy Context 2 Ġ= ĠMy Context Holder . my Context Holder . get Blocking () ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue (" Context Ġis Ġnot Ġready Ġ$ my Context 2 ", Ġmy Context 2 . is Ready ) ĊĠĠĠĠĠĠĠ Ġdemo Data . check Data Path () ĊĠĠĠĠĠĠĠ Ġval Ġsize : ĠInt Ġ= Ġmy Context 2 . accounts . size () ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Only Ġ" Ġ+ Ġsize Ġ+ Ġ" Ġaccounts Ġadded : Ġ" Ġ+ Ġmy Context 2 . accounts , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsize Ġ> Ġ 5 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" No ĠWeb f inger Id ", ĠOptional . empty < Any ?> (), Ġmy Context 2 . accounts ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get (). stream (). filter Ġ{ Ġma : ĠMy Account Ġ-> Ġ! ma . actor . is Web F inger Id Valid () Ġ}. findFirst () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġsize 2 : ĠInt Ġ= Ġmy Context 2 . users . size () ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Only Ġ$ size 2 Ġusers Ġadded : Ġ${ my Context 2 . users }\ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Accounts : Ġ${ my Context 2 . accounts }", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsize 2 Ġ>= Ġsize ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠDemo Data . assert Orig ins Context () ĊĠĠĠĠĠĠĠ ĠDemo Origin Inser ter . assert Default Time lines For Orig ins () ĊĠĠĠĠĠĠĠ ĠDemo Account Inser ter . assert Default Time lines For Accounts () ĊĠĠĠĠĠĠĠ Ġdemo Data . insert Pump Io Conversation ("") ĊĠĠĠĠĠĠĠ ĠDemo G nu Social Conversation Inser ter (). insert Conversation () ĊĠĠĠĠĠĠĠ Ġprogress Listener . on Progress Message (" Demo Ġnotes Ġadded ...") ĊĠĠĠĠĠĠĠ Ġdelay ( 5 0 0 ) ĊĠĠĠĠĠĠĠ Ġif Ġ( ĠMy Context Holder . my Context Holder . get Now (). accounts . size () Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . fail (" No Ġpersistent Ġaccounts ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdemo Data . set Successful Account As Current () ĊĠĠĠĠĠĠĠ Ġval Ġdefault Timeline : ĠTimeline Ġ= ĠMy Context Holder . my Context Holder . get Now (). time lines . filter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse , ĠTri State . TRUE , ĠTimeline Type . E VERY TH ING , ĠActor . EMPTY , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMy Context Holder . my Context Holder . get Now (). accounts . current Account . origin ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. findFirst (). orElse ( Timeline . EMPTY ) ĊĠĠĠĠĠĠĠ ĠMatcher Assert . assertThat ( default Timeline . timeline Type , ĠCore Matchers .` is `( Timeline Type . E VERY TH ING )) ĊĠĠĠĠĠĠĠ ĠMy Context Holder . my Context Holder . get Now (). time lines . setDefault ( default Timeline ) ĊĠĠĠĠĠĠĠ ĠMy Log . v ( log Tag , Ġ" Before Ġinitialize Ġ 3 ") ĊĠĠĠĠĠĠĠ ĠMy Context Holder . my Context Holder . initialize ( null , Ġlog Tag ). get Blocking () ĊĠĠĠĠĠĠĠ ĠMy Log . v ( log Tag , Ġ" After Ġinitialize Ġ 3 ") ĊĠĠĠĠĠĠĠ ĠDemo Data . assert Orig ins Context () ĊĠĠĠĠĠĠĠ ĠDemo Origin Inser ter . assert Default Time lines For Orig ins () ĊĠĠĠĠĠĠĠ ĠDemo Account Inser ter . assert Default Time lines For Accounts () ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Data Ġerrors Ġexist ", Ġ 0 , ĠData Checker . fix Data ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProgress Logger ( progress Listener ), Ġinclude Long Ġ= Ġtrue , Ġcount Only Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠMy Log . v ( log Tag , Ġ" After Ġdata Ġchecker ") ĊĠĠĠĠĠĠĠ Ġprogress Listener . on Progress Message (" Demo Ġdata Ġis Ġready ") ĊĠĠĠĠĠĠĠ Ġdelay ( 5 0 0 ) ĊĠĠĠĠĠĠĠ ĠMy Log . i ( log Tag , Ġ"$ log Tag ; Ġended ") ĊĠĠĠĠĠĠĠ Ġreturn ĠTry Utils . SUCCESS ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġon Post Execute ( result : ĠTry < Unit >) Ġ{ ĊĠĠĠĠĠĠĠ ĠFirst Activity . check AndUpdate Last Opened App Version ( my Context . context , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġprogress Listener . onComplete ( result . is Success ) ĊĠĠĠ Ġ} Ċ } Ċ