package Ġcom . art uro st row ski . quiz . app . ui . login . inter actor Ċ Ċ import Ġcom . art uro st row ski . quiz . app . data . database . repository . user . User Ċ import Ġcom . art uro st row ski . quiz . app . data . database . repository . user . User Repo Ċ import Ġcom . art uro st row ski . quiz . app . data . network . Api Helper Ċ import Ġcom . art uro st row ski . quiz . app . data . network . request . Login Request Ċ import Ġcom . art uro st row ski . quiz . app . data . preferences . Preference Helper Ċ import Ġcom . art uro st row ski . quiz . app . ui . base . inter actor . Base Interactor Ċ import Ġio . reactivex . Observable Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠLogin Interactor Ġ@ Inject Ġconstructor ( private Ġval Ġuser Repo : ĠUser Repo , Ġpreference Helper : ĠPreference Helper , Ġapi Helper : ĠApi Helper ) Ġ: ĠBase Interactor ( preference Helper , Ġapi Helper ), ĠLogin M VP Interactor Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġdo Server Login Api Call ( email : ĠString , Ġpassword : ĠString ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi Helper . login ( Login Request ( email , Ġpassword )) ĊĊĠĠĠ Ġoverride Ġfun Ġinsert User ( user : ĠUser ): ĠObservable < Boolean > Ġ{ ĊĠĠĠĠĠĠĠ Ġuser Repo . insert User ( user ) ĊĠĠĠĠĠĠĠ Ġreturn ĠObservable . just ( true ) Ċ Ċ // ĠĠĠĠĠĠĠ Ġreturn Ġuser Repo . is User Repo Empty (). concat Map Ġ{ ĠisEmpty Ġ-> Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġif ( isEmpty ){ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser Repo . insert User ( user ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠObservable . just ( false ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ Ċ }