package Ġcom . q orn an ali . foot ball club kt . feature . de ta ile vent Ċ Ċ import Ġandroid . content . res . Resources Ċ import Ġandroid . database . sqlite . SQLite Constraint Exception Ċ import Ġcom . google . gson . Gson Ċ import Ġcom . q orn an ali . foot ball club _ kotlin . R Ċ import Ġcom . q orn an ali . foot ball club kt . data . Api Repository Ċ import Ġcom . q orn an ali . foot ball club kt . data . SQLite Helper Ċ import Ġcom . q orn an ali . foot ball club kt . data . The Sport db API Ċ import Ġcom . q orn an ali . foot ball club kt . feature . Base Presenter Ċ import Ġcom . q orn an ali . foot ball club kt . model . Event Ċ import Ġcom . q orn an ali . foot ball club kt . model . Favorite Event Ċ import Ġcom . q orn an ali . foot ball club kt . model . Response Get Teams Ċ import Ġcom . q orn an ali . foot ball club kt . model . Statistic Ċ import Ġcom . q orn an ali . foot ball club kt . util . Coroutine Context Provider Ċ import Ġcom . q orn an ali . foot ball club kt . util . Date Formatter Ċ import Ġkotlinx . coroutines . experimental . async Ċ import Ġorg . jetbrains . ank o . coroutines . experimental . bg Ċ import Ġorg . jetbrains . ank o . db . delete Ċ import Ġorg . jetbrains . ank o . db . insert Ċ Ċ class ĠDisplay Detail Event AP res enter ( gson : ĠGson , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi Repository : ĠApi Repository , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview : ĠDisplay Detail Event A View , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext : ĠCor outine Context Provider Ġ= ĠCor outine Context Provider ()) ĊĠĠĠ Ġ: ĠBase Presenter < Display Detail Event A View >( gson , Ġapi Repository , Ġview , Ġcontext ) Ġ{ ĊĊĠĠĠ Ġfun Ġset ActionBar ( resources : ĠResources ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview . display ActionBar Title ( resources . getString ( R . string . my _ favorites )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġload Event Score ( home Score : ĠString ?, Ġaway Score : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġview . show Scores ( away Score , Ġhome Score ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġload Event Date ( str Date : ĠString ?, Ġstr Time : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġevent Date Ġ= ĠDate Formatter . format ToDate ( str Date Ġ+ Ġ" Ġ" Ġ+ Ġstr Time ?. split ("+ ") ?. get ( 0 ), Ġ" dd / MM / yy ĠHH : mm : ss ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . show Event Date ( Date Formatter . format ToString ( event Date , Ġ" EEEE , Ġdd ĠM MMM Ġy yyy ĠHH : mm ")) ĊĠĠĠĠĠĠĠ Ġ} catch Ġ( e Ġ: ĠException ){ ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġload Teams Name ( away Name : ĠString ?, Ġhome Name : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġview . show Team Name ( away Name , Ġhome Name ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġremove From Favorite ( id Event : ĠString ?, Ġdatabase : ĠSQLite Helper ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdatabase . use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelete ( Favorite Event . TABLE _ FA V OR ITE EVENT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"( FIELD _ ID EVENT Ġ= Ġ{ value })", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" value " Ġto Ġ( id Event Ġ?: Ġ"")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . success Removed From Favorite () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠSQLite Constraint Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . show Error ( e . message ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠaddTo Favorite ( event : ĠEvent ?, Ġdatabase : ĠSQLite Helper ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdatabase . use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinsert ( Favorite Event . TABLE _ FA V OR ITE EVENT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF avorite Event . FIELD _ ID EVENT Ġto Ġevent ?. id Event , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF avorite Event . FIELD _ HOME TEAM Ġto Ġevent ?. str Home Team , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF avorite Event . FIELD _ AW AY TEAM Ġto Ġevent ?. str Away Team , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF avorite Event . FIELD _ HO MES CORE Ġto Ġevent ?. int Home Score , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF avorite Event . FIELD _ AW AY SCORE Ġto Ġevent ?. int Away Score , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF avorite Event . FIELD _ HO MER ED Ġto Ġevent ?. str Home Red Cards , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF avorite Event . FIELD _ HOME YELLOW Ġto Ġevent ?. str Home Yellow Cards , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF avorite Event . FIELD _ HOME GK Ġto Ġevent ?. str Home Line up Goal keeper , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF avorite Event . FIELD _ HOME DF Ġto Ġevent ?. str Home Line up Def ense , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF avorite Event . FIELD _ HO MEM F Ġto Ġevent ?. str Home Line up Mid field , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF avorite Event . FIELD _ HOME FW Ġto Ġevent ?. str Home Line up Forward , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF avorite Event . FIELD _ HO MES UB Ġto Ġevent ?. str Home Line up Subst it utes , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF avorite Event . FIELD _ HOME FORMATION Ġto Ġevent ?. str Home Formation , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF avorite Event . FIELD _ AW AY RED Ġto Ġevent ?. str Away Red Cards , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF avorite Event . FIELD _ AW AY YELLOW Ġto Ġevent ?. str Away Yellow Cards , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF avorite Event . FIELD _ AW AY GK Ġto Ġevent ?. str Away Line up Goal keeper , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF avorite Event . FIELD _ AW AY DF Ġto Ġevent ?. str Away Line up Def ense , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF avorite Event . FIELD _ AW AY MF Ġto Ġevent ?. str Away Line up Mid field , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF avorite Event . FIELD _ AW AY FW Ġto Ġevent ?. str Away Line up Forward , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF avorite Event . FIELD _ AW AY SUB Ġto Ġevent ?. str Away Line up Subst it utes , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF avorite Event . FIELD _ AW AY FORMATION Ġto Ġevent ?. str Away Formation , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF avorite Event . FIELD _ HO MESH OT S Ġto Ġevent ?. int Home Sh ots , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF avorite Event . FIELD _ AW AY SHOT S Ġto Ġevent ?. int Away Sh ots , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF avorite Event . FIELD _ DATE Ġto Ġevent ?. str Date , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF avorite Event . FIELD _ TIME Ġto Ġevent ?. str Time , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF avorite Event . FIELD _ HOME ID Ġto Ġevent ?. id Home Team , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠF avorite Event . FIELD _ AW AY ID Ġto Ġevent ?. id Away Team ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . success Added To Favorite () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠSQLite Constraint Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . show Error ( e . message ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġload Statistic ( event : ĠEvent ?, Ġresources : ĠResources ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= ĠArrayList < Statistic >() ĊĠĠĠĠĠĠĠ Ġdata . add ( Statistic ( event ?. str Home Formation , Ġresources . getString ( R . string . formation ), Ġevent ?. str Away Formation )) ĊĠĠĠĠĠĠĠ Ġdata . add ( Statistic ( event ?. int Home Sh ots , Ġresources . getString ( R . string . shots ), Ġevent ?. int Away Sh ots )) ĊĠĠĠĠĠĠĠ Ġdata . add ( Statistic ( event ?. str Home Red Cards , Ġresources . getString ( R . string . red _ cards ), Ġevent ?. str Away Red Cards )) ĊĠĠĠĠĠĠĠ Ġdata . add ( Statistic ( event ?. str Home Yellow Cards , Ġresources . getString ( R . string . yellow _ cards ), Ġevent ?. str Away Yellow Cards )) ĊĠĠĠĠĠĠĠ Ġdata . add ( Statistic ( event ?. str Home Line up Forward , Ġresources . getString ( R . string . forward ), Ġevent ?. str Away Line up Forward )) ĊĠĠĠĠĠĠĠ Ġdata . add ( Statistic ( event ?. str Home Line up Mid field , Ġresources . getString ( R . string . mid f iel der ), Ġevent ?. str Away Line up Mid field )) ĊĠĠĠĠĠĠĠ Ġdata . add ( Statistic ( event ?. str Home Line up Def ense , Ġresources . getString ( R . string . defender ), Ġevent ?. str Away Line up Def ense )) ĊĠĠĠĠĠĠĠ Ġdata . add ( Statistic ( event ?. str Home Line up Goal keeper , Ġresources . getString ( R . string . goal keeper ), Ġevent ?. str Away Line up Goal keeper )) ĊĠĠĠĠĠĠĠ Ġdata . add ( Statistic ( event ?. str Home Line up Subst it utes , Ġresources . getString ( R . string . sub tit utes ), Ġevent ?. str Away Line up Subst it utes )) ĊĠĠĠĠĠĠĠ Ġview . show Statistic ( data ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġload Home Badge ( id Home Team : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġasync ( context . main ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġbg Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgson . fromJson ( api Repository . do Request ( The Sport db API . get Team ById ( id Home Team )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResponse Get Teams :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . show Home Badge ( data . await (). teams . get ( 0 ). str Team Badge ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġload Away Badge ( id Away Team : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġasync ( context . main ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġbg Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgson . fromJson ( api Repository . do Request ( The Sport db API . get Team ById ( id Away Team )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResponse Get Teams :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . show Away Badge ( data . await (). teams . get ( 0 ). str Team Badge ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }