package Ġcom . p ach at ary . presentation . scene . edition Ċ Ċ import Ġandroid . arch . lifecycle . Lifecycle Ċ import Ġandroid . arch . lifecycle . Lifecycle Observer Ċ import Ġandroid . arch . lifecycle . On Lifecycle Event Ċ import Ġcom . p ach at ary . data . scene . Scene Ċ import Ġcom . p ach at ary . data . scene . Scene Repository Ċ import Ġio . reactivex . dis pos ables . Disposable Ċ import Ġio . reactivex . Scheduler Ċ import Ġjavax . inject . Inject Ċ import Ġjavax . inject . Named Ċ Ċ class ĠCreate Scene Presenter Ġ@ Inject Ġconstructor ( private Ġval Ġscene Repository : ĠScene Repository , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Named (" main ") Ġprivate Ġval Ġmain Scheduler : ĠScheduler ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ: ĠLifecycle Observer Ġ{ ĊĊĠĠĠ Ġlateinit Ġvar Ġexperience Id : ĠString ĊĠĠĠ Ġlateinit Ġvar Ġview : ĠCreate Scene View ĊĠĠĠ Ġvar Ġdis posable : ĠDis posable ? Ġ= Ġnull ĊĊĠĠĠ Ġfun Ġset View And Experience Id ( view : ĠCreate Scene View , Ġexperience Id : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . view Ġ= Ġview ĊĠĠĠĠĠĠĠ Ġthis . experience Id Ġ= Ġexperience Id ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ On Lifecycle Event ( Lifecycle . Event . ON _ DESTROY ) ĊĠĠĠ Ġfun Ġdestroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġdis posable ?. dispose () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠonCreate Button Click () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( view . title (). isEmpty () Ġ|| Ġview . title (). length Ġ> Ġ 8 0 ) Ġview . show Title Error () ĊĠĠĠĠĠĠĠ Ġelse Ġif Ġ( view . description (). isEmpty ()) Ġview . show Description Error () ĊĠĠĠĠĠĠĠ Ġelse Ġif Ġ( view . picture () Ġ== Ġnull ) Ġview . show Picture Error () ĊĠĠĠĠĠĠĠ Ġelse Ġif Ġ( view . latitude () Ġ== Ġnull Ġ|| Ġview . longitude () Ġ== Ġnull ) Ġview . show Location Error () ĊĠĠĠĠĠĠĠ Ġelse Ġcreate Scene () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Scene () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġscene To Create Ġ= ĠScene ( id Ġ= Ġ"", Ġtitle Ġ= Ġview . title (), Ġdescription Ġ= Ġview . description (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlatitude Ġ= Ġview . latitude () !! , Ġlongitude Ġ= Ġview . longitude () !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexperience Id Ġ= Ġexperience Id , Ġpicture Ġ= Ġnull ) ĊĠĠĠĠĠĠĠ Ġdis posable Ġ= Ġscene Repository . create Scene ( scene To Create ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( main Scheduler ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . is InProgress () Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . show Loader () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . disable Create Button () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . is Success () Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . hide Loader () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Scene Created Correct ly ( it . data !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . isError () Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . hide Loader () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . enable Create Button () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . show Error () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ}, Ġ{ Ġthrow Ġit Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Scene Created Correct ly ( scene : ĠScene ) Ġ{ ĊĠĠĠĠĠĠĠ Ġscene Repository . upload Scene Picture ( scene . id , Ġview . picture () !! ) ĊĠĠĠĠĠĠĠ Ġview . finish () ĊĠĠĠ Ġ} Ċ }