/* ĠĊ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 5 Ġ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 . actor Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . MenuItem Ċ import Ġorg . and status . app . Activity Request Code Ċ import Ġorg . and status . app . Intent Extra Ċ import Ġorg . and status . app . R Ċ import Ġorg . and status . app . Search Objects Ċ import Ġorg . and status . app . net . social . Actor Ċ import Ġorg . and status . app . note . Note Editor List Activity Ċ import Ġorg . and status . app . service . Command Data Ċ import Ġorg . and status . app . service . Command Enum Ċ import Ġorg . and status . app . service . My Service Manager Ċ import Ġorg . and status . app . timeline . Base Timeline Adapter Ċ import Ġorg . and status . app . timeline . List Scope Ċ import Ġorg . and status . app . timeline . Which Page Ċ import Ġorg . and status . app . timeline . meta . Timeline Ċ import Ġorg . and status . app . util . I 1 8 n Ċ import Ġorg . and status . app . util . My Html Ċ import Ġorg . and status . app . util . My Log Ċ import Ġorg . and status . app . util . My StringBuilder Ċ import Ġorg . and status . app . view . My ContextMenu Ċ import Ġkotlin . reflect . K Class Ċ Ċ /** Ċ Ġ* ĠList Ġof Ġactors Ġfor Ġdifferent Ġcontexts Ċ Ġ* Ġe . g . Ġ" Act ors Ġof Ġthe Ġnote ", Ġ" Follow ers Ġof Ġmy Ġaccount ( s )" Ġetc . Ċ Ġ* Ġ@ author Ġy vol k @ y ur iv olk ov . com Ċ Ġ*/ Ċ open Ġclass ĠAct ors Screen ( clazz : ĠK Class < *> Ġ= ĠAct ors Screen :: class ) Ġ: ĠNote Editor List Activity < Actor View Item >( clazz ) Ġ{ ĊĠĠĠ Ġprotected Ġvar Ġactors Screen Type : ĠAct ors Screen Type Ġ= ĠAct ors Screen Type . UNKNOWN ĊĠĠĠ Ġprivate Ġvar Ġcontext Menu : ĠActor ContextMenu ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġif Ġ( is Finish ing ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġactors Screen Type Ġ= Ġparsed Uri . get Act ors Screen Type () ĊĠĠĠĠĠĠĠ Ġcontext Menu Ġ= ĠActor ContextMenu ( this , ĠMy ContextMenu . MENU _ GROUP _ OBJ ACT OR ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġmenu Inflater . inflate ( R . menu . actors , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . onCreate Options Menu ( menu ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . sync _ menu _ item Ġ-> Ġsync With Internet ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġreturn Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Refresh () Ġ{ ĊĠĠĠĠĠĠĠ Ġsync With Internet ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġsync With Internet ( man ually La unched : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmethod Ġ= Ġ" sync With Internet " ĊĠĠĠĠĠĠĠ Ġif Ġ( parsed Uri . is Search ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Sync ing ( method , ĠgetText ( R . string . options _ menu _ sync )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMy Service Manager . send Manual Foreground Command ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommand Data . new Search ( Search Objects . ACT ORS , Ġmy Context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparsed Uri . get Origin ( my Context ), Ġparsed Uri . search Query )) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow List ( Which Page . CURRENT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Sync ing ( method ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġnew Sync Loader ( args : ĠBundle ?): ĠAct ors Loader Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( actors Screen Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAct ors Screen Type . ACT ORS _ OF _ NOTE Ġ-> ĠAct ors Of Note Loader ( my Context , Ġactors Screen Type , Ġparsed Uri . get Origin ( my Context ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcentral ItemId , Ġparsed Uri . search Query ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠAct ors Loader ( my Context , Ġactors Screen Type , Ġparsed Uri . get Origin ( my Context ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcentral ItemId , Ġparsed Uri . search Query ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Context ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext Menu ?. on Context ItemSelected ( item ) ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Context ItemSelected ( item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġnew ListAdapter (): ĠBase Timeline Adapter < Actor View Item > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠActor Adapter ( context Menu !! , ĠR . layout . actor , ĠgetList Loader (). getList (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTimeline . from Parsed Uri ( my Context , Ġparsed Uri , Ġ"")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetList Loader (): ĠAct ors Loader Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget Loaded () Ġas ĠAct ors Loader ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Custom Title (): ĠCharSequence Ġ{ ĊĠĠĠĠĠĠĠ Ġm Subtitle Ġ= ĠI 1 8 n . trim Text At ( My Html . html To Compact Plain Text ( getList Loader (). get Subtitle ()), Ġ 8 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= ĠMy StringBuilder () ĊĠĠĠĠĠĠĠ Ġif Ġ( actors Screen Type . scope Ġ== ĠList Scope . ORIGIN ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle . with Space ( actors Screen Type . title ( this )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġorigin Ġ= Ġparsed Uri . get Origin ( my Context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( origin . isValid ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle . with Space ( actors Screen Type . scope . timeline Pre position ( my Context )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle . with Space ( origin . name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactor : ĠActor Ġ= ĠActor . load ( my Context , Ġparsed Uri . get Actor Id ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( actor . isEmpty ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle . with Space ( actors Screen Type . title ( this )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle . with Space ( actors Screen Type . title ( this , Ġactor . actor Name In Timeline )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( parsed Uri . search Query . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle . with Space ("'" Ġ+ Ġparsed Uri . search Query Ġ+ Ġ"' ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtitle . toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis Command To Show In Sync Indicator ( command Data : ĠCommand Data ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( command Data . command ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCommand Enum . GET _ ACT OR , ĠCommand Enum . GET _ FOLLOW ERS , ĠCommand Enum . GET _ FR I END S , ĠCommand Enum . FOLLOW , ĠCommand Enum . UN DO _ FOLLOW , ĠCommand Enum . SEARCH _ ACT ORS , ĠCommand Enum . GET _ AV AT AR Ġ-> Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis Refresh Needed After Executing ( command Data : ĠCommand Data ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( command Data . command ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCommand Enum . FOLLOW , ĠCommand Enum . UN DO _ FOLLOW , ĠCommand Enum . SEARCH _ ACT ORS Ġ-> Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġsuper . is Refresh Needed After Executing ( command Data ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmethod Ġ= Ġ" on Activity Result " ĊĠĠĠĠĠĠĠ ĠMy Log . v ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( method Ġ+ Ġ"; Ġrequest :" Ġ+ Ġrequest Code Ġ+ Ġ", Ġresult :" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġif Ġ( result Code Ġ== ĠRESULT _ OK ) Ġ" ok " Ġelse Ġ" fail ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( result Code Ġ!= ĠRESULT _ OK Ġ|| Ġdata Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġwhen Ġ( Activity Request Code . from Id ( request Code )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠActivity Request Code . SELECT _ ACCOUNT _ TO _ ACT _ AS Ġ-> Ġaccount To Act As Selected ( data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġsuper . on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġaccount To Act As Selected ( data : ĠIntent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġma Ġ= Ġmy Context . accounts . from AccountName ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . getString Extra ( Intent Extra . ACCOUNT _ NAME . key )) ĊĠĠĠĠĠĠĠ Ġif Ġ( ma . isValid ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext Menu ?. setSelected Act ing Account ( ma ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext Menu ?. show ContextMenu () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġm Layout Id Ġ= ĠR . layout . my _ list _ swipe ĊĠĠĠ Ġ} Ċ } Ċ