package Ġcom . young . business mv vm . data . repository . network Ċ Ċ import Ġcom . be ile . app . view . mv vm . data . repository . network . I Remote Request Ċ import Ġcom . fr aming . base lib . T Log Ċ import Ġcom . fr aming . common lib . network . Base Request Api Ċ import Ġcom . fr aming . common lib . network . I Request Header Info Ċ import Ġcom . fr aming . common lib . network . error . Exception Error Ċ import Ġcom . fr aming . common lib . network . error . Load Type Ċ import Ġcom . fr aming . common lib . network . observer . Base Observer Ċ import Ġcom . fr aming . common lib . widget . Status Layout Ċ import Ġcom . fr aming . module . customer . data . bean . Simple Data Bean Ċ import Ġcom . young . aac . base . Base Data ViewModel Ċ import Ġio . reactivex . Observable Ċ import Ġkotlinx . coroutines .* Ċ import Ġjava . io . InputStream Ċ import Ġjava . util . logging . Handler Ċ import Ġkotlin . coroutines . Coroutine Context Ċ Ċ /* Ċ Ġ* ĠDes Ġ Ġ ç½ĳç»ľ è¯·æ±Ĥ çļĦ mv vm ç®¡çĲĨ Ċ Ġ* ĠAuthor ĠYo ung Ċ Ġ* Ġ ä»ĵåºĵ è§Ĵèī² Ġ ç½ĳç»ľ Ċ Ġ*/ Ċ class ĠNet Request Manager Ġ: ĠBase Request Api , ĠI Remote Request Ġ{ ĊĊĠĠĠ Ġvar Ġre uq est Api Interface : ĠI Re uq est Api Ġ= Ġretrofit . create ( I Re uq est Api :: class . java ) ĊĊĠĠĠ Ġconstructor () Ġ: Ġsuper (" http :// 1 8 2 . 9 2 . 1 6 4 . 2 4 2 : 8 0 8 0 " Ġ+ Ġ"/") Ġ{// baseurl Ġ æĪª åıĸ ç¬¬ä¸Ģä¸ª / ä¹ĭåīį çļĦ Ġ ç»ĵ å°¾ å¿ħé¡» ä¸º / ĊĠĠĠ Ġ} ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġinstance : ĠNet Request Manager ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( field Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= ĠNet Request Manager () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfield ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ@ Synchron ized ĊĠĠĠĠĠĠĠ Ġfun Ġget (): ĠNet Request Manager { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġinstance !! ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Network Request Info ( request Info : ĠI Request Header Info ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . set Network Request Info ( request Info ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġ/* ĊĠĠĠ Ġ* Ġå°ı å°ģè£ħ ä¸Ģä¸ĭ ĊĠĠĠ Ġ* Ġ åĬłè½½ çĬ¶æĢģ çļĦ åŁºæľ¬ è¯·æ±Ĥ å½¢ æĢģ ĊĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġfun Ġ< T > getResult ( ĊĠĠĠĠĠĠĠ Ġdata : Observable < Simple Data Bean < T >>, ĊĠĠĠĠĠĠĠ Ġdata VM : ĠBase Data ViewModel , ĊĠĠĠĠĠĠĠ Ġmt :( T )-> Unit ){ ĊĠĠĠĠĠĠĠ ĠApi Subscribe ( data , Ġobject Ġ: ĠBase Observer < Simple Data Bean < T >>() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( e : ĠException Error . Resp one Throwable ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠT Log . log (" net request _ onerror "," ${ e . toString () }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata VM . load Type . post Value ( Status Layout . StatusType . NO _ INTER NET ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Next ( t : ĠSimple Data Bean < T >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠT Log . log (" net request _ onNext "," ${ t }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( t . code == 0 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata VM . load Type . post Value ( Status Layout . StatusType . HIDE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmt ( t . data ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata VM . load Type . post Value ( Status Layout . StatusType . ERROR ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġget Map ( url : String ): InputStream { ĊĠĠĠĠĠ Ġvar Ġa = Ġ Ġre uq est Api Interface . download Map ( url ) ĊĠĠĠĠĠĠĠ Ġreturn Ġa ?. execute ()?. body ()?. byte Stream () !! ĊĠĠĠ Ġ} Ċ } Ċ