package Ġx fy . wl . exam father Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ import Ġorg . jetbrains . ank o . toast Ċ import Ġx fy . wl . exam father . storage . App Preferences ĊĊ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġexam DB Helper : ĠExam DB Helper ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ Ġexam DB Helper Ġ= ĠExam DB Helper . getInstance ( this ) ĊĠĠĠĠĠĠĠ Ġ_ tv _ top _ score Ġ= Ġtv _ top _ score ĊĠĠĠĠĠĠĠ Ġval Ġpreferences Ġ= ĠApp Preferences ( this ) ĊĠĠĠĠĠĠĠ Ġset Top Score ( preferences . get Top Score ()) ĊĊĠĠĠĠĠĠĠ Ġbutton _ new _ game . setOnClickListener ( this :: onClick New Game ) ĊĠĠĠĠĠĠĠ Ġbutton _ error _ history . setOnClickListener ( this :: onClick Error History ) ĊĠĠĠĠĠĠĠ Ġbutton _ law _ sets . setOnClickListener ( this :: onClick Law Sets ) ĊĠĠĠĠĠĠĠ Ġbutton _ clear _ score . setOnClickListener ( this :: onClick Clear Score ) ĊĠĠĠĠĠĠĠ Ġbutton _ exit . setOnClickListener ( this :: onClick Exit ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠonClick New Game ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Data () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Data ( tableName : ĠString Ġ= ĠExam DB Helper . TABLE _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcondition : ĠString Ġ= Ġ" 1 = 1 Ġorder Ġby Ġrandom () Ġlimit Ġ 1 0 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent Extra : ĠMap < String , ĠBoolean > Ġ= Ġmap Of ( Game Activity . IS _ EX AM Ġto Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠ ĠThread ( Runnable Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ MainActivity . run On Ui Thread ( Runnable Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar . visibility Ġ= ĠView . VISIBLE Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠExam DB Helper . TABLE _ NAME Ġ= ĠtableName ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠExam DB Helper . exam InfoList Ġ= Ġexam DB Helper . query ( condition ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġ_ intent Ġ= ĠIntent ( this , ĠGame Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent Extra . forEach { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey , Ġvalue Ġ-> Ġ_ intent . putExtra ( key , Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity (_ intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ MainActivity . run On Ui Thread ( Runnable Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar . visibility Ġ= ĠView . GONE Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ}). start () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠonClick Error History ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ ĠTODO (" å° ļ æľª å®ĮæĪĲ ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠonClick Law Sets ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġ_ intent Extra Ġ= Ġmap Of ( Game Activity . IS _ EX AM Ġto Ġfalse ) ĊĠĠĠĠĠĠĠ Ġinit Data ( condition Ġ= Ġ" 1 = 1 ", Ġintent Extra Ġ= Ġ_ intent Extra ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠonClick Clear Score ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpreferences Ġ= ĠApp Preferences ( this ) ĊĠĠĠĠĠĠĠ Ġpreferences . clear Top Score () ĊĠĠĠĠĠĠĠ Ġtv _ top _ score . text Ġ= Ġ" å½ĵåīį æľĢ é«ĺ åĪĨ ï¼ļ 0 " ĊĠĠĠĠĠĠĠ Ġtoast (" å·²ç»ı éĩį ç½® æľĢ é«ĺ åĪĨ ï¼ģ ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠonClick Exit ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfinish Affinity () ĊĠĠĠĠĠĠĠ ĠSystem . exit ( 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġ_ tv _ top _ score : ĠTextView ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġfun Ġset Top Score ( top Score : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ tv _ top _ score !!. text Ġ= Ġ" å½ĵåīį æľĢ é«ĺ åĪĨ ï¼ļ ${ top Score }" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ