package Ġcom . hz . zx k . demo . callback Ċ Ċ import Ġcom . hz . zx k . demo . ui . main . model . BaseModel Ċ import Ġcom . hz . zx k . super http _ kotlin . listener . Super Callback Ċ Ċ /** Ċ @ author Ġzh eng xiao ke Ċ @ date Ġ 2 0 2 0 / 4 / 1 5 Ġ 1 1 : 3 8 ĠAM Ċ Ġ*/ Ċ abstract Ġclass ĠBase Http CallBack < T Ġ: ĠBase Model <* >>() Ġ: ĊĠĠĠ ĠSuper Callback < T >() Ġ{ ĊĊĊĠĠĠ Ġoverride Ġfun ĠonError ( e : ĠThrowable ) Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġif Ġ( show Loading ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ// éļĲèĹı åĬłè½½ æ¡Ĩ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . state LiveData . value Ġ= ĠBase Result Model . hide Loading () Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġval Ġexception Ġ= ĠSuper Exception . handle Exception ( e ) Ċ // ĠĠĠĠĠĠĠ ĠviewModel . state LiveData . value Ġ= ĠBase Result Model . error ( exception . code !! , Ġexception . message ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonStart () Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonSuccess ( data : ĠT ?) Ġ{ Ċ Ċ // ĠĠĠĠĠĠĠ Ġif Ġ( show Loading ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ// éļĲèĹı åĬłè½½ æ¡Ĩ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . state LiveData . value Ġ= ĠBase Result Model . h ie de Loading () Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġif Ġ( data Ġ== Ġnull ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . state LiveData . value Ġ= ĠBase Result Model . error (- 1 , Ġ" æľª çŁ¥ éĶĻè¯¯ ") Ċ // ĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( data . state Ġ== ĠBase Model . OK ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdata ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġdata Ġas ĠBase Model < *> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuccess ( data ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . state LiveData . value Ġ= ĠBase Result Model . error ( data . state , Ġdata . msg ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġabstract Ġfun Ġsuccess ( data : ĠT ?) Ċ }