package Ġcom . zh u inden . simple stack demo example mvp . features . task detail Ċ Ċ import Ġcom . zh u inden . simple stack . Back stack Ċ import Ġcom . zh u inden . simple stack demo example mvp . core . mvp . Base Presenter Ċ import Ġcom . zh u inden . simple stack demo example mvp . core . navigation . getKey Ċ import Ġcom . zh u inden . simple stack demo example mvp . data . models . Task Ċ import Ġcom . zh u inden . simple stack demo example mvp . data . repository . Task Repository Ċ import Ġcom . zh u inden . simple stack demo example mvp . features . add ored it task . Add Or Edit Task Key Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠOwner Ġon Ġ 2 0 1 7 . Ġ 0 1 . Ġ 2 7 .. Ċ Ġ*/ Ċ Ċ class ĠTask Detail Presenter ( ĊĠĠĠ Ġprivate Ġval Ġtask Repository : ĠTask Repository , ĊĠĠĠ Ġprivate Ġval Ġback stack : ĠBack stack Ċ ) Ġ: ĠBase Presenter < Task Detail View >(), ĠTask Detail View . Presenter Ġ{ ĊĠĠĠ Ġlateinit Ġvar Ġtask Detail Key : ĠTask Detail Key ĊĊĠĠĠ Ġvar ĠtaskId : ĠString Ġ= Ġ"" ĊĊĠĠĠ Ġvar Ġtask : ĠTask ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġon Attach ( view : ĠTask Detail View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtask Detail Key Ġ= ĠBack stack . getKey ( view . context ) ĊĠĠĠĠĠĠĠ Ġthis . taskId Ġ= Ġtask Detail Key . taskId ĊĠĠĠĠĠĠĠ Ġtask Repository . find Task ( taskId ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ Ġtask Optional Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtask Ġ= Ġtask Optional . take If Ġ{ Ġit . isPresent Ġ} ?. get () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . task Ġ= Ġtask ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( task Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . show Task ( task ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . show Missing Task () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Detach ( view : ĠTask Detail View ) Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Task Edit Button Clicked () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( taskId . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview !!. show Missing Task () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġback stack . goTo ( Add Or Edit Task Key . Edit Task Key ( view !!. getKey (), ĠtaskId )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcomplete Task ( task : ĠTask ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtask Repository . set Task Completed ( task ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġactivate Task ( task : ĠTask ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtask Repository . set Task Active ( task ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Task Checked ( task : ĠTask , Ġchecked : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( checked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcomplete Task ( task ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivate Task ( task ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Task Delete Button Clicked () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( task Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtask Repository . delete Task ( task !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġback stack . go Back () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ