package Ġcom . j ok op ri y ono . jon ews . ui . main Ċ Ċ import Ġandroid . content . Context Ċ import Ġcom . google . gson . Gson Ċ import Ġcom . j ok op ri y ono . jon ews . Common Ċ import Ġcom . j ok op ri y ono . jon ews . R Ċ import Ġcom . j ok op ri y ono . jon ews . data . Api Repository Ċ import Ġcom . j ok op ri y ono . jon ews . data . Json Api Ċ import Ġcom . j ok op ri y ono . jon ews . data . response . Article Ċ import Ġcom . j ok op ri y ono . jon ews . data . response . Top Head lines Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . Global Scope Ċ import Ġkotlinx . coroutines . launch Ċ Ċ class ĠMain Presenter ( ĊĠĠĠ Ġprivate Ġval Ġmain View : ĠMain View , ĊĠĠĠ Ġprivate Ġval Ġapi Repository : ĠApi Repository , ĊĠĠĠ Ġprivate Ġval Ġgson : ĠGson , ĊĠĠĠ Ġprivate Ġval Ġcontext : ĠContext Ċ ) Ġ{ ĊĠĠĠ Ġfun Ġget Top Hide lines ( category : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Common . check Internet ( context )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmain View . show Loading () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGlobal Scope . launch ( Dispatch ers . Main ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgson . fromJson ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi Repository . do Request ( Json Api . get Top Head lines ( category )). await (), ĠTop Head lines :: class . java ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetDefault Category ( it , Ġcategory ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmain View . hide Loading () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmain View . show Alert ( e . localized Message , Ġcategory ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġmain View . show Alert ( context . getString ( R . string . error _ connection ), Ġcategory ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠsetDefault Category ( data : ĠTop Head lines , Ġcategory : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( article : ĠArticle Ġin Ġdata . articles ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġarticle . category Ġ= Ġcategory ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmain View . show News ( data ) ĊĠĠĠĠĠĠĠ Ġmain View . hide Loading () ĊĠĠĠ Ġ} Ċ }