package Ġcom . me . imp ression . service Ċ Ċ import Ġcom . me . imp ression . base . Base Api Remote Source Ċ import Ġcom . me . imp ression . common . URL Ċ import Ġcom . me . imp ression . entity . Translate Result Ċ import Ġio . reactivex . Observable Ċ Ċ /** Ċ Ġ* Ġ@ author : J ie ĠC ai Ċ Ġ* Ġ@ desc ï¼ļ public Ġapi Ġrepository Ċ Ġ*/ Ċ class ĠApi Remote Source ( private Ġval Ġm Api : ĠApi Service ): ĠBase Api Remote Source (), Api Source Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Volatile ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġs Instance : ĠApi Remote Source ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġfun ĠgetInstance ( service : ApiService ): ĠApi Source Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( s Instance Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsynchronized ( Api Remote Source :: class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( s Instance Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs Instance Ġ= ĠApi Remote Source ( service ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġs Instance !! ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġtranslate ( params : ĠMap < String , ĠString >): ĠObservable < Translate Result > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠObservable . just ( params ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map < Map < String , ĠString >> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġapi Params : Mutable Map < String , String > Ġ= ĠHashMap () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi Params [" q "] Ġ= Ġit [" q "] Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi Params [" from "] Ġ= Ġit [" from "] Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi Params [" to "] Ġ= Ġit [" to "] Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi Params [" appid "] Ġ= Ġit [" appid "] ?: "" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi Params [" salt "] Ġ= Ġit [" salt "] ?: "" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi Params [" sign "] Ġ= Ġit [" sign "] ?: "" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi Params ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. filter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Params ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. flatMap Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Api . translate ( URL . TRANSL ATE _ URL , Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. onError Resume Next ( HttpResponse Error Interceptor < Translate Result >()) ĊĠĠĠ Ġ} Ċ }