package Ġcom . v ictor rub ia . tf g . presentation . di . core Ċ Ċ import Ġandroid . content . Context Ċ import Ġcom . v ictor rub ia . tf g . data . repository . user . UserRepository Impl Ċ import Ġcom . v ictor rub ia . tf g . data . repository . user . datasource . User Cache DataSource Ċ import Ġcom . v ictor rub ia . tf g . data . repository . user . datasource . User Local DataSource Ċ import Ġcom . v ictor rub ia . tf g . data . repository . user . datasource . User Remote Datasource Ċ import Ġcom . v ictor rub ia . tf g . domain . repository . UserRepository Ċ import Ġdagger . Module Ċ import Ġdagger . Provides Ċ import Ġjavax . inject . Singleton Ċ Ċ @ Module Ċ class ĠRepository Module Ġ{ ĊĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide UserRepository ( ĊĠĠĠĠĠĠĠ Ġuser Remote Datasource : ĠUser Remote Datasource , ĊĠĠĠĠĠĠĠ Ġuser Local DataSource : ĠUser Local DataSource , ĊĠĠĠĠĠĠĠ Ġuser Cache DataSource : ĠUser Cache DataSource , ĊĠĠĠ Ġ): ĠUser Repository Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠUser Repository Impl ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Remote Datasource , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Local DataSource , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Cache DataSource , ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ }