package Ġcom . fro go box . app api . mv vm . news Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . fro go box . api . news . model . Article Ċ import Ġcom . fro go box . api . news . util . News Constant Ċ import Ġcom . fro go box . app api . databinding . Activity News Binding Ċ import Ġcom . fro go box . app api . databinding . Content Article Horizontal Binding Ċ import Ġcom . fro go box . app api . databinding . Content Article Vertical Binding Ċ import Ġcom . fro go box . app api . databinding . Content Category Binding Ċ import Ġcom . fro go box . recycler . core . IF ro go Binding Adapter Ċ import Ġcom . fro go box . sdk . core . F ro go Activity Ċ import Ġorg . k oin . android x . view model . ext . android . viewModel Ċ Ċ class ĠNews Activity Ġ: ĠF ro go Activity < Activity News Binding >() Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġnews ViewModel : ĠNews ViewModel Ġby ĠviewModel () ĊĊĠĠĠ Ġoverride Ġfun Ġsetup View Binding (): ĠActivity News Binding Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠActivity News Binding . inflate ( layout Inflater ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsetup ViewModel () Ġ{ ĊĠĠĠĠĠĠĠ Ġnews ViewModel . apply Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Top Head line () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Top Head line ( News Constant . CATEGORY _ HE ALTH ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsetup Category () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent Show Progress . observe ( this @ News Activity , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsetup Event Progress View ( binding . progress View , Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent Failed . observe ( this @ News Activity , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist Data . observe ( this @ News Activity , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsetup Rv Header ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist Category . observe ( this @ News Activity , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsetup Rv Category ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist Data Category . observe ( this @ News Activity , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsetup Rv Body ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsetup UI ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsetup Detail Activity (" News ĠAPI ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Rv Category ( data : ĠList < String >) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġcallback Ġ= Ġobject Ġ: ĠIF ro go Binding Adapter < String , ĠContent Category Binding > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Item Clicked ( data : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Top Head line . text Ġ= Ġ" category Ġ$ data " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnews ViewModel . get Top Head line ( data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Item Long Clicked ( data : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġset View Binding ( parent : ĠViewGroup ): ĠContent Category Binding Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠContent Category Binding . inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( parent . context ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġsetup Init Component ( binding : ĠContent Category Binding , Ġdata : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Category . text Ġ= Ġdata ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . rv Category . injector Binding < String , ĠContent Category Binding >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. addData ( data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Callback ( callback ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. create Layout Linear Horizontal ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Rv Header ( data : ĠList < Article >) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġcallback Ġ= Ġobject Ġ: ĠIF ro go Binding Adapter < Article , ĠContent Article Horizontal Binding > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Item Clicked ( data : ĠArticle ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbase Start Activity < News Detail Activity , ĠArticle >( News Detail Activity . EXTRA _ DATA , Ġdata ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Item Long Clicked ( data : ĠArticle ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . description ?. let Ġ{ Ġshow Toast ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġset View Binding ( parent : ĠViewGroup ): ĠContent Article Horizontal Binding Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠContent Article Horizontal Binding . inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( parent . context ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġsetup Init Component ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding : ĠContent Article Horizontal Binding , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata : ĠArticle ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Title . text Ġ= Ġdata . title ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Published . text Ġ= Ġdata . published At ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Description . text Ġ= Ġdata . description ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( root . context ). load ( data . url To Image ). into ( iv Url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . rv News General . injector Binding < Article , ĠContent Article Horizontal Binding >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. addData ( data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Callback ( callback ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. create Layout Linear Horizontal ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Rv Body ( data : ĠList < Article >) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġcallback Ġ= Ġobject Ġ: ĠIF ro go Binding Adapter < Article , ĠContent Article Vertical Binding > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Item Clicked ( data : ĠArticle ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbase Start Activity < News Detail Activity , ĠArticle >( News Detail Activity . EXTRA _ DATA , Ġdata ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Item Long Clicked ( data : ĠArticle ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . description ?. let Ġ{ Ġshow Toast ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġset View Binding ( parent : ĠViewGroup ): ĠContent Article Vertical Binding Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠContent Article Vertical Binding . inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( parent . context ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġsetup Init Component ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding : ĠContent Article Vertical Binding , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata : ĠArticle ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Title . text Ġ= Ġdata . title ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Published . text Ġ= Ġdata . published At ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Description . text Ġ= Ġdata . description ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( root . context ). load ( data . url To Image ). into ( iv Url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . rv News Category . injector Binding < Article , ĠContent Article Vertical Binding >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. addData ( data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Callback ( callback ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. create Layout Linear Vertical ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} Ċ Ċ }