package Ġcom . s nn . voc Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . recyclerview . widget . Grid LayoutManager Ċ import Ġkotlinx . android . synt hetic . main . activity _ quiz .* ĊĊ Ċ class ĠQu iz Activity Ġ: ĠAppCompatActivity (), ĠI ClickListener Ġ{ ĊĠĠĠ Ġprivate Ġval Ġdatabase Helper Ġ= ĠDatabase Helper ( this ) ĊĠĠĠ Ġprivate Ġval Ġtypes Ġ= Ġarray ListOf (" Verb ", Ġ" Ad verb ", Ġ" Ad ject ive ", Ġ" Phrase Ġand ĠI di om ") ĊĊĠĠĠ Ġprivate Ġvar Ġwords Ġ= ĠArrayList < Word >() ĊĠĠĠ Ġprivate Ġvar ĠindexOf Correct Answer Ġ= Ġ- 1 ĊĠĠĠ Ġprivate Ġvar Ġlevel Ġ= Ġ 1 ĊĠĠĠ Ġprivate Ġvar Ġselected Type Ġ= Ġ"" ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ quiz ) ĊĊĠĠĠĠĠĠĠ ĠprogressBar . alpha Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠ Ġtext _ view _ order . alpha Ġ= Ġ 0 f ĊĊĠĠĠĠĠĠĠ Ġre cyclerView Answers . layout Manager Ġ= ĠGrid LayoutManager ( this , Ġ 2 ) ĊĊĠĠĠĠĠĠĠ Ġcreate Type Question () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Question () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmutable Set Words Ġ= Ġmutable Set Of < Word >() ĊĠĠĠĠĠĠĠ Ġwhile Ġ( mutable Set Words . size Ġ< Ġ 4 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmutable Set Words . add ( words . random ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġanswers Ġ= ĠArrayList < Word >( mutable Set Words ) ĊĠĠĠĠĠĠĠ ĠindexOf Correct Answer Ġ= Ġanswers . indexOf ( answers . random ()) ĊĠĠĠĠĠĠĠ Ġtext _ view _ question . text Ġ= Ġanswers [ indexOf Correct Answer ]. mean ĊĊĠĠĠĠĠĠĠ Ġre cyclerView Answers . adapter Ġ= ĠAnswer Adapter ( answers , Ġthis ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" SetText I 1 8 n ") ĊĠĠĠ Ġprivate Ġfun Ġcreate Type Question () Ġ{ ĊĠĠĠĠĠĠĠ Ġtext _ view _ question . text Ġ= Ġ" Specify Ġthe Ġtype Ġof Ġwords " ĊĠĠĠĠĠĠĠ Ġre cyclerView Answers . adapter Ġ= ĠType Adapter ( types , Ġthis ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġlistener ( id : ĠString , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( id Ġ== Ġ" type ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselected Type Ġ= Ġtypes [ position ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwords Ġ= Ġdatabase Helper . read Type Data ( selected Type ) Ġas ĠArrayList < Word > ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar . animate (). alpha ( 1 f ). duration Ġ= Ġ 1 0 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext _ view _ order . animate (). alpha ( 1 f ). duration Ġ= Ġ 1 0 0 0 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Question () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( id Ġ== Ġ" answer ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( position Ġ== ĠindexOf Correct Answer ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlevel Ġ+= Ġ 1 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( level Ġ>= Ġ 1 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Message (" Con grat ulations !", Ġ" You Ġmade Ġ 1 0 Ġout Ġof Ġ 1 0 !") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Question () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar . progress Ġ= Ġlevel Ġ* Ġ 1 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext _ view _ order . text Ġ= Ġlevel . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Message (" You Ġfailed !", Ġ" You Ġmade Ġ$ level Ġout Ġof Ġ 1 0 !") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Message ( title : ĠString , Ġmessage : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠAlertDialog . Builder ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTitle ( title ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setMessage ( message ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button (" Ok ") Ġ{ Ġ_, Ġ_ Ġ-> Ġfinish () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠ Ġ} Ċ }