package Ġsources Ċ Ċ import Ġresponse . Article Response Ċ import Ġresponse . Source Response Ċ import Ġutil . News Url Ċ import Ġcore . Consume ApiResponse Ċ import Ġretrofit 2 . Call Ċ import Ġretrofit 2 . Callback Ċ import Ġretrofit 2 . Response Ċ import Ġsources . remote . F ro go ApiClient Ċ import Ġsources . remote . News ApiService Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠF ais al ĠA mir Ċ Ġ* ĠF ro go Box ĠInc ĠLicense Ċ Ġ* Ġ================================= ======== Ċ Ġ* Ġconsum able - code - news - api Ċ Ġ* ĠCopyright Ġ( C ) Ġ 1 5 / 0 3 / 2 0 2 0 . Ċ Ġ* ĠAll Ġrights Ġreserved Ċ Ġ* Ġ-------------------------------- --------- Ċ Ġ* ĠName ĠĠĠĠ Ġ: ĠMu ham mad ĠF ais al ĠA mir Ċ Ġ* ĠE - mail ĠĠ Ġ: Ġfa is alam ir cs @ gmail . com Ċ Ġ* ĠGithub ĠĠ Ġ: Ġgithub . com / am iris back Ċ Ġ* ĠLinked In Ġ: Ġlinked in . com / in / fa is alam ir cs Ċ Ġ* Ġ-------------------------------- --------- Ċ Ġ* ĠF ro go Box ĠSoftware ĠInd ust ries Ċ Ġ* Ġcom . fro go box . fro go consume api . news . data . source Ċ Ġ* Ċ Ġ*/ Ċ object ĠNews Repository Ġ: ĠNews DataSource Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠTAG Ġ= ĠNews Repository :: class . java . simple Name ĊĠĠĠ Ġprivate Ġvar Ġnews ApiService Ġ= ĠF ro go ApiClient . create < News ApiService >( News Url . BASE _ URL ) ĊĊĠĠĠ Ġoverride Ġfun Ġget Top Head line ( ĊĠĠĠĠĠĠĠ ĠapiKey : ĠString , ĊĠĠĠĠĠĠĠ Ġq : ĠString ?, ĊĠĠĠĠĠĠĠ Ġsources : ĠString ?, ĊĠĠĠĠĠĠĠ Ġcategory : ĠString ?, ĊĠĠĠĠĠĠĠ Ġcountry : ĠString ?, ĊĠĠĠĠĠĠĠ ĠpageSize : ĠInt ?, ĊĠĠĠĠĠĠĠ Ġpage : ĠInt ?, ĊĠĠĠĠĠĠĠ Ġcallback : ĠCons ume ApiResponse < Article Response > ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcallback . on Show Progress () ĊĠĠĠĠĠĠĠ Ġnews ApiService . get Top Head line ( apiKey , Ġq , Ġsources , Ġcategory , Ġcountry , ĠpageSize , Ġpage ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. enqueue ( object Ġ: ĠCallback < Article Response > Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( call : ĠCall < Article Response >, Ġresponse : ĠResponse < Article Response >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . on Hide Progress () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . body ()?. let Ġ{ Ġcallback . on Success ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall < Article Response >, Ġt : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . on Hide Progress () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . on Failed ( 5 0 0 , Ġt . localized Message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Every things ( ĊĠĠĠĠĠĠĠ ĠapiKey : ĠString , ĊĠĠĠĠĠĠĠ Ġq : ĠString ?, ĊĠĠĠĠĠĠĠ Ġfrom : ĠString ?, ĊĠĠĠĠĠĠĠ Ġto : ĠString ?, ĊĠĠĠĠĠĠĠ Ġq In Title : ĠString ?, ĊĠĠĠĠĠĠĠ Ġsources : ĠString ?, ĊĠĠĠĠĠĠĠ Ġdomains : ĠString ?, ĊĠĠĠĠĠĠĠ Ġexclude Domains : ĠString ?, ĊĠĠĠĠĠĠĠ Ġlanguage : ĠString ?, ĊĠĠĠĠĠĠĠ ĠsortBy : ĠString ?, ĊĠĠĠĠĠĠĠ ĠpageSize : ĠInt ?, ĊĠĠĠĠĠĠĠ Ġpage : ĠInt ?, ĊĠĠĠĠĠĠĠ Ġcallback : ĠCons ume ApiResponse < Article Response > ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnews ApiService . get Every things ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠapiKey , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġto , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġq In Title , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsources , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdomains , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexclude Domains , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlanguage , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsortBy , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠpageSize , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpage ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. enqueue ( object Ġ: ĠCallback < Article Response > Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( call : ĠCall < Article Response >, Ġresponse : ĠResponse < Article Response >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . on Hide Progress () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . body ()?. let Ġ{ Ġcallback . on Success ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall < Article Response >, Ġt : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . on Hide Progress () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . on Failed ( 5 0 0 , Ġt . localized Message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Sources ( ĊĠĠĠĠĠĠĠ ĠapiKey : ĠString , ĊĠĠĠĠĠĠĠ Ġlanguage : ĠString , ĊĠĠĠĠĠĠĠ Ġcountry : ĠString , ĊĠĠĠĠĠĠĠ Ġcategory : ĠString , ĊĠĠĠĠĠĠĠ Ġcallback : ĠCons ume ApiResponse < Source Response > ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnews ApiService . get Sources ( apiKey , Ġlanguage , Ġcountry , Ġcategory ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. enqueue ( object Ġ: ĠCallback < Source Response > Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( call : ĠCall < Source Response >, Ġresponse : ĠResponse < Source Response >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . on Hide Progress () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . body ()?. let Ġ{ Ġcallback . on Success ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall < Source Response >, Ġt : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . on Hide Progress () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . on Failed ( 5 0 0 , Ġt . localized Message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ }