package Ġinfo . dv kr . screen stream . presenter Ċ Ċ import Ġcom . crash ly t ics . android . Crash ly t ics Ċ import Ġinfo . dv kr . screen stream . Build Config Ċ import Ġinfo . dv kr . screen stream . d agger . Persistent Scope Ċ import Ġinfo . dv kr . screen stream . model . EventBus Ċ import Ġinfo . dv kr . screen stream . model . Global Status Ċ import Ġinfo . dv kr . screen stream . ui . Start Activity View Ċ import Ġrx . Scheduler Ċ import Ġrx . subscriptions . Composite Subscription Ċ import Ġjavax . inject . Inject Ċ Ċ @ Persistent Scope Ċ class ĠStart Activity Presenter Ġ@ Inject Ġinternal Ġconstructor ( private Ġval Ġevent Scheduler : ĠScheduler , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġevent Bus : ĠEvent Bus , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġglobal Status : ĠGlobal Status ) Ġ{ ĊĠĠĠ Ġprivate Ġval ĠTAG Ġ= Ġ" Start Activity Presenter " ĊĊĠĠĠ Ġprivate Ġval Ġsubscriptions Ġ= ĠComposite Subscription () ĊĠĠĠ Ġprivate Ġvar ĠstartActivity : ĠStart Activity View ? Ġ= Ġnull ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Build Config . DEBUG _ MODE ) Ġprintln ( TAG Ġ+ Ġ": ĠThread Ġ[ ${ Thread . currentThread (). name }] ĠConstructor ") ĊĠĠĠĠĠĠĠ ĠCrash ly t ics . log ( 1 , ĠTAG , Ġ" Constructor ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġattach ( activity : ĠStart Activity View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Build Config . DEBUG _ MODE ) Ġprintln ( TAG Ġ+ Ġ": ĠThread Ġ[ ${ Thread . currentThread (). name }] ĠAttach ") ĊĠĠĠĠĠĠĠ ĠCrash ly t ics . log ( 1 , ĠTAG , Ġ" Attach ") ĊĊĠĠĠĠĠĠĠ ĠstartActivity ?. let Ġ{ Ġdetach () Ġ} ĊĠĠĠĠĠĠĠ ĠstartActivity Ġ= Ġactivity ĊĊĠĠĠĠĠĠĠ Ġ// ĠEvents Ġfrom ĠStart Activity ĊĠĠĠĠĠĠĠ ĠstartActivity ?. from Event ()?. observe On ( event Scheduler )?. subscribe Ġ{ Ġfrom Event Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build Config . DEBUG _ MODE ) Ġprintln ( TAG Ġ+ Ġ": ĠThread Ġ[ ${ Thread . currentThread (). name }] Ġfrom Event : Ġ$ from Event ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( from Event ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠRelay ing Ġmessage Ġto ĠFore ground Service Presenter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠStart Activity View . From Event . Current Interfaces Request Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent Bus . send Event ( EventBus . Global Event . Current Interfaces Request ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSending Ġmessage Ġto ĠStart Activity ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠStart Activity View . From Event . Try Start Stream Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( global Status . is Stream Running . get ()) Ġreturn @ subscribe ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġglobal Status . error . set ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ?. to Event ( Start Activity View . To Event . Try To Start ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠRelay ing Ġmessage Ġto ĠFore ground Service Presenter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠStart Activity View . From Event . Stop Stream Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! global Status . is Stream Running . get ()) Ġreturn @ subscribe ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent Bus . send Event ( EventBus . Global Event . Stop Stream ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠRelay ing Ġmessage Ġto ĠFore ground Service Presenter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠStart Activity View . From Event . App Exit Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent Bus . send Event ( EventBus . Global Event . App Exit ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠGetting Ġ ĠError ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠStart Activity View . From Event . Error Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġglobal Status . error . set ( from Event . error ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ?. to Event ( Start Activity View . To Event . Error ( from Event . error )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠGetting Ġcurrent ĠError ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠStart Activity View . From Event . GetError Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ?. to Event ( Start Activity View . To Event . Error ( global Status . error . get ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġprintln ( TAG Ġ+ Ġ": ĠThread Ġ[ ${ Thread . currentThread (). name }] Ġfrom Event : Ġ$ from Event ĠWAR RING : ĠIG NO RED ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. also Ġ{ Ġsubscriptions . add ( it ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠGlobal Ġevents ĊĠĠĠĠĠĠĠ Ġevent Bus . getEvent (). filter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġis ĠEvent Bus . Global Event . Stream Status Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġis ĠEvent Bus . Global Event . Resize Factor Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġis ĠEvent Bus . Global Event . Enable Pin Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġis ĠEvent Bus . Global Event . Set Pin Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġis ĠEvent Bus . Global Event . Current Clients Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġis ĠEvent Bus . Global Event . Current Interfaces Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġis ĠEvent Bus . Global Event . Traffic Point ĊĠĠĠĠĠĠĠ Ġ}. subscribe Ġ{ Ġglobal Event Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build Config . DEBUG _ MODE ) Ġprintln ( TAG Ġ+ Ġ": ĠThread Ġ[ ${ Thread . currentThread (). name }] Ġglobal Event : Ġ$ global Event ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( global Event ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠFrom ĠImage Generator Impl ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠEvent Bus . Global Event . Stream Status Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ?. to Event ( Start Activity View . To Event . On Stream Start Stop ( global Status . is Stream Running . get ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠFrom ĠSettings Activity Presenter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠEvent Bus . Global Event . Resize Factor Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ?. to Event ( Start Activity View . To Event . Resize Factor ( global Event . value )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠFrom ĠSettings Activity Presenter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠEvent Bus . Global Event . Enable Pin Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ?. to Event ( Start Activity View . To Event . Enable Pin ( global Event . value )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠFrom ĠSettings Activity Presenter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠEvent Bus . Global Event . Set Pin Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ?. to Event ( Start Activity View . To Event . Set Pin ( global Event . value )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠFrom ĠHttp Server Impl ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠEvent Bus . Global Event . Current Clients Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ?. to Event ( Start Activity View . To Event . Current Clients ( global Event . clients List )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠFrom ĠFore ground Service Presenter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠEvent Bus . Global Event . Current Interfaces Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ?. to Event ( Start Activity View . To Event . Current Interfaces ( global Event . interface List )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠFrom ĠHttp Server Impl ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠEvent Bus . Global Event . Traffic Point Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ?. to Event ( Start Activity View . To Event . Traffic Point ( global Event . traffic Point )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. also Ġ{ Ġsubscriptions . add ( it ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠSending Ġcurrent Ġstream Ġstatus ĊĠĠĠĠĠĠĠ ĠstartActivity ?. to Event ( Start Activity View . To Event . Stream Running ( global Status . is Stream Running . get ())) ĊĊĠĠĠĠĠĠĠ Ġ// ĠRequest ing Ġcurrent Ġclients ĊĠĠĠĠĠĠĠ Ġevent Bus . send Event ( EventBus . Global Event . Current Clients Request ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdetach () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Build Config . DEBUG _ MODE ) Ġprintln ( TAG Ġ+ Ġ": ĠThread Ġ[ ${ Thread . currentThread (). name }] ĠDet ach ") ĊĠĠĠĠĠĠĠ ĠCrash ly t ics . log ( 1 , ĠTAG , Ġ" Detach ") ĊĠĠĠĠĠĠĠ Ġsubscriptions . clear () ĊĠĠĠĠĠĠĠ ĠstartActivity Ġ= Ġnull ĊĠĠĠ Ġ} Ċ }