package Ġcom . re vol gen x . an ilib . ui . presenter Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġcom . otal i ast ud ios . elements . Element Ċ import Ġcom . otal i ast ud ios . elements . Page Ċ import Ġcom . pr an av pan de y . android . dynamic . support . theme . Dynamic Theme Ċ import Ġcom . re vol gen x . an ilib . R Ċ import Ġcom . re vol gen x . an ilib . data . field . Tag Field Ċ import Ġcom . re vol gen x . an ilib . data . field . Tag State Ċ import Ġcom . re vol gen x . an ilib . databinding . Tag Presenter Layout Binding Ċ Ċ class ĠTag Presenter ( context : ĠContext ) Ġ: ĠBase Presenter < Tag Presenter Layout Binding , ĠTag Field >( context ) Ġ{ ĊĠĠĠ Ġoverride Ġval Ġelement Types : ĠCollection < Int > ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠlistOf ( 0 ) ĊĊĠĠĠ Ġprivate Ġvar Ġtag Removed Listener : Ġ(( elements : ĠString ) Ġ-> ĠUnit )? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġval Ġnormal TextColor Ġ= ĠDynamic Theme . getInstance (). get (). tint Surface Color ĊĠĠĠ Ġprivate Ġval Ġred TextColor Ġ= ĠContext Compat . getColor ( context , ĠR . color . red ) ĊĊĠĠĠ Ġoverride Ġfun Ġbind View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġparent : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ Ġelement Type : ĠInt ĊĠĠĠ Ġ): ĠTag Presenter Layout Binding Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠTag Presenter Layout Binding . inflate ( in flater , Ġparent , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ( page : ĠPage , Ġholder : ĠH older , Ġelement : ĠElement < Tag Field >) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Bind ( page , Ġholder , Ġelement ) ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġelement . data Ġ?: Ġreturn ĊĊĠĠĠĠĠĠĠ Ġholder . get Binding ()?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠtextColor Ġ= Ġwhen ( data . tag State ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTag State . UNT AG GED Ġ-> { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġred TextColor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnormal TextColor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠtagName . setTextColor ( textColor ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠtagName . text Ġ= Ġdata . tag ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroot . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpage . remove Element ( element ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtag Removed Listener ?. invoke ( data . tag ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtag Removed ( listener : Ġ( element : ĠString ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtag Removed Listener Ġ= Ġlistener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġremove Listener (){ ĊĠĠĠĠĠĠĠ Ġtag Removed Listener Ġ= Ġnull ĊĠĠĠ Ġ} Ċ }