package Ġcom . ed win . rand omp icture . domain . inter actor . use case Ċ Ċ import Ġcom . ed win . rand omp icture . domain . executor . Post Execution Thread Ċ import Ġcom . ed win . rand omp icture . domain . executor . Thread Executor Ċ import Ġcom . ed win . rand omp icture . domain . inter actor . Single UseCase Ċ import Ġcom . ed win . rand omp icture . domain . model . Photo Ċ import Ġcom . ed win . rand omp icture . domain . repository . Photo Repository Ċ import Ġio . reactivex . Single Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠSave Photo Ġ@ Inject Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġphoto Repository : ĠPhoto Repository , ĊĠĠĠĠĠĠĠ Ġthread Executor : ĠThread Executor , ĊĠĠĠĠĠĠĠ Ġpost Execution Thread : ĠPost Execution Thread ) Ġ: ĊĠĠĠĠĠĠĠ ĠSingle UseCase < Photo , ĠByteArray >( thread Executor , Ġpost Execution Thread ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġbuild UseCase Observable ( params : ĠByteArray ): ĠSingle < Photo > Ġ= Ġphoto Repository . save Photo ( Photo ( byteArray Ġ= Ġparams )) Ċ Ċ }