package Ġcom . ry git al . feature _ currency _ list _ impl . data Ċ Ċ import Ġcom . ry git al . feature _ currency _ list _ impl . domain . Currency Repository Ċ import Ġcom . ry git al . feature _ currency _ list _ impl . domain . model . Currency Rate Model Ċ import Ġcom . ry git al . feature _ currency _ list _ impl . domain . model . Exchange Rates Model Ċ import Ġio . reactivex . rx java 3 . core . Single Ċ import Ġjavax . inject . Inject Ċ Ċ internal Ġclass ĠCurrency Repository Impl Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġcurrency Service : ĠCurrency Service Ċ ) Ġ: ĠCurrency Repository Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠDEFAULT _ BASE _ CUR RE NCY _ RATE Ġ= Ġ 1 . 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Latest Rates ( base Currency : ĠString ): ĠSingle < Exchange Rates Model > Ġ= ĊĠĠĠĠĠĠĠ Ġcurrency Service . get Latest Rates ( base Currency ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġcurrency Latest Response Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbase Currency Rate Ġ= ĠCurrency Rate Model ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrency Latest Response . base Currency , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDEFAULT _ BASE _ CUR RE NCY _ RATE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrates Ġ= Ġcurrency Latest Response . rates . entries ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĠCurrency Rate Model ( it . key , Ġit . value ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠExchange Rates Model ( base Currency Rate , Ġrates ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ } Ċ