package Ġcom . base . search app . ui . pages . main . repository Ċ Ċ import Ġcom . base . core . extensions .* Ċ import Ġcom . base . core . networking . Data Fetch Result Ċ import Ġcom . base . core . networking . Scheduler Ċ import Ġcom . base . data . response . Search ListResponse Ċ import Ġio . reactivex . dis pos ables . Composite Disposable Ċ import Ġio . reactivex . subjects . Publish Subject Ċ import Ġtim ber . log . Tim ber Ċ Ċ /** Ċ Ġ* ĠĠ ĠCreated Ġby ĠEm re ĠU YG UN Ġon Ġ 1 2 / 5 / 2 0 Ċ Ġ*/ Ċ Ċ class ĠMainActivity Repository ( ĊĠĠĠ Ġprivate Ġval Ġremote : ĠMainActivity Remote Data , ĊĠĠĠ Ġprivate Ġval Ġscheduler : ĠScheduler , ĊĠĠĠ Ġprivate Ġval Ġcomposite Disposable : ĠComposite Disposable Ċ ) Ġ: ĠMainActivity Contract . Repository Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġ< T > Ġhandle Error ( ĊĠĠĠĠĠĠĠ Ġdata Fetch Result : ĠPublish Subject < Data Fetch Result < T >>, ĊĠĠĠĠĠĠĠ Ġerror : ĠThrowable ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdata Fetch Result . failed ( error ) ĊĠĠĠĠĠĠĠ ĠTim ber . e ( error . localized Message ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġsearch List Data Result Ġ= ĠPublish Subject . create < Data Fetch Result < Search ListResponse >>() ĊĊĠĠĠ Ġoverride Ġfun Ġget Search List ( term : ĠString ?, Ġmedia : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsearch List Data Result . loading ( true ) ĊĠĠĠĠĠĠĠ Ġremote . get Search List ( term , Ġmedia ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. perform On Back Out On Main ( scheduler ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsearch List Data Result . success ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġ_ error Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Error ( search List Data Result , Ġ_ error ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). addTo ( composite Disposable ) ĊĠĠĠ Ġ} Ċ } Ċ