package Ġcom . sch ib st ed . ret ro swagger Ċ Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroid . widget . Toast Ċ import Ġcom . sch ib st ed . sp ain . ret ro swagger . annotation . Ret ro swagger Ċ import Ġkotlinx . android . synt hetic . main . activity _ main . pet _ list Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . adapter . rx java 2 . Rx Java 2 Call Adapter Factory Ċ import Ġretrofit 2 . converter . gson . Gson Converter Factory Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . logging . Http Logging Interceptor ĊĊ Ċ private Ġconst Ġval ĠSERVICE _ URL Ġ= Ġ" http :// pet store . swagger . io / v 2 /" Ċ Ċ @ Ret ro swagger ( SERVICE _ URL +" swagger . json ", Ġ" Pet Store ", Ġ 1 , Ġtrue ) Ċ class ĠMainActivity Ġ: ĠAppCompatActivity (), ĠPet Store View Ġ{ ĊĠĠĠ Ġprivate Ġval Ġpet Store Presenter : ĠPet Store Presenter ĊĊĠĠĠ Ġprivate Ġval Ġpet Store Service : ĠPet Store Api Interface ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinterceptor Ġ= ĠHttp Logging Interceptor () ĊĠĠĠĠĠĠĠ Ġinterceptor . level Ġ= ĠHttp Logging Interceptor . Level . BODY ĊĠĠĠĠĠĠĠ Ġval Ġclient Ġ= ĠOk HttpClient . Builder (). add Interceptor ( interceptor ). build () ĊĊĊĠĠĠĠĠĠĠ Ġval Ġretrofit Ġ= ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Call Adapter Factory ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRx Java 2 Call Adapter Factory . create ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGson Converter Factory . create ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl ( SERVICE _ URL ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. client ( client ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġpet Store Service Ġ= Ġretrofit . create ( Pet Store Api Interface :: class . java ) ĊĠĠĠĠĠĠĠ Ġpet Store Presenter Ġ= ĠPet Store Presenter ( pet Store Service ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ Ġpet Store Presenter . init ( this ) ĊĊĠĠĠĠĠĠĠ Ġpet _ list . layout Manager Ġ= ĠLinearLayoutManager ( this ) ĊĠĠĠĠĠĠĠ Ġpet _ list . adapter Ġ= ĠP ets Adapter ( pet List (), Ġthis ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pet Found ( pet : ĠPet ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnew List Ġ= Ġpet List (). to Mutable List () ĊĠĠĠĠĠĠĠ Ġnew List . add ( pet ) ĊĠĠĠĠĠĠĠ Ġpet _ list . adapter Ġ= ĠP ets Adapter ( new List , Ġthis ) ĊĠĠĠĠĠĠĠ Ġ( pet _ list . adapter Ġas ĠP ets Adapter ). notify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Get Pet ById Error () Ġ{ ĊĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" Connection Ġerror . ĠFailed Ġto Ġretrieve ĠP ets ĠBy ĠStatus ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġpet List (): ĠList < Pet > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġp ets Ġ= Ġmutable ListOf < Pet >() ĊĠĠĠĠĠĠĠ Ġp ets . add ( Pet ( 0 , ĠCategory ( 0 , Ġ" dog "), Ġ" n una ", ĠlistOf (), ĠlistOf (), Ġ" ad opt ed ")) ĊĠĠĠĠĠĠĠ Ġp ets . add ( Pet ( 0 , ĠCategory ( 0 , Ġ" dog "), Ġ" n ina ", ĠlistOf (), ĠlistOf (), Ġ" ad opt ed ")) ĊĠĠĠĠĠĠĠ Ġreturn Ġp ets ĊĠĠĠ Ġ} Ċ } Ċ