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 . Comp letable UseCase Ċ import Ġcom . ed win . rand omp icture . domain . repository . Session Repository Ċ import Ġio . reactivex . Comp letable Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠLogin Ġ@ Inject Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġsession Repository : ĠSession Repository , ĊĠĠĠĠĠĠĠ Ġthread Executor : ĠThread Executor , ĊĠĠĠĠĠĠĠ Ġpost Execution Thread : ĠPost Execution Thread ) Ġ: ĊĠĠĠĠĠĠĠ ĠComp letable UseCase < Login . Login Param >( thread Executor , Ġpost Execution Thread ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġbuild UseCase Observable ( params : ĠLogin Param ): ĠComp letable Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsession Repository . login ( params ) ĊĊĠĠĠ Ġinner Ġclass ĠLogin Param ( val Ġemail : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpassword : ĠString ) Ċ }