package Ġcom . example . kotlin practice 2 Ċ Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroid . widget .* Ċ import Ġcom . google . gson . Gson Ċ import Ġcom . google . gson . Gson Builder Ċ import Ġretrofit 2 . Call Ċ import Ġretrofit 2 . Callback Ċ import Ġretrofit 2 . Response Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . converter . gson . Gson Converter Factory Ċ Ċ class ĠMainActivity 2 Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main 2 ) ĊĠĠĠĠĠĠĠ Ġval Ġlink name Ġ Ġ= Ġintent . getString Extra (" name ") ĊĠĠĠĠĠĠĠ Ġval Ġlink number Ġ= Ġintent . getString Extra (" number ") ĊĠĠĠĠĠĠĠ Ġval Ġlist view 1 Ġ= ĠfindViewById < ListView >( R . id . list view ) ĊĠĠĠĠĠĠĠ Ġval Ġstats Ġ= ĠfindViewById < TextView >( R . id . stats ) ĊĊĠĠĠĠĠĠĠ Ġif ( link name Ġ! ="" Ġ&& Ġlink number ! ="") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġregion Ret rofit 2 Ġ= ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl (" https :// apis . tracker . delivery / car riers /$ link name / tracks /$ link number /") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Gson Converter Factory . create ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġserver 2 : ĠRet rofit Service 2 Ġ= Ġregion Ret rofit 2 . create ( Ret rofit Service 2 :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġb Ġ= Ġserver 2 . getInfo 2 (" json ", Ġ" json ", Ġ" json ", Ġ" json ", Ġ" json ", Ġ" json ") Ġ// ĠëĳĲ ë²Ī ì§¸ ĠRET RO FIT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġb . enqueue ( object Ġ: ĠCallback < Data Class 2 > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( callback : ĠCall < Data Class 2 >, Ġt : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" no ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( call : ĠCall < Data Class 2 >, Ġresponse : ĠResponse < Data Class 2 >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" wow 2 ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġab : ĠData Class 2 ? Ġ= Ġresponse . body () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġarr Ġ= Ġab ?. prog resses ?. count () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" ë³ ´ë Ĥ´ ëĬĶ ĠìĤ¬ ëŀ Į Ġ: ${ ab ?. from ?. name }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" ë° Ľ ëĬĶ ĠìĤ¬ ëŀ Į Ġ: ${ ab ?. to ?. name }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( arr ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( arr != null ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstats . text Ġ= Ġab . state . text ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( arr == null ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstats . text Ġ= Ġ" ìŀ ĺ ëª » ëĲľ Ġë²Ī íĺ¸ ìŀħëĭĪëĭ¤ !" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠUser List Ġ= Ġmutable ListOf < User >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( arr Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor ( i Ġin Ġ 0 Ġuntil Ġarr ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUser List . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUser ( ab . prog resses . get ( i ). time , Ġab . prog resses . get ( i ). location . name , Ġab . prog resses . get ( i ). description ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠAdapter Ġ= ĠUser Adaptor ( this @ MainActivity 2 , ĠUser List Ġas ĠArrayList < User >) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist view 1 . adapter Ġ= ĠAdapter ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }