package Ġcom . sw api Ċ Ċ import Ġandroid . content . Context Ċ import Ġcom . google . gson . Gson Builder Ċ import Ġcom . sw api . network . Star W ars ApiService Ċ import Ġcom . sw api . network . Star W ars Repository Ċ import Ġcom . sw api . network . Star W ars Repository Impl Ċ import Ġokhttp 3 . Cache Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . logging . Http Logging Interceptor Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . converter . gson . Gson Converter Factory Ċ import Ġtim ber . log . Tim ber Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ /** Ċ Ġ* ĠPrem 's Ġcreation , Ġon Ġ 2 8 / 1 2 / 2 0 Ċ Ġ* Ċ Ġ* ĠThe ĠStar ĠW ars ĠSDK Ġbase Ġclass . ĠContains Ġnetwork Ġcomponents Ġrequired Ġto Ġmake ĠAPI Ġcalls Ċ Ġ*/ Ċ object ĠStar W ars Sdk Ġ{ ĊĊĠ Ġconst Ġval ĠST AR _ WAR S _ NETWORK _ TIMEOUT _ IN _ SECONDS Ġ= Ġ 6 0 L ĊĠ Ġconst Ġval ĠST AR _ WAR S _ NETWORK _ CACHE _ SIZE Ġ= Ġ 2 0 Ġ* Ġ 1 0 2 4 Ġ* Ġ 1 0 2 4 L ĊĠ Ġlateinit Ġvar Ġrepo : ĠStar W ars Repository ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠInitialize ĠStar Ġw ars ĠAPI Ġwith Ġyour Ġown Ġ[ Ret rofit ] Ġinstance ĊĠĠ Ġ*/ ĊĠ Ġfun Ġinit ( ret rofit : ĠRet rofit ) Ġ{ ĊĠĠĠ Ġval Ġapi Ġ= Ġretrofit . create ( Star W ars ApiService :: class . java ) ĊĠĠĠ Ġinit ( Star W ars Repository Impl ( api )) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġinit ( repo : ĠStar W ars Repository ) Ġ{ ĊĠĠĠ Ġthis . repo Ġ= Ġrepo ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠInitialize ĠStar Ġw ars ĠAPI Ġwith Ġa Ġdedicated , Ġseparate Ġ[ Ret rofit ] Ġinstance ĊĠĠ Ġ*/ ĊĠ Ġfun Ġinit ( context : ĠContext ) Ġ{ ĊĠĠĠ Ġval Ġlogging Interceptor Ġ= ĠHttp Logging Interceptor Ġ{ Ġmessage Ġ-> Ġif Ġ( Build Config . DEBUG ) ĠTim ber . d ( message ) Ġelse ĠTim ber . i ( message ) Ġ} ĊĠĠĠ Ġlogging Interceptor . level Ġ= Ġ( if Ġ( Build Config . DEBUG ) ĠHttp Logging Interceptor . Level . HEADERS Ġelse ĠHttp Logging Interceptor . Level . BASIC ) ĊĊĠĠĠ Ġval Ġcache Ġ= ĠCache ( context . cacheDir , ĠST AR _ WAR S _ NETWORK _ CACHE _ SIZE ) ĊĊĠĠĠ Ġval Ġok HttpClient Ġ= ĠOk HttpClient . Builder () ĊĠĠĠĠĠĠĠ Ġ. read Timeout ( STAR _ WAR S _ NETWORK _ TIMEOUT _ IN _ SECONDS , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠ Ġ. connect Timeout ( STAR _ WAR S _ NETWORK _ TIMEOUT _ IN _ SECONDS , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠ Ġ. add Interceptor ( logging Interceptor ) ĊĠĠĠĠĠĠĠ Ġ. retry On Connection Failure ( true ) ĊĠĠĠĠĠĠĠ Ġ. cache ( cache ) ĊĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠ Ġval Ġgson Ġ= ĠGson Builder (). set Pretty Print ing (). set Len ient (). create () ĊĊĠĠĠ Ġval Ġretrofit Ġ= ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠ Ġ. baseUrl (" https :// sw api . dev / api /") ĊĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Gson Converter Factory . create ( gson )) ĊĠĠĠĠĠĠĠ Ġ. client ( ok HttpClient ) ĊĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠ Ġval Ġapi Ġ= Ġretrofit . create ( Star W ars ApiService :: class . java ) ĊĠĠĠ Ġinit ( Star W ars Repository Impl ( api )) ĊĠ Ġ} Ċ }