package Ġcom . example . f rc _ e lo _ app Ċ Ċ import Ġandroid . os . Environment Ċ import Ġjava . io . File Ċ import Ġjava . io . FileInputStream Ċ import Ġjava . io . File OutputStream Ċ Ċ class ĠTeam Ġ( var Ġnumber : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġname : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġrating : ĠDouble Ġ= Ġ 1 0 0 0 . 0 ) Ċ Ċ class ĠAl liance Ġ( var Ġcapt ain : ĠTeam , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġpick One : ĠTeam , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġpick Two : ĠTeam ) Ġ{ ĊĠĠĠ Ġfun Ġget Al liance String () Ġ: ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ"\ t ${ capt ain . number }\ n \ t \ t ${ pick One . number }\ n \ t \ t ${ pick Two . number }\ n " ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġsave All () Ġ{ ĊĠĠĠ Ġif Ġ( is External Storage Writable ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlet Directory Ġ= ĠFile ( Environment . get External Storage Directory (), Ġ" FR C - E LO ") ĊĠĠĠĠĠĠĠ Ġlet Directory . mkdir s () ĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= ĠFile ( let Directory , Ġ" e lo . txt ") ĊĊĠĠĠĠĠĠĠ ĠFileOutputStream ( file ). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . write (" ". toByteArray ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġteams By Rank . sortBy Descending Ġ{ Ġit . rating Ġ} ĊĠĠĠĠĠĠĠ Ġteams By Rank . forEach Ġ{ Ġfile . append Text ("${ it . number }\ t ${ it . name }\ t ${ it . rating }\ n ") Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġval Ġup set File Ġ= ĠFile ( let Directory , Ġ" up sets . txt ") ĊĊĠĠĠĠĠĠĠ ĠFileOutputStream ( up set File ). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . write (" ". toByteArray ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif ( listOf Up sets . size Ġ== Ġ 0 ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" G ib Ġup set Ġ à ¼ ¼ Ġ ãģ¤ ĠâĹ ķ _ âĹ ķ Ġ à ¼ ½ ãģ¤ ", ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġdistinct Ġ= ĠlistOf Up sets . distinct () ĊĠĠĠĠĠĠĠ Ġdistinct . forEach Ġ{ up set File . append Text ("$ it \ n ")} Ċ Ċ // ĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" SA VED ", ĠToast . LENGTH _ LONG ). show () ĊĠĠĠ Ġ} Ġelse Ġ{ Ċ // ĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" G ib ĠPermission Ġ à ¼ ¼ Ġ ãģ¤ ĠâĹ ķ _ âĹ ķ Ġ à ¼ ½ ãģ¤ ", ĠToast . LENGTH _ LONG ). show () ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġload All () Ġ{ ĊĠĠĠ Ġif Ġ( is External Storage Writable ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġteams By Rank . clear () ĊĊĠĠĠĠĠĠĠ Ġval Ġlet Directory Ġ= ĠFile ( Environment . get External Storage Directory (), Ġ" FR C - E LO ") ĊĠĠĠĠĠĠĠ Ġlet Directory . mkdir s () ĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= ĠFile ( let Directory , Ġ" e lo . txt ") ĊĊĠĠĠĠĠĠĠ Ġval Ġinput AsString Ġ= ĠFileInputStream ( file ). buffered Reader (). use Ġ{ Ġit . read Text () Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( input AsString . length Ġ> Ġ 5 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġread Lines Ġ= Ġinput AsString . split ('\ n '). to Mutable List () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġread Lines . remove At ( read Lines . last Index ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġread Lines ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm Read DataList Ġ= Ġi . split ('\ t ') ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġread Team Ġ= ĠTeam ( m Read DataList [ 0 ]. toInt (), Ġm Read DataList [ 1 ], Ġm Read DataList [ 2 ]. toDouble ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġteams By Rank . add ( 0 , Ġread Team ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠlistOf Up sets . clear () ĊĠĠĠĠĠĠĠ Ġval Ġup set File Ġ= ĠFile ( let Directory , Ġ" up sets . txt ") ĊĊĠĠĠĠĠĠĠ Ġval Ġup sets AsString Ġ= ĠFileInputStream ( up set File ). buffered Reader (). use Ġ{ Ġit . read Text () Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( up sets AsString . length Ġ> Ġ 5 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġread Up set Lines Ġ= Ġup sets AsString . split ('\ n ') ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġread Up set Lines ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf Up sets . add ( 0 , Ġi ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ċ Ċ // ĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" LOADED ", ĠToast . LENGTH _ LONG ). show () ĊĠĠĠ Ġ} Ġelse Ġ{ Ċ // ĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" G ib ĠPermission Ġ à ¼ ¼ Ġ ãģ¤ ĠâĹ ķ _ âĹ ķ Ġ à ¼ ½ ãģ¤ ", ĠToast . LENGTH _ LONG ). show () ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġsave Backups () Ġ{ ĊĠĠĠ Ġif Ġ( is External Storage Writable ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlet Directory Ġ= ĠFile ( Environment . get External Storage Directory (), Ġ" FR C - E LO ") ĊĠĠĠĠĠĠĠ Ġlet Directory . mkdir s () ĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= ĠFile ( let Directory , Ġ" e lo _ backup . txt ") ĊĊĠĠĠĠĠĠĠ ĠFileOutputStream ( file ). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . write (" ". toByteArray ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġteams By Rank . sortBy Descending Ġ{ Ġit . rating Ġ} ĊĠĠĠĠĠĠĠ Ġteams By Rank . forEach Ġ{ Ġfile . append Text ("${ it . number }\ t ${ it . name }\ t ${ it . rating }\ n ") Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġval Ġup set File Ġ= ĠFile ( let Directory , Ġ" up sets _ backup . txt ") ĊĊĠĠĠĠĠĠĠ ĠFileOutputStream ( up set File ). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . write (" ". toByteArray ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif ( listOf Up sets . size Ġ== Ġ 0 ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" G ib Ġup set Ġ à ¼ ¼ Ġ ãģ¤ ĠâĹ ķ _ âĹ ķ Ġ à ¼ ½ ãģ¤ ", ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġdistinct Ġ= ĠlistOf Up sets . distinct () ĊĠĠĠĠĠĠĠ Ġdistinct . forEach Ġ{ up set File . append Text ("$ it \ n ")} Ċ Ċ // ĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" SA VED ", ĠToast . LENGTH _ LONG ). show () ĊĠĠĠ Ġ} Ġelse Ġ{ Ċ // ĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" G ib ĠPermission Ġ à ¼ ¼ Ġ ãģ¤ ĠâĹ ķ _ âĹ ķ Ġ à ¼ ½ ãģ¤ ", ĠToast . LENGTH _ LONG ). show () ĊĠĠĠ Ġ} Ċ } Ċ Ċ /* ĠChecks Ġif Ġexternal Ġstorage Ġis Ġavailable Ġfor Ġread Ġand Ġwrite Ġ*/ Ċ fun Ġis External Storage Writable (): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn ĠEnvironment . get External Storage State () Ġ== ĠEnvironment . MEDIA _ MOUNT ED Ċ }