package Ġcom . m iz uk ikk . ml td . main . event . adapter Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . databinding . ViewData Binding Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . m iz uk ikk . ml td . R Ċ import Ġcom . m iz uk ikk . ml td . databinding . Item Event Border Binding Ċ import Ġcom . m iz uk ikk . ml td . databinding . Item Point Binding Ċ import Ġcom . m iz uk ikk . ml td . main . event . model . Event Border Ċ import Ġcom . m iz uk ikk . ml td . ui . recyclerview . Base ViewHolder Ċ Ċ class ĠEvent Border Adapter ( ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġevent Border List : ĠList < Event Border >, ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġin Progress : ĠBoolean Ċ ) Ġ: ĠRecyclerView . Adapter < Event Border Adapter . Event Border Holder >() Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġlistener : ĠEvent Border Listener ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠEvent Border Holder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinflater Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠ Ġreturn ĠEvent Border Holder ( Item Event Border Binding . inflate ( in flater , Ġparent , Ġfalse )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠEvent Border Holder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . bind Data ( event Border List [ position ]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count () Ġ= Ġevent Border List . size ĊĊĠĠĠ Ġfun Ġswap Data ( event Border List : ĠList < Event Border >) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . event Border List Ġ= Ġevent Border List ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclear () Ġ{ ĊĠĠĠĠĠĠĠ Ġevent Border List Ġ= Ġmutable ListOf () ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Listener ( listener : ĠEvent Border Listener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . listener Ġ= Ġlistener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠEvent Border Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġselect An iv Id ol () ĊĠĠĠĠĠĠĠ Ġfun Ġshow Event Chart ( event Chart Type : ĠString , Ġevent Chart R anks : ĠString ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠEvent Border Holder ( binding : ĠView Data Binding ) Ġ: ĠBase ViewHolder < Item Event Border Binding >( binding ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġbind Data ( data : ĠEvent Border ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetTitle ( data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset B orders ( data ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetId ol Data ( data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Listener ( data ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġset Listener ( data : ĠEvent Border ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . fl Icon . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener ?. select An iv Id ol () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . root . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener ?. show Event Chart ( data . event Chart Type , Ġdata . event Chart R anks ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun ĠsetId ol Data ( data : ĠEvent Border ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . id ol Data ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . data Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġset B orders ( data : ĠEvent Border ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . ll B orders . removeAll Views () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . border List . filter Ġ{ Ġit . rank Ġ<= Ġ 5 0 0 0 0 Ġ}. forEach Indexed Ġ{ Ġindex , Ġborder Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpoint Binding Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠItem Point Binding . inflate ( LayoutInflater . from ( binding . root . context )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpoint Binding . tv No . text Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . item _ last _ point _ rank ). format ( border . rank ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpoint Binding . tv Score . text Ġ= Ġborder . current Score ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpoint Binding . tv Half Hour Add . text Ġ= Ġborder . half Hour ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpoint Binding . tv One Hour Add . text Ġ= Ġborder . one Hour ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpoint Binding . tv One Day Add . text Ġ= Ġborder . one Day ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . ll B orders . addView ( point Binding . root ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun ĠsetTitle ( data : ĠEvent Border ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Title . text Ġ= Ġdata . title ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Update . text Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . item _ last _ point _ update ). format ( data . update Date ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }