/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 - 2 0 2 2 ĠR yan ht ech ĠLabs Ċ Ġ* Ċ Ġ* Ġ ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġ Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* Ġ ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* Ġ ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġ Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* Ġ ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* Ġ ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġ Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . ry an ht ech . vocab ulario . tools . quiz Ċ Ċ import Ġandroid . content . Context Ċ import Ġcom . ry an ht ech . vocab ulario . tools . collection . Collection Word Ċ import Ġcom . ry an ht ech . vocab ulario . tools . collection . word pointers . Collection Word Content Manager Ċ Ċ class ĠQu iz Play ( words : ĠList < Collection Word >) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġm Words To Pass : ĠMutable List < Collection Word > Ġ= Ġwords . to Mutable List () ĊĊĠĠĠ Ġfun ĠgetRandom Word (): ĠCollection Word Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrandom Index Ġ= Ġ( 0 .. m Words To Pass . size ). random () ĊĊĠĠĠĠĠĠĠ Ġval Ġchosen Word Ġ= Ġm Words To Pass [ random Index ] ĊĠĠĠĠĠĠĠ Ġm Words To Pass . remove At ( random Index ) Ġ Ġ// ĠRemove Ġthe Ġword Ġbecause Ġwe Ġplayed Ġit ĊĊĠĠĠĠĠĠĠ Ġreturn Ġchosen Word ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġcook Instance ( context : ĠContext ): ĠQu iz Play Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠCook Ġan Ġinstance Ġof ĠQu iz Play . ĠWe Ġcook Ġit Ġbecause ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġwe Ġproceed Ġto Ġthe Ġinstantiation Ġby Ġourselves , Ġlike ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġa Ġchef Ġcook ing Ġhis Ġc ake . ĠHe Ġdoesn 't Ġget Ġit Ġfrom Ġnow here , ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġinstead , Ġhe Ġmakes Ġit Ġhimself Ġ( good Ġche fs Ġdo ). ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIng redient Ġ# 1 : Ġword Ġpointers ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠWe Ġget Ġthe Ġword Ġpointers Ġfrom Ġthe ĠCollection Word Content Manager . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpointers Ġ= ĠCollection Word Content Manager . list Pointers And Content ( context ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠThen , Ġwe Ġselect Ġthe Ġwords Ġto Ġput Ġin Ġthe Ġquiz . ĠFor Ġthat , Ġcall Ġour Ġfriend ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠQu iz Content Selector . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġpicked Words : ĠList < Collection Word >? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpicked Words Ġ= ĠCollection Word Content Manager . convert Word Pointer List To Word List ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠQu iz Content Selector . pick Adapt ed Words ( pointers )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIllegalStateException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠPass Ġfor Ġnow ... ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( pick ed Words Ġ== Ġnull ) Ġthrow ĠNullPointerException ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" pick ed Words Ġis Ġnull ; Ġcannot Ġgive Ġburn ed Ġc ake Ġto Ġwait er Ġ( an ĠIllegalStateException Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" has Ġbeen Ġthrown Ġfrom ĠQu iz Content Selector . pick Adapt ed Words ( pointers )) \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Technical Ġinfo : Ġcontext Ġ= Ġ$ context \ n pointers Ġ= Ġ$ pointers ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠQu iz Play ( pick ed Words ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }