package Ġcom . insp ired android . brain cup Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . preference . Preference Manager Ċ import Ġandroidx . ui . core . setContent Ċ import Ġcom . insp ired android . brain cup . api . User Storage Ċ import Ġcom . insp ired android . brain cup . app . AppState Ċ import Ġcom . insp ired android . brain cup . app . Navigation Controller Ċ import Ġcom . insp ired android . brain cup . app . Navigation Interface Ċ import Ġcom . insp ired android . brain cup . challenge . Challenge Data Ċ import Ġcom . insp ired android . brain cup . comp os ables .* Ċ import Ġcom . insp ired android . brain cup . games .* Ċ import Ġcom . rus sh w olf . settings . Android Settings Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity (), ĠNavigation Interface Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġgame Master Ġ= ĠNavigation Controller ( this ) ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġval Ġshared Prefs Ġ= ĠPreference Manager . getDefault SharedPreferences ( application Context ) ĊĠĠĠĠĠĠĠ Ġsettings Ġ= ĠAndroid Settings ( shared Prefs ) ĊĊĠĠĠĠĠĠĠ Ġval Ġchallenge Data Ġ= Ġintent . getString Extra (" challenge ") ĊĠĠĠĠĠĠĠ Ġif Ġ( challenge Data Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchallenge Url Ġ= Ġintent . getString Extra (" challenge Url ") Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchallenge Ġ= ĠChallenge Data . parse ( challenge Url , Ġchallenge Data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgame Master . start ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate Ġ= ĠApp State . CH ALL EN GE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchallenge Data Ġ= Ġchallenge ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgame Master . start () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( game Master . state Ġ== ĠApp State . START ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Back Pressed () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgame Master . start () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġgame Master . storage . put App Open () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow MainMenu ( ĊĠĠĠĠĠĠĠ Ġtitle : ĠString , ĊĠĠĠĠĠĠĠ Ġdescription : ĠString , ĊĠĠĠĠĠĠĠ Ġgames : ĠList < Game Type >, ĊĠĠĠĠĠĠĠ Ġshow Instructions : Ġ( Game Type ) Ġ-> ĠUnit , ĊĠĠĠĠĠĠĠ Ġshow Score : Ġ( Game Type ) Ġ-> ĠUnit , ĊĠĠĠĠĠĠĠ Ġshow Ach ievements : Ġ() Ġ-> ĠUnit , ĊĠĠĠĠĠĠĠ Ġcreate Challenge : Ġ() Ġ-> ĠUnit , ĊĠĠĠĠĠĠĠ Ġstorage : ĠUser Storage , ĊĠĠĠĠĠĠĠ Ġtotal Score : ĠInt , ĊĠĠĠĠĠĠĠ Ġapp Open Count : ĠInt ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset Content Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMain Menu Screen ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgames , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Instructions , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Score , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Ach ievements , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Challenge , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstorage , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtotal Score , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp Open Count ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Instructions ( ĊĠĠĠĠĠĠĠ Ġgame Type : ĠGame Type , ĊĠĠĠĠĠĠĠ Ġtitle : ĠString , ĊĠĠĠĠĠĠĠ Ġdescription : ĠString , ĊĠĠĠĠĠĠĠ Ġshow Challenge Info : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġhas Secret : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġstart : Ġ() Ġ-> ĠUnit ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset Content Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInstructions Screen ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Challenge Info , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas Secret , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgame Master ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow M ental Calculation ( ĊĠĠĠĠĠĠĠ Ġgame : ĠM ental Calculation Game , ĊĠĠĠĠĠĠĠ Ġanswer : Ġ( String ) Ġ-> ĠUnit , ĊĠĠĠĠĠĠĠ Ġnext : Ġ() Ġ-> ĠUnit ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset Content Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠM ental Calculation Screen ( game , Ġanswer , Ġnext ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Path Finder ( game : ĠPath Finder Game , Ġanswer : Ġ( String ) Ġ-> ĠUnit , Ġnext : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset Content Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPath Finder Screen ( game , Ġanswer , Ġnext ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow R iddle ( ĊĠĠĠĠĠĠĠ Ġgame : ĠR iddle Game , ĊĠĠĠĠĠĠĠ Ġtitle : ĠString , ĊĠĠĠĠĠĠĠ Ġanswer : Ġ( String ) Ġ-> ĠUnit , ĊĠĠĠĠĠĠĠ Ġnext : Ġ() Ġ-> ĠUnit ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset Content Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR iddle Screen ( game , Ġanswer , Ġnext ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Score board ( ĊĠĠĠĠĠĠĠ Ġgame Type : ĠGame Type , ĊĠĠĠĠĠĠĠ Ġhigh score : ĠInt , ĊĠĠĠĠĠĠĠ Ġscores : ĠList < Pair < String , ĠList < Int >>> ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset Content Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠScore board Screen ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgame Type , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhigh score , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscores , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgame Master ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Ach ievements ( ĊĠĠĠĠĠĠĠ Ġall Ach ievements : ĠList < User Storage . Ach ievements >, ĊĠĠĠĠĠĠĠ Ġun locked Ach ievements : ĠList < User Storage . Ach ievements > ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset Content Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA ch ievements Screen ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġall Ach ievements , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġun locked Ach ievements , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgame Master ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow An omaly P uzzle ( ĊĠĠĠĠĠĠĠ Ġgame : ĠAn omaly P uzzle Game , ĊĠĠĠĠĠĠĠ Ġanswer : Ġ( String ) Ġ-> ĠUnit , ĊĠĠĠĠĠĠĠ Ġnext : Ġ() Ġ-> ĠUnit ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset Content Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAn omaly P uzzle Screen ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgame , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanswer , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnext ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Color Conf usion ( ĊĠĠĠĠĠĠĠ Ġgame : ĠColor Conf usion Game , ĊĠĠĠĠĠĠĠ Ġanswer : Ġ( String ) Ġ-> ĠUnit , ĊĠĠĠĠĠĠĠ Ġnext : Ġ() Ġ-> ĠUnit ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset Content Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠColor Conf usion Screen ( game , Ġanswer , Ġnext ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Sh er lock Calculation ( ĊĠĠĠĠĠĠĠ Ġgame : ĠSh er lock Calculation Game , ĊĠĠĠĠĠĠĠ Ġtitle : ĠString , ĊĠĠĠĠĠĠĠ Ġanswer : Ġ( String ) Ġ-> ĠUnit , ĊĠĠĠĠĠĠĠ Ġnext : Ġ() Ġ-> ĠUnit ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset Content Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSh er lock Calculation Screen ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgame , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanswer , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnext ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Chain Calculation ( ĊĠĠĠĠĠĠĠ Ġgame : ĠChain Calculation Game , ĊĠĠĠĠĠĠĠ Ġanswer : Ġ( String ) Ġ-> ĠUnit , ĊĠĠĠĠĠĠĠ Ġnext : Ġ() Ġ-> ĠUnit ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset Content Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠChain Calculation Screen ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgame , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanswer , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnext ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Value Comparison ( ĊĠĠĠĠĠĠĠ Ġgame : ĠValue Comparison Game , ĊĠĠĠĠĠĠĠ Ġanswer : Ġ( String ) Ġ-> ĠUnit , ĊĠĠĠĠĠĠĠ Ġnext : Ġ() Ġ-> ĠUnit ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset Content Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠValue Comparison Screen ( game , Ġanswer , Ġnext ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Fraction Calculation ( ĊĠĠĠĠĠĠĠ Ġgame : ĠFraction Calculation Game , ĊĠĠĠĠĠĠĠ Ġanswer : Ġ( String ) Ġ-> ĠUnit , ĊĠĠĠĠĠĠĠ Ġnext : Ġ() Ġ-> ĠUnit ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset Content Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFraction Calculation Screen ( game , Ġanswer , Ġnext ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Correct Answer Feedback ( game Type : ĠGame Type , Ġhint : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġset Content Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCorrect Answer Screen ( hint ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Wrong Answer Feedback ( game Type : ĠGame Type , Ġsolution : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset Content Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWrong Answer Screen ( solution ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Correct Challenge Answer Feedback ( solution : ĠString , Ġsecret : ĠString , Ġurl : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset Content Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCorrect Challenge Answer Screen ( this , Ġsolution , Ġsecret , Ġurl , Ġgame Master ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Wrong Challenge Answer Feedback ( url : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset Content Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWrong Challenge Answer Screen ( this , Ġurl , Ġgame Master ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Create Challenge Menu ( games : ĠList < Game Type >, Ġanswer : Ġ( Game Type ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset Content Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCreate Challenge Menu Screen ( games , Ġanswer , Ġgame Master ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Create R iddle Challenge ( title : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset Content Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCreate R iddle Challenge ( this , Ġtitle , Ġgame Master ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Create Sh er lock Calculation Challenge ( title : ĠString , Ġdescription : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset Content Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCreate Sh er lock Calculation Challenge ( this , Ġtitle , Ġgame Master ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Finish Feedback ( ĊĠĠĠĠĠĠĠ Ġgame Type : ĠGame Type , ĊĠĠĠĠĠĠĠ Ġrank : ĠString , ĊĠĠĠĠĠĠĠ Ġnew High score : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġanswered All Correct : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġplays : ĠInt , ĊĠĠĠĠĠĠĠ Ġrandom : Ġ() Ġ-> ĠUnit , ĊĠĠĠĠĠĠĠ Ġagain : Ġ() Ġ-> ĠUnit ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġset Content Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFinish Screen ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrank , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew High score , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanswered All Correct , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplays , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrandom , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġagain , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgame Master ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ