package Ġcom . ar un . gif browser . Application . Network Ċ Ċ import Ġandroid . animation . Object Animator Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroid . widget . ProgressBar Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . multi dex . Build Config Ċ import Ġcom . ar un . gif browser . Application . Utility . Constants Ċ import Ġcom . ar un . gif browser . Application . Utility . show Progress Anim Ċ import Ġcom . ar un . gif browser . R Ċ import Ġcom . google . android . material . button . Material Button Ċ import Ġcom . google . gson . Gson Builder Ċ 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 . lang . reflect . Modifier Ċ /** Ċ Ġ* Created Ġby ĠA run Ġsing h Ġraw at Ġon Ġ 0 8 - 0 1 - 2 0 2 1 . Ċ Ġ* https :// github . com / ar un sing hr wt ĊĊ Ġ*/ Ċ Ċ fun Ġreturn Provide Ret rofit (): ĠRet rofit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlogging Ġ= ĠHttp Logging Interceptor () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( Build Config . DEBUG ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogging . setLevel ( Http Logging Interceptor . Level . BODY ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogging . setLevel ( Http Logging Interceptor . Level . NONE ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval ĠhttpClient Ġ= ĠOk HttpClient . Builder () ĊĊĠĠĠĠĠĠĠ ĠhttpClient . add Interceptor ( logging ) ĊĠĠĠĠĠĠĠ Ġval Ġgson Ġ= ĠGson Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. exclude Fields With Modifiers ( Modifier . FINAL , ĠModifier . TRAN SI ENT , ĠModifier . STATIC ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. serialize Null s () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Len ient () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. create () ĊĠĠĠĠĠĠĠ Ġreturn ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl ( Constants . BASE _ URL ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Call Adapter Factory ( Rx Java 3 Call Adapter Factory . create ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Gson Converter Factory . create ( gson )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. client ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠhttpClient . build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Api ( ret rofit : ĠRet rofit ): ĠApi Interface Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġretrofit . create ( Api Interface :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠP br Btn Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġobject Animator : ĠObject Animator ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġmy btn : ĠTextView ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġfun Ġinit ( btn : ĠTextView ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . my btn Ġ= Ġbtn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġstart () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject Animator ?. cancel () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmy btn ?. setBackground Resource ( R . drawable . animated _ progress ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . object Animator Ġ= Ġmy btn !!. background . show Progress Anim () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġcancel ( default icon : ĠInt Ġ= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmy btn ?. setBackground Resource ( default icon ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject Animator ?. cancel () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}