package Ġcom . ti ago hs . h qr . ui . adapters Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġcom . ti ago hs . h qr . R Ċ import Ġcom . ti ago hs . h qr . helpers . extensions . getResource Color Ċ import Ġcom . ti ago hs . h qr . helpers . tools . Preference Helper Ċ import Ġcom . ti ago hs . h qr . helpers . tools . get OrDefault Ċ import Ġcom . ti ago hs . h qr . helpers . utils . Locale Utils Ċ import Ġcom . ti ago hs . h qr . models . database . Source DB Ċ import Ġcom . ti ago hs . h qr . ui . callbacks . IS ources Callback Ċ import Ġcom . ti ago hs . h qr . ui . views . config . Base Activity Ċ import Ġio . github . lu iz grp . section ed recyclerview adapter . Section Parameters Ċ import Ġio . github . lu iz grp . section ed recyclerview adapter . State less Section Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠSource Section ( ĊĠĠĠĠĠĠĠ Ġval Ġcontext : ĠContext , ĊĠĠĠĠĠĠĠ Ġval Ġsection Name : ĠString ?, ĊĠĠĠĠĠĠĠ Ġval Ġitems : ĠList < Source DB > ?, ĊĠĠĠĠĠĠĠ Ġval Ġcallback : ĠIS ources Callback Ċ ) Ġ: ĠStateless Section ( Section Parameters . builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. item ResourceId ( R . layout . item _ content _ source _ section ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header ResourceId ( R . layout . item _ header _ source _ section ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build ()) Ġ{ ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġpreference Helper : ĠPreference Helper ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġlocale Utils : ĠLocale Utils ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġ( context Ġas ĠBase Activity ). getApplication Component ()?. inject ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetContent Items Total (): ĠInt Ġ= Ġitems !!. size ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind Item ViewHolder ( holder : ĠRecyclerView . ViewHolder ?, Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ( holder Ġas ĠSection ViewHolder ). on Bind Item ( items !!. get ( position )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind Header ViewHolder ( holder : ĠRecyclerView . ViewHolder ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġ( holder Ġas ĠSection Header ViewHolder ). on Bind Item ( section Name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Header ViewHolder ( view : ĠView ?): ĠRecyclerView . ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSection Header ViewHolder ( view , Ġcontext , Ġlocale Utils ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem ViewHolder ( view : ĠView ?): ĠRecyclerView . ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSection ViewHolder ( context , Ġview , Ġpreference Helper , Ġcallback ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġclass ĠSection ViewHolder ( item View : ĠView ?): ĠRecyclerView . ViewHolder ( item View ), ĠView . OnClickListener Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Source DB : ĠSource DB ĊĠĠĠĠĠĠĠ Ġprivate Ġlateinit Ġvar Ġcallback : ĠIS ources Callback ĊĠĠĠĠĠĠĠ Ġprivate Ġlateinit Ġvar Ġcontext : ĠContext ĊĊĠĠĠĠĠĠĠ Ġprivate Ġlateinit Ġvar Ġsource Name : ĠTextView ĊĠĠĠĠĠĠĠ Ġprivate Ġlateinit Ġvar Ġsource Url : ĠTextView ĊĠĠĠĠĠĠĠ Ġprivate Ġlateinit Ġvar Ġcheck Icon : ĠImageView ĊĊĠĠĠĠĠĠĠ Ġprivate Ġlateinit Ġvar Ġpreference Helper : ĠPreference Helper ĊĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġis Current Source Select : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġconstructor ( context : ĠContext , ĠitemView : ĠView ?, Ġpreference Helper : ĠPreference Helper , callback : ĠIS ources Callback ) Ġ: Ġthis ( item View ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . callback Ġ= Ġcallback ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . preference Helper Ġ= Ġpreference Helper ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . context Ġ= Ġcontext ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView ?. setOnClickListener ( this ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . source Name Ġ= ĠitemView ?. findViewById ( R . id . source Name ) Ġas ĠTextView ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . source Url Ġ= ĠitemView . findViewById ( R . id . source Url ) Ġas ĠTextView ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . check Icon Ġ= ĠitemView . findViewById ( R . id . check Icon ) Ġas ĠImageView ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġon Bind Item ( source DB : ĠSource DB ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . m Source DB Ġ= Ġsource DB ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . is Current Source Select Ġ= Ġsource DB . is Current Select ( preference Helper . current Source (). get OrDefault ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource Name . text Ġ= Ġsource DB . name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource Url . text Ġ= Ġsource DB . baseUrl ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Current Source Select ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Name . setTextColor ( context . getResource Color ( R . color . color Accent )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Url . setTextColor ( context . getResource Color ( R . color . color Accent )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Icon . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonClick ( p 0 : ĠView ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpreference Helper . current Source (). set ( m Source DB . id ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . on Source Select ( m Source DB ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġclass ĠSection Header ViewHolder ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView : ĠView ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext : ĠContext ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlocale Utils : ĠLocale Utils ): ĠRecyclerView . ViewHolder ( item View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġsource Language : ĠTextView Ġ= ĠitemView ?. findViewById ( R . id . source Language ) Ġas ĠTextView ĊĊĠĠĠĠĠĠĠ Ġfun Ġon Bind Item ( section Name : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource Language . text Ġ= Ġlocale Utils . get DisplayName ( section Name , Ġcontext !! ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ }