package Ġcom . ki en ht . gap o . core . di . module Ċ Ċ import Ġandroid . app . Application Ċ import Ġcom . ki en ht . gap o . core . di . Core Application Ċ import Ġcom . ki en ht . gap o . shared . qual ifier . Debug Mode Qualifier Ċ import Ġcom . squareup . mos hi . M oshi Ċ import Ġcom . squareup . mos hi . kotlin . reflect . Kotlin Json Adapter Factory Ċ import Ġdagger . Bind s Ċ import Ġdagger . Module Ċ import Ġdagger . Provides Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . logging . Http Logging Interceptor Ċ import Ġjavax . inject . Singleton Ċ Ċ /** Ċ Ġ* Ġ@ author Ġk ien ht Ċ Ġ*/ Ċ Ċ @ Module Ċ abstract Ġclass ĠCore Module Ġ{ ĊĊĠĠĠ Ġ@ Bind s ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġinternal Ġabstract Ġfun Ġbind Application ( app : ĠCore Application ): ĠApplication ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Provides ĊĠĠĠĠĠĠĠ Ġ@ Singleton ĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġprovide M oshi (): ĠM oshi Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠM oshi . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add ( Kotlin Json Adapter Factory ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Provides ĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġprovide Ok HttpClient ( interceptor : ĠHttp Logging Interceptor ): ĠOk HttpClient Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOk HttpClient . Builder (). add Interceptor ( interceptor ). build () ĊĊĠĠĠĠĠĠĠ Ġ@ Provides ĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġprovide Logging Interceptor ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Debug Mode Qualifier Ġis Debug : ĠBoolean ĊĠĠĠĠĠĠĠ Ġ): ĠHttp Logging Interceptor Ġ= ĠHttp Logging Interceptor () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlevel Ġ= Ġif Ġ( isDebug ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHttp Logging Interceptor . Level . BODY ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHttp Logging Interceptor . Level . NONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }