package Ġcom . global . star . android . data Ċ Ċ import Ġandroid . app . Application Ċ import Ġandroid . content . Context Ċ import Ġandroidx . room . Room Ċ import Ġcom . global . star . android . data . api . Un Authorization Header Interceptor Ċ import Ġcom . global . star . android . data . api . User Network Module Ċ import Ġcom . global . star . android . data . api . User Network Service Ċ import Ġcom . global . star . android . data . common . Header Type Ċ import Ġcom . global . star . android . data . db . Github User Dao Ċ import Ġcom . global . star . android . data . db . Github User Remote Keys Dao Ċ import Ġcom . global . star . android . data . db . Local DB Ċ import Ġcom . global . star . android . data . entities . Github User Remote Keys Ċ import Ġcom . global . star . android . data . repositories . Github UserRepository Impl Ċ import Ġcom . global . star . android . domain . repositories . Github UserRepository Ċ import Ġdagger . Bind s Ċ import Ġdagger . Module Ċ import Ġdagger . Provides Ċ import Ġokhttp 3 . Interceptor Ċ import Ġokhttp 3 . logging . Http Logging Interceptor Ċ import Ġjavax . inject . Named Ċ import Ġjavax . inject . Singleton Ċ Ċ @ Module ( includes Ġ= Ġ[ Data Repository Module :: class ]) Ċ class ĠData Module Ġ{ ĊĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide Github User Network Service (): ĠUser Network Service Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠUser Network Module . getInstance (). userService () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Named ( Header Type . UN _ AUTHORIZATION ) ĊĠĠĠ Ġfun Ġprovide Un Authorization Header (): ĠInter ceptor Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠUn Authorization Header Interceptor () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Named ( Header Type . LOGGER ) ĊĠĠĠ Ġfun Ġprovide Logger Header (): ĠInter ceptor Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠHttp Logging Interceptor (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlevel Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build Config . DEBUG ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHttp Logging Interceptor . Level . BODY ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHttp Logging Interceptor . Level . NONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide Db ( context : ĠContext ): ĠLocal DB Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠRoom ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. database Builder ( context , ĠLocal DB :: class . java , Ġ" star . local . db ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fallback To Dest ruct ive Migration () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide User Dao ( db : ĠLocal DB ): ĠGithub User Dao Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdb . user Dao () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide User Remote Key Dao ( db : ĠLocal DB ): ĠGithub User Remote Keys Dao Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdb . user Remote Key Dao () ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Module Ċ interface ĠData Repository Module Ġ{ ĊĠĠĠ Ġ@ Bind s ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġbind Github UserRepository ( github UserRepository Impl : ĠGithub UserRepository Impl ): ĠGithub UserRepository Ċ }