package Ġcom . gal ician weather . injection Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . util . Log Ċ import Ġcom . gal ician weather . data . datasource . Daily Info Remote DataSource Ċ import Ġcom . gal ician weather . data . datasource . Last Minutes Info Remote DataSource Ċ import Ġcom . gal ician weather . data . repository . Weather Repository Ċ import Ġcom . gal ician weather . domain . Get Daily Info UseCase Ċ import Ġcom . gal ician weather . domain . Get Last Minutes Info UseCase Ċ import Ġcom . gal ician weather . domain . UseCase Invoker Ċ import Ġcom . gal ician weather . network . Station Api Ċ import Ġcom . gal ician weather . view . Home Presenter Ċ import Ġcom . gal ician weather . view . Station Details Presenter Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . logging . Http Logging Interceptor Ċ import Ġorg . k oin . android . ext . android . inject Ċ import Ġorg . k oin . core . component . K oin Api Extension Ċ import Ġorg . k oin . core . parameter . parameters Of Ċ import Ġorg . k oin . dsl . module Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . converter . gson . Gson Converter Factory Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠAny > ĠActivity . inject Activity (): ĠLazy < T > Ġ= ĊĠĠĠ Ġinject Ġ{ Ġparameters Of ( this ) Ġ} Ċ Ċ @ K oin Api Extension Ċ object ĠApp Modules Ġ{ ĊĊĠĠĠ Ġprivate Ġconst Ġval Ġtimeout Ġ= Ġ 3 0 L ĊĊĠĠĠ Ġval Ġhome Module Ġ= Ġmodule Ġ{ ĊĠĠĠĠĠĠĠ Ġfactory Ġ{ ĠHome Presenter ( it [ 0 ]) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġstation Details Module Ġ= Ġmodule Ġ{ ĊĠĠĠĠĠĠĠ Ġfactory Ġ{ ĠLast Minutes Info Remote DataSource () Ġ} ĊĠĠĠĠĠĠĠ Ġfactory Ġ{ ĠDaily Info Remote DataSource () Ġ} ĊĊĠĠĠĠĠĠĠ Ġfactory Ġ{ ĠWeather Repository ( get (), Ġget ()) Ġ} ĊĊĠĠĠĠĠĠĠ Ġfactory Ġ{ ĠGet Last Minutes Info UseCase ( get ()) Ġ} ĊĠĠĠĠĠĠĠ Ġfactory Ġ{ ĠGet Daily Info UseCase ( get ()) Ġ} ĊĊĠĠĠĠĠĠĠ Ġfactory Ġ{ ĠUse Case Invoker () Ġ} ĊĊĠĠĠĠĠĠĠ Ġfactory Ġ{ ĠStation Details Presenter ( it [ 0 ], Ġget (), Ġget (), Ġget ()) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġnetwork Module Ġ= Ġmodule Ġ{ ĊĠĠĠĠĠĠĠ Ġsingle Ġ{ Ġstation Api ( get ()) Ġ} ĊĠĠĠĠĠĠĠ Ġsingle Ġ{ Ġretrofit ( get ()) Ġ} ĊĠĠĠĠĠĠĠ Ġsingle Ġ{ Ġok HttpClient () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġstation Api ( ret rofit : ĠRet rofit ): ĠStation Api Ġ= Ġretrofit . create ( Station Api :: class . java ) ĊĊĠĠĠ Ġprivate Ġfun Ġretrofit ( ok HttpClient : ĠOk HttpClient ): ĠRet rofit Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl (" http :// serv iz os . me te og alic ia . gal / rss / observ acion /") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. client ( ok HttpClient ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Gson Converter Factory . create ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġok HttpClient (): ĠOk HttpClient Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠOk HttpClient . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Interceptor ( Http Logging Interceptor Ġ{ Ġmessage Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" Interceptor ", Ġmessage ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. apply Ġ{ Ġlevel Ġ= ĠHttp Logging Interceptor . Level . BODY Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. connect Timeout ( timeout , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. read Timeout ( timeout , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} Ċ } Ċ