package Ġcom . wind y . libr alive . net . common Ċ Ċ import Ġandroidx . view binding . Build Config Ċ import Ġcom . wind y . libr alive . api . Https Api Ċ import Ġcom . wind y . libr alive . net . Headers Interceptor Ċ import Ġcom . wind y . libr alive . net . Network Status Interceptor Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . logging . Http Logging Interceptor Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . adapter . rx java 3 . Rx Java 3 Call Adapter Factory Ċ import Ġretrofit 2 . converter . gson . Gson Converter Factory Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ const Ġval ĠAND ROID _ URL Ġ= Ġ 1 Ċ const Ġval ĠW AN _ ANDROID Ġ= Ġ 2 Ċ Ċ /** Ċ Ġ* Ġå¯¹ ç½ĳç»ľ è¯·æ±Ĥ ï¼Į Ok http ĠåĴĮ ĠRet rofit ĠçļĦ é¡¶ å±Ĥ å°ģè£ħ ï¼Į ä¾¿ äºİ æī©å±ķ Ċ Ġ*/ Ċ abstract Ġclass ĠBase Ret rofit Factory Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ å¯¹äºİ Ok http Ġ åĬŁ çļĦ æī©å±ķ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġabstract Ġfun Ġhandle Builder ( builder : ĠOk HttpClient . Builder ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ å¯¹äºİ ĠRet rofit Ġ åĬŁèĥ½ æī©å±ķ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġabstract Ġfun Ġretrofit Builder ( builder : ĠRet rofit . Builder ) ĊĊĠĠĠ Ġ// Ġjava Ġä¸ŃçļĦ éĿĻæĢģ åĮºåŁŁ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠDEFAULT _ TIME Ġ= Ġ 2 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġok HttpClient : ĠOk HttpClient ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġok HttpClient builder Ġ= ĠOk HttpClient . Builder () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġok HttpClient builder . connect Timeout ( DEFAULT _ TIME . to Long (), ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġok HttpClient builder . read Timeout ( DEFAULT _ TIME . to Long (), ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġok HttpClient builder . write Timeout ( DEFAULT _ TIME . to Long (), ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġok HttpClient builder . retry On Connection Failure ( true ) Ġ// Ġ éĩį å®ļ åĲĳ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġok HttpClient builder . add Interceptor ( Network Status Interceptor ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ æĹ¥å¿Ĺ æĭ ¦ æĪª åĻ¨ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġok HttpClient builder . add Interceptor ( Http Logging Interceptor (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . level Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build Config . DEBUG ) ĠHttp Logging Interceptor . Level . BODY Ġelse ĠHttp Logging Interceptor . Level . BASIC ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġok HttpClient builder . add Interceptor ( Headers Interceptor ()) Ġ// Ġè¯·æ±Ĥ å¤´ æĭ ¦ æĪª åĻ¨ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Builder ( ok HttpClient builder ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġok HttpClient builder . build () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠåĪĽå»º Ret rofit ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġ< T > Ġget Service ( service Class : ĠClass < T >, Ġhost H ype : ĠInt ): ĠT Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġretrofit Builder Ġ= ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠ Ġretrofit Builder . client ( ok HttpClient ) ĊĠĠĠĠĠĠĠ Ġretrofit Builder . baseUrl ( getHost ( host H ype )) ĊĊĠĠĠĠĠĠĠ Ġ// Ġresponse Ġ è½¬æį¢ åĻ¨ ĊĠĠĠĠĠĠĠ Ġretrofit Builder . add Converter Factory ( Gson Converter Factory . create ()) ĊĊĠĠĠĠĠĠĠ Ġ// Ġè¯·æ±Ĥ éĢĤ éħį åĻ¨ ĊĠĠĠĠĠĠĠ Ġretrofit Builder . add Call Adapter Factory ( Rx Java 3 Call Adapter Factory . create ()) ĊĊĠĠĠĠĠĠĠ Ġretrofit Builder ( ret rofit Builder ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġcreate ( service Class , Ġretrofit Builder . build ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġ< T > Ġcreate ( service : ĠClass < T >, Ġretrofit : ĠRet rofit ): ĠT Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġretrofit . create ( service ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ è½¬ ĠHTTP ĠHost ĠURL ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġget Host ( host Type : ĠInt ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( host Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAND ROID _ URL Ġ-> ĠHttp s Api . BASE _ URL ĊĠĠĠĠĠĠĠĠĠĠĠ ĠW AN _ ANDROID Ġ-> ĠHttp s Api . G ANK _ IO _ URL ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠHttp s Api . BASE _ URL ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }