package Ġorg . step ik . android . presentation . story Ċ Ċ import Ġio . reactivex . Scheduler Ċ import Ġio . reactivex . rx kotlin . plus Assign Ċ import Ġio . reactivex . rx kotlin . subscribe By Ċ import Ġorg . step ic . d roid . an alytic . Amp litude An alytic Ċ import Ġorg . step ic . d roid . an alytic . An alytic Ċ import Ġorg . step ic . d roid . di . qual ifiers . Background Scheduler Ċ import Ġorg . step ic . d roid . di . qual ifiers . Main Scheduler Ċ import Ġorg . step ik . android . domain . story . inter actor . Story Reaction Interactor Ċ import Ġorg . step ik . android . domain . story . model . Story Reaction Ċ import Ġorg . step ik . android . presentation . story . Story Feature . Action Ċ import Ġorg . step ik . android . presentation . story . Story Feature . Message Ċ import Ġru . nob ird . android . domain . rx . empty OnError Stub Ċ import Ġru . nob ird . android . presentation . redux . dispatcher . Rx Action Dispatcher Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠStory Action Dispatcher Ċ @ Inject Ċ constructor ( ĊĠĠĠ Ġprivate Ġval Ġan alytic : ĠAn alytic , ĊĠĠĠ Ġprivate Ġval Ġstory Reaction Interactor : ĠStory Reaction Interactor , ĊĠĠĠ Ġ@ Background Scheduler ĊĠĠĠ Ġprivate Ġval Ġbackground Scheduler : ĠScheduler , ĊĠĠĠ Ġ@ Main Scheduler ĊĠĠĠ Ġprivate Ġval Ġmain Scheduler : ĠScheduler Ċ ) Ġ: ĠRx Action Dispatcher < Action , ĠMessage >() Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġhandle Action ( action : ĠAction ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( action ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠAction . Fetch Votes Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomposite Disposable Ġ+= Ġstory Reaction Interactor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get St ories Re actions () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( background Scheduler ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( main Scheduler ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. onError Return Item ( empty Map ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe By ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonSuccess Ġ= Ġ{ Ġon New Message ( Message . Vote Fetch Success ( it )) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonError Ġ= Ġempty OnError Stub ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠAction . Save Reaction Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġan alytic . report Amp litude Event ( Amp litude An alytic . St ories . ST ORY _ RE ACTION _ PRES SED , Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAmp litude An alytic . St ories . Values . ST ORY _ ID Ġto Ġaction . story Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAmp litude An alytic . St ories . Values . RE ACTION Ġto Ġaction . reaction . an alytic Name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAmp litude An alytic . St ories . Values . POSITION Ġto Ġaction . story Position ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomposite Disposable Ġ+= Ġstory Reaction Interactor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. save Story Reaction ( action . story Id , Ġaction . reaction ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( background Scheduler ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( main Scheduler ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe By ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonError Ġ= Ġempty OnError Stub ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval ĠStory Reaction . an alytic Name ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStory Reaction . LIKE Ġ-> Ġ" like " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStory Reaction . DIS LIKE Ġ-> Ġ" dis like " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ }