package Ġio . sel ja . di Ċ Ċ import Ġio . sel ja . Build Config Ċ import Ġio . sel ja . api . Sel ja Api Ċ import Ġio . sel ja . base . DeviceId Ċ import Ġio . sel ja . permissions . Permission Manager Ċ import Ġio . sel ja . repository . Ad Items DataModel Ċ import Ġio . sel ja . repository . Ad Items DataSource Ċ import Ġio . sel ja . repository . Location Repository Ċ import Ġio . sel ja . ui . details . Ad Item Details ViewModel Ċ import Ġio . sel ja . ui . new IT em . New Item ViewModel Ċ import Ġio . sel ja . ui . overview . Items Overview ViewModel Ċ import Ġio . sel ja . ui . overview . adapter . Items Adapter Ċ import Ġio . sel ja . utils . Camera Helper Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . logging . Http Logging Interceptor Ċ import Ġorg . k oin . android x . view model . dsl . viewModel Ċ import Ġorg . k oin . dsl . module Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . converter . mos hi . M oshi Converter Factory Ċ Ċ val Ġmain Module Ġ= Ġmodule Ġ{ ĊĠĠĠ Ġfactory < Ad Items DataModel > Ġ{ ĠAd Items DataSource ( get ()) Ġ} ĊĠĠĠ Ġfactory Ġ{ ĠPermission Manager () Ġ} ĊĠĠĠ Ġfactory Ġ{ ĠItems Adapter ( get ()) Ġ} ĊĠĠĠ Ġfactory Ġ{ ĠLocation Repository ( get ()) Ġ} ĊĠĠĠ Ġfactory Ġ{ ĠDevice Id () Ġ} ĊĠĠĠ ĠviewModel Ġ{ ĠItems Overview ViewModel ( get (), Ġget ()) Ġ} Ċ } Ċ Ċ val Ġdetails Module Ġ= Ġmodule Ġ{ ĊĠĠĠ ĠviewModel Ġ{ ĠAd Item Details ViewModel ( get (), Ġget (), Ġget ()) Ġ} Ċ } Ċ Ċ val Ġnew Item Module Ġ= Ġmodule Ġ{ ĊĠĠĠ Ġfactory Ġ{ ĠCamera Helper () Ġ} ĊĠĠĠ ĠviewModel Ġ{ ĠNew Item ViewModel ( get (), Ġget (), Ġget ()) Ġ} Ċ } Ċ Ċ val Ġnetwork Module Ġ= Ġmodule Ġ{ ĊĠĠĠ Ġsingle Ġ{ Ġprovide Default Ok httpClient () Ġ} ĊĠĠĠ Ġsingle Ġ{ Ġprovide Ret rofit ( get ()) Ġ} ĊĠĠĠ Ġsingle Ġ{ Ġprovide Sel ja Service ( get ()) Ġ} Ċ } Ċ Ċ fun Ġprovide Default Ok httpClient (): ĠOk HttpClient Ġ{ ĊĠĠĠ Ġval ĠhttpClient Builder Ġ= ĠOk HttpClient . Builder () ĊĠĠĠ Ġadd Debug Interceptor ( httpClient Builder ) ĊĠĠĠ Ġreturn ĠhttpClient Builder . build () Ċ } Ċ Ċ fun Ġprovide Sel ja Service ( ret rofit : ĠRet rofit ): ĠSel ja Api Ġ= Ġretrofit . create ( Sel ja Api :: class . java ) Ċ Ċ fun Ġprovide Ret rofit ( client : ĠOk HttpClient ): ĠRet rofit Ġ{ ĊĠĠĠ Ġreturn ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠ Ġ. baseUrl ( Build Config . BASE _ URL ) ĊĠĠĠĠĠĠĠ Ġ. client ( client ) ĊĠĠĠĠĠĠĠ Ġ. add Converter Factory ( M oshi Converter Factory . create ()) ĊĠĠĠĠĠĠĠ Ġ. build () Ċ } Ċ Ċ private Ġfun Ġadd Debug Interceptor ( httpClient Builder : ĠOk HttpClient . Builder ) Ġ{ ĊĠĠĠ Ġif Ġ( Build Config . DEBUG ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinterceptor Ġ= ĠHttp Logging Interceptor () ĊĠĠĠĠĠĠĠ Ġinterceptor . level Ġ= ĠHttp Logging Interceptor . Level . BODY ĊĠĠĠĠĠĠĠ ĠhttpClient Builder . add Interceptor ( interceptor ) ĊĠĠĠ Ġ} Ċ } ĊĊĊ