package Ġuk . co . to mek . open weather kt . dependency . module Ċ Ċ import Ġcom . jak ew h art on . ret rofit 2 . adapter . rx java 2 . Rx Java 2 Call Adapter Factory Ċ import Ġcom . squareup . mos hi . M oshi Ċ import Ġdagger . Module Ċ import Ġdagger . Provides Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . logging . Http Logging Interceptor Ċ import Ġretrofit 2 . Call Adapter Ċ import Ġretrofit 2 . Converter Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . converter . mos hi . M oshi Converter Factory Ċ import Ġuk . co . to mek . open weather kt . Build Config Ċ import Ġuk . co . to mek . open weather kt . network . Open Weather Network Service Ċ import Ġuk . co . to mek . open weather kt . rx . Schedulers Provider Ċ import Ġjavax . inject . Singleton Ċ Ċ /** Ċ Ġ* ĠMain Ġapp Ġdagger Ġdependency Ġmodule . Ċ Ġ*/ Ċ @ Module Ċ class ĠMain Module Ġ{ ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġinternal Ġfun Ġprovide Schedulers Provider () Ġ= ĠS chedulers Provider () ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġinternal Ġfun Ġprovide Call Adapter Factory ( schedul ers Provider : ĠS chedulers Provider ): ĠCall Adapter . Factory ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ= ĠRx Java 2 Call Adapter Factory . create With Scheduler ( schedul ers Provider . io ()) ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġinternal Ġfun Ġprovide BaseUrl (): ĠBase Url Ġ= ĠBuild Config . SERVER _ URL ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġinternal Ġfun Ġprovide HttpClient (): ĠOk HttpClient Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠOk HttpClient . Builder () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( Build Config . DEBUG ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġadd ĠHTTP Ġlogging ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlogging Interceptor Ġ= ĠHttp Logging Interceptor () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogging Interceptor . level Ġ= ĠHttp Logging Interceptor . Level . BODY ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . add Interceptor ( logging Interceptor ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġbuilder . build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġinternal Ġfun Ġprovide Ret rofit ( baseUrl : ĠBase Url , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconverter Factory : ĠConverter . Factory , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall Adapter Factory : ĠCall Adapter . Factory , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠhttpClient : ĠOk HttpClient ): ĠRet rofit Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl ( baseUrl ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( converter Factory ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Call Adapter Factory ( call Adapter Factory ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. client ( httpClient ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġinternal Ġfun Ġprovide Converter Factory ( mos hi : ĠM oshi ): ĠConverter . Factory Ġ= ĠM oshi Converter Factory . create ( mos hi ) ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġinternal Ġfun Ġprovide M oshi (): ĠM oshi Ġ= ĠM oshi . Builder (). build () ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġinternal Ġfun Ġprovide Open Weather Network Service ( ret rofit : ĠRet rofit ): ĠOpen Weather Network Service Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġretrofit . create < Open Weather Network Service >( Open Weather Network Service :: class . java ) Ċ } Ċ type alias ĠBase Url Ġ= ĠString Ċ