package Ġcom . j uv etic . calc io . ui . event detail Ċ Ċ import Ġandroid . database . sqlite . SQLite Constraint Exception Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view .* Ċ import Ġandroid . view . View . GONE Ċ import Ġandroid . view . View . VISIBLE Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . core . widget . Nested ScrollView Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . view pager . widget . ViewPager Ċ import Ġcom . google . android . material . tabs . Tab Layout Ċ import Ġcom . j uv etic . calc io . G lide App Ċ import Ġcom . j uv etic . calc io . R Ċ import Ġcom . j uv etic . calc io . core . contract . League Contract Ċ import Ġcom . j uv etic . calc io . core . presenter . event detail . Event Detail Interactor Ċ import Ġcom . j uv etic . calc io . core . presenter . event detail . Event Detail Presenter Ċ import Ġcom . j uv etic . calc io . core . presenter . event team home away . Team Away Contract Ċ import Ġcom . j uv etic . calc io . core . presenter . event team home away . Team Detail Interactor Ċ import Ġcom . j uv etic . calc io . core . presenter . event team home away . Team Detail Presenter Ċ import Ġcom . j uv etic . calc io . core . presenter . event team home away . Team Home Contract Ċ import Ġcom . j uv etic . calc io . db . database Ċ import Ġcom . j uv etic . calc io . model . event . Event Ċ import Ġcom . j uv etic . calc io . model . event . Event Result Ċ import Ġcom . j uv etic . calc io . model . favorite . Favorite Event Ċ import Ġcom . j uv etic . calc io . model . team . Team Ċ import Ġcom . j uv etic . calc io . ui . Tab Adapter Ċ import Ġcom . j uv etic . calc io . utils . Date Util Ċ import Ġkotlinx . android . synt hetic . main . fragment _ event _ detail .* Ċ import Ġorg . jetbrains . ank o . An ko Logger Ċ import Ġorg . jetbrains . ank o . db . class Parser Ċ import Ġorg . jetbrains . ank o . db . delete Ċ import Ġorg . jetbrains . ank o . db . insert Ċ import Ġorg . jetbrains . ank o . db . select Ċ import Ġorg . jetbrains . ank o . debug Ċ import Ġorg . jetbrains . ank o . info Ċ import Ġorg . jetbrains . ank o . support . v 4 . toast ĊĊ Ċ class ĠEvent Detail Fragment Ġ: ĠFragment (), ĊĠĠĠ ĠLeague Contract < Event >, ĠTeam Home Contract , ĠTeam Away Contract , ĠAn ko Logger Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġevent : ĠEvent Result ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġadapter : ĠTab Adapter ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġvp Event : ĠView Pager ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtab Event : ĠTab Layout ĊĠĠĠ Ġprivate Ġvar Ġmenu Item : ĠMenu ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġis Favorite : ĠBoolean Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġid : ĠString ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠEX TRA _ EVENT _ ITEM Ġ= Ġ" event _ item " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠEVENT _ ID Ġ= Ġ" event _ id " ĊĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( eventId : ĠString ): ĠEvent Detail Fragment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġevent Detail Fragment Ġ= ĠEvent Detail Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbundle Ġ= ĠBundle () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . putString ( EXTRA _ EVENT _ ITEM , Ġevent Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent Detail Fragment . arguments Ġ= Ġbundle ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġevent Detail Fragment ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġset Has Options Menu ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . fragment _ event _ detail , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġvp Event Ġ= Ġview . findViewById ( R . id . vp _ event ) ĊĠĠĠĠĠĠĠ Ġtab Event Ġ= Ġview . findViewById ( R . id . tab _ event ) ĊĊĠĠĠĠĠĠĠ Ġval Ġscroll View : ĠNested ScrollView Ġ= Ġview . findViewById ( R . id . nested _ scroll _ view ) ĊĠĠĠĠĠĠĠ Ġscroll View . is Fill Viewport Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠ Ġif Ġ( arguments Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġarguments ?. getString ( EXTRA _ EVENT _ ITEM ). toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġload Event () ĊĠĠĠĠĠĠĠ Ġcheck Favorite () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu , Ġinflater : ĠMenu Inflater ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinflater . inflate ( R . menu . event _ detail , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġmenu Item Ġ= Ġmenu ĊĠĠĠĠĠĠĠ Ġset Favorite () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . id . home Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. on Back Pressed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . add _ to _ favorite Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Favorite ) Ġremove From Favorite () Ġelse ĠaddTo Favorite () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Favorite Ġ= Ġ! is Favorite ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Favorite () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon GetData Success ( data : ĠEvent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġinfo (" Success Ġevent Ġdetail ") ĊĠĠĠĠĠĠĠ Ġdata ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . event Ġ= Ġit . events [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. title Ġ= Ġthis . event . str Event ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ date . text Ġ= ĠDate Util . format Date ( this . event . date Event ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ league _ name . text Ġ= Ġthis . event . str League ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ home _ score . text Ġ= Ġthis . event . int Home Score ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ away _ score . text Ġ= Ġthis . event . int Away Score ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ home _ name . text Ġ= Ġthis . event . str Home Team ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ away _ name . text Ġ= Ġthis . event . str Away Team ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCheck ĠNext ĠEvents ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( this . event . int Home Score Ġ!= Ġnull Ġ&& Ġthis . event . int Away Score Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ full _ time . text Ġ= ĠgetString ( R . string . full _ time ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcl _ goal _ sc orer . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview _ separator . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCheck Ġ 0 - 0 ĠEvents ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tv _ home _ score . text Ġ== Ġ" 0 " Ġ&& Ġtv _ away _ score . text Ġ== Ġ" 0 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcl _ goal _ sc orer . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview _ separator . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ home _ goal sc orer . text Ġ= Ġset Goal Sc orer Home ( get Goal Sc orer List ( this . event . str Home Goal Details )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ away _ goal sc orer . text Ġ= Ġset Goal Sc orer Away ( get Goal Sc orer List ( this . event . str Away Goal Details )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġteam Presenter Ġ= ĠTeam Detail Presenter ( this , Ġthis , ĠTeam Detail Interactor ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . event . id Home Team ?. let Ġ{ Ġit 1 Ġ-> Ġteam Presenter . get Home Team Detail ( it 1 ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . event . id Away Team ?. let Ġ{ Ġit 1 Ġ-> Ġteam Presenter . get Away Team Detail ( it 1 ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsetup Tab Adapter ( it ) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon GetData Failed ( message : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity ?. run On Ui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdebug (" Error Ġ$ message ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoast (" Request Ġtimeout , Ġplease Ġtry Ġagain ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. on Back Pressed () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Get Home Data Success ( team : ĠTeam ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġinfo (" Success Ġhome Ġteam ") ĊĊĠĠĠĠĠĠĠ Ġteam ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġt Ġ= Ġit . teams [ 0 ] ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext ?. let Ġ{ Ġit 1 Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG lide App . with ( it 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( t . str Team Badge ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( img _ home _ logo ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Get Home Data Failed ( message : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdebug ( message ) ĊĠĠĠĠĠĠĠ Ġtoast (" Request Ġtimeout , Ġplease Ġtry Ġagain ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Get Away Data Success ( team : ĠTeam ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġinfo (" Success Ġaway Ġteam ") ĊĊĠĠĠĠĠĠĠ Ġteam ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġt Ġ= Ġit . teams [ 0 ] ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext ?. let Ġ{ Ġit 1 Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG lide App . with ( it 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( t . str Team Badge ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( img _ away _ logo ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Get Away Data Failed ( message : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdebug ( message ) ĊĠĠĠĠĠĠĠ Ġtoast (" Request Ġtimeout , Ġplease Ġtry Ġagain ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Tab Adapter ( event : ĠEvent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= ĠTab Adapter (( it Ġas ĠAppCompatActivity ). support FragmentManager ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . add Fragment ( Stats Fragment . newInstance ( event ), ĠgetString ( R . string . stats )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . add Fragment ( Line Up Fragment . newInstance ( event ), ĠgetString ( R . string . line up )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvp Event . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtab Event . setup With ViewPager ( vp Event ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Goal Sc orer Home ( list : ĠList < String >): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġsc orer Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġinfo (" list Ġsize Ġ" Ġ+ Ġlist . size ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( s Ġin Ġlist ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinfo ( s ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( s . split (": "). size Ġ== Ġ 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsc orer Ġ+= Ġ( get Goal Minutes ( s ) Ġ+ Ġ" Ġ" Ġ+ Ġget Goal Player ( s ) Ġ+ Ġ"\ n ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinfo ( sc orer ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsc orer ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Goal Sc orer Away ( list : ĠList < String >): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġsc orer Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġinfo (" list Ġsize Ġ" Ġ+ Ġlist . size ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( s Ġin Ġlist ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinfo ( s ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( s . split (": "). size Ġ== Ġ 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsc orer Ġ+= Ġ( get Goal Player ( s ) Ġ+ Ġ" Ġ" Ġ+ Ġget Goal Minutes ( s ) Ġ+ Ġ"\ n ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinfo ( sc orer ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsc orer ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Goal Sc orer List ( s : ĠString ?): ĠList < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( s Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinfo (" AJ IG Ġ" Ġ+ Ġs . split ("; ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġs . split ("; ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠlistOf () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Goal Minutes ( s : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsplit : ĠList < String > Ġ= Ġs . split (": ") ĊĠĠĠĠĠĠĠ Ġreturn Ġsplit [ 0 ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Goal Player ( s : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsplit : ĠList < String > Ġ= Ġs . split (": ") ĊĠĠĠĠĠĠĠ Ġreturn Ġsplit [ 1 ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Event () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpresenter Ġ= ĠEvent Detail Presenter ( this , ĠEvent Detail Interactor ()) ĊĠĠĠĠĠĠĠ Ġpresenter . getEvent Detail ( id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠaddTo Favorite () Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. database ?. use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinsert ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF avorite Event . TABLE _ FA V OR ITE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF avorite Event . EVENT _ ID Ġto Ġevent . id Event , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF avorite Event . EVENT _ DATE Ġto Ġevent . date Event , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF avorite Event . EVENT _ HOME _ TEAM Ġto Ġevent . str Home Team , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF avorite Event . EVENT _ AW AY _ TEAM Ġto Ġevent . str Away Team , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF avorite Event . EVENT _ HOME _ SCORE Ġto Ġevent . int Home Score , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF avorite Event . EVENT _ AW AY _ SCORE Ġto Ġevent . int Away Score ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoast ( getString ( R . string . added _ to _ favorite )) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠSQLite Constraint Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoast ( e . localized Message ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġremove From Favorite () Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. database ?. use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelete ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF avorite Event . TABLE _ FA V OR ITE , Ġ"( EVENT _ ID Ġ= Ġ{ id })", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" id " Ġto Ġid ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoast ( getString ( R . string . removed _ from _ favorite )) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠSQLite Constraint Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoast ( e . localized Message ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Favorite () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Favorite ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmenu Item ?. getItem ( 0 )?. icon Ġ= Ġactivity ?. let Ġ{ ĠContext Compat . get Drawable ( it , ĠR . drawable . ic _ favorite ) Ġ} ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmenu Item ?. getItem ( 0 )?. icon Ġ= Ġactivity ?. let Ġ{ ĠContext Compat . get Drawable ( it , ĠR . drawable . ic _ favorite _ border ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcheck Favorite () Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. database ?. use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġselect Ġ= Ġselect ( Favorite Event . TABLE _ FA V OR ITE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. where Args ("( EVENT _ ID Ġ= Ġ{ id })", Ġ" id " Ġto Ġid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġselect . parse List ( class Parser < Favorite Event >()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result . isNotEmpty ()) Ġis Favorite Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠSQLite Constraint Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoast ( e . localized Message ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }