package Ġcom . rus lan . hl ush an . game . settings . ui . languages Ċ Ċ import Ġandroid . view . View Ċ import Ġandroidx . annotation . Attr Res Ċ import Ġandroidx . annotation . Drawable Res Ċ import Ġandroidx . annotation . Layout Res Ċ import Ġcom . rus lan . hl ush an . android . extensions . color AttributeValue Ċ import Ġcom . rus lan . hl ush an . android . extensions . set Th rott led OnClickListener Ċ import Ġcom . rus lan . hl ush an . core . extensions . if NotNull Ċ import Ġcom . rus lan . hl ush an . core . language . api . Wrapped Language Ċ import Ġcom . rus lan . hl ush an . core . language . code . Lang Full Code Ċ import Ġcom . rus lan . hl ush an . core . manager . api . ResourceManager Ċ import Ġcom . rus lan . hl ush an . core . recycler . item . Recycler Item Ċ import Ġcom . rus lan . hl ush an . core . thread . Ui MainThread Ċ import Ġcom . rus lan . hl ush an . core . ui . recycler . adapter . Adapter Delegate Ċ import Ġcom . rus lan . hl ush an . core . ui . recycler . adapter . Base Item ViewHolder Ċ import Ġcom . rus lan . hl ush an . core . ui . recycler . adapter . On ItemClickListener Ċ import Ġcom . rus lan . hl ush an . game . settings . ui . R Ċ import Ġcom . rus lan . hl ush an . game . settings . ui . databinding . Game Settings Ui Item Language Binding Ċ Ċ internal Ġclass ĠLanguage s Adapter Delegate ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġresource Manager : ĠResourceManager , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġon Item Click : ĠOn ItemClickListener < Wrapped Language > Ċ ) Ġ: ĠAdapter Delegate < Lang Full Code , ĠLanguage Recycler Item , ĠLanguage Recycler Item > Ġ{ ĊĊĠĠĠ Ġ@ get : Layout Res ĊĠĠĠ Ġoverride Ġval Ġlayout Res Id : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠR . layout . game _ settings _ ui _ item _ language ĊĊĠĠĠ Ġoverride Ġfun Ġcreate ViewHolder ( item View : ĠView ): ĠBase Item ViewHolder < Lang Full Code , ĠLanguage Recycler Item > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLanguage s ViewHolder ( item View , Ġon Item Click , Ġresource Manager ) Ċ } Ċ Ċ private Ġclass ĠLanguage s ViewHolder ( ĊĠĠĠĠĠĠĠ ĠitemView : ĠView , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġon Item Click : ĠOn ItemClickListener < Wrapped Language >, ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġresource Manager : ĠResourceManager Ċ ) Ġ: ĠBase Item ViewHolder < Lang Full Code , ĠLanguage Recycler Item >( item View ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġbinding Ġ= ĠGame Settings Ui Item Language Binding . bind ( item View ) ĊĊĠĠĠ Ġ@ Ui MainThread ĊĠĠĠ Ġoverride Ġfun Ġon View Attached To Window () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Attached To Window () ĊĠĠĠĠĠĠĠ ĠitemView . set Th rott led OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif NotNull ( recycler Item ) Ġ{ Ġitem Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Item Click ( item . wrapped Language ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Ui MainThread ĊĠĠĠ Ġoverride Ġfun Ġon BindView ( item : ĠLanguage Recycler Item ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on BindView ( item ) ĊĠĠĠĠĠĠĠ Ġbinding . item Language Name . text Ġ= Ġitem . wrapped Language . language . name ĊĠĠĠĠĠĠĠ Ġ@ Attr Res Ġval ĠtextColor Attr Res Id Ġ= Ġif Ġ( item . wrapped Language . is App Language ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠ Ġcom . google . android . material . R . attr . color Secondary ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcom . google . android . material . R . attr . color Primary ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . item Language Name . setTextColor ( binding . item Language Name . context . color AttributeValue ( textColor Attr Res Id )) ĊĊĠĠĠĠĠĠĠ Ġ@ Drawable Res Ġval Ġlang Drawable ResourceId : ĠInt ? Ġ= Ġitem . wrapped Language . language . imageUrl ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . let Ġ{ Ġimage Res Name Ġ-> Ġresource Manager . get Drawable ResourceId ByName ( image Res Name ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( lang Drawable ResourceId Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . item Language Image . setImage Resource ( lang Drawable ResourceId ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . item Language Image . setImage Drawable ( null ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Ui MainThread ĊĠĠĠ Ġoverride Ġfun Ġon View Detached From Window () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Detached From Window () ĊĠĠĠĠĠĠĠ ĠitemView . setOnClickListener ( null ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ internal Ġclass ĠLanguage Recycler Item ( ĊĠĠĠĠĠĠĠ Ġval Ġwrapped Language : ĠWr apped Language Ċ ) Ġ: ĠRe cycler Item < Lang Full Code > Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġid : ĠLang Full Code Ġget () Ġ= Ġwrapped Language . language . code Ċ }