package Ġcom . ja ime gc . agile mobile challenge . di Ċ Ċ import Ġandroid . content . Context Ċ import Ġcom . ja ime gc . agile mobile challenge . R Ċ import Ġcom . ja ime gc . agile mobile challenge . common . Real Time Provider Ċ import Ġcom . ja ime gc . agile mobile challenge . common . Time Provider Ċ import Ġcom . ja ime gc . agile mobile challenge . data . api . client . GitHub Repo ApiClient Ċ import Ġcom . ja ime gc . agile mobile challenge . data . api . config . Server Api Config Ċ import Ġcom . ja ime gc . agile mobile challenge . data . api . config . Server Api GitHub Config Builder Ċ import Ġcom . ja ime gc . agile mobile challenge . data . datasource . GitHub Repo DataSource Ċ import Ġcom . ja ime gc . agile mobile challenge . data . datasource . Memory GitHub Repo DataSource Ċ import Ġcom . ja ime gc . agile mobile challenge . data . datasource . Network GitHub Repo DataSource Ċ import Ġcom . ja ime gc . agile mobile challenge . data . repository . GitHub Repo Repository Ċ import Ġcom . ja ime gc . agile mobile challenge . domain . use case . Get GitHub Repos ByUser Ċ import Ġorg . kode in . di . K ode in Ċ import Ġorg . kode in . di . generic .* Ċ Ċ class ĠK ode in Modules ( context : ĠContext ) Ġ{ ĊĊĠĠĠ Ġval Ġrepositories Ġ= ĠK ode in . Module (" repositories ") Ġ{ ĊĠĠĠĠĠĠĠ Ġbind < GitHub Repo Repository >() Ġwith Ġsingleton Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGitHub Repo Repository ( listOf ( instance < GitHub Repo DataSource >(), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNetwork GitHub Repo DataSource ( instance ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġdata Sources Ġ= ĠK ode in . Module (" data Sources ") Ġ{ ĊĠĠĠĠĠĠĠ Ġbind < GitHub Repo DataSource >() Ġwith Ġsingleton Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMemory GitHub Repo DataSource ( instance ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġapi Clients Ġ= ĠK ode in . Module (" api Clients ") Ġ{ ĊĠĠĠĠĠĠĠ Ġbind < GitHub Repo ApiClient >() Ġwith Ġprovider Ġ{ ĠGitHub Repo ApiClient ( instance ()) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġothers Ġ= ĠK ode in . Module (" others ") Ġ{ ĊĠĠĠĠĠĠĠ Ġbind < Time Provider >() Ġwith Ġinstance ( Real Time Provider ()) ĊĊĠĠĠĠĠĠĠ Ġbind < Server Api Config >() Ġwith Ġinstance ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠServer Api GitHub Config Builder ( context . getString ( R . string . base _ api _ url )). build ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġmain Activity Module Ġ= ĠK ode in . Module (" main Activity ") Ġ{ ĊĠĠĠĠĠĠĠ Ġbind < Get GitHub Repos ByUser >() Ġwith Ġprovider Ġ{ ĠGet GitHub Repos ByUser ( instance ()) Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊĊ