package Ġa lex andre . lad ri ere . the general culture quiz . questions review Ċ Ċ import Ġa lex andre . lad ri ere . the general culture quiz . R Ċ import Ġa lex andre . lad ri ere . the general culture quiz . questions . Question Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġjava . util . Collections . addAll Ċ Ċ /** Ċ Ġ* ĠCustom ĠAdapter Ġfor Ġthe Ġre cycler Ġview Ġof Ġthe ĠQuestion Review Activity Ċ Ġ*/ Ċ class ĠQuestion Review Adapter ( ĊĠĠĠ Ġprivate Ġval Ġquestions : ĠArrayList < Question >, ĊĠĠĠ Ġprivate Ġval Ġfav Question : Ġ( Int ) Ġ-> ĠUnit Ċ ) Ġ: ĊĠĠĠ ĠRecyclerView . Adapter < Question Review ViewHolder >() Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġitems Copy : ĠArrayList < Question > Ġ= ĠArrayList () ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġitems Copy . addAll ( questions ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠQuestion Review ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrow Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( R . layout . question _ review _ item , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠQuestion Review ViewHolder ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfav Question ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠQuestion Review ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( category , Ġtype , Ġdifficulty , Ġquestion , Ġcorrect Answer , Ġpro position 1 , Ġpro position 2 , Ġpro position 3 , Ġcorrect , Ġfavorite ) Ġ= Ġthis . questions [ position ] ĊĠĠĠĠĠĠĠ Ġholder . question . text Ġ= Ġquestion ĊĠĠĠĠĠĠĠ Ġholder . answer . text Ġ= Ġcorrect Answer ĊĠĠĠĠĠĠĠ Ġif Ġ( correct ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . item View . setBackground Resource ( R . drawable . custom _ rectangle _ correct _ cr 2 0 _ empty ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . item View . setBackground Resource ( R . drawable . custom _ rectangle _ error _ cr 2 0 _ empty ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . answer . text Ġ= Ġ" Correct Ġanswer : Ġ$ correct Answer " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( favorite ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . favorite . setImage Resource ( R . drawable . ic _ favorite _ 2 4 px ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . favorite . setImage Resource ( R . drawable . ic _ favorite _ border _ 2 4 px ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis . questions . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠUpdates Ġitems Ġlist Ġof Ġthe Ġre cycler Ġview Ġaccording Ġto Ġthe Ġspecified Ġstring ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Suppress Lint (" Default Locale ") ĊĠĠĠ Ġfun Ġfilter ( txt : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġtext Ġ= Ġtxt ĊĠĠĠĠĠĠĠ Ġquestions . clear () ĊĠĠĠĠĠĠĠ Ġif Ġ( text . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġquestions . addAll ( items Copy ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġtext . toLowerCase () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( item Ġin Ġitems Copy ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item . question . toLowerCase (). contains ( text ) Ġ|| Ġitem . correct Answer . toLowerCase (). contains ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquestions . add ( item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠUpdates Ġitems Ġlist Ġof Ġthe Ġre cycler Ġview Ġaccording Ġto Ġthe Ġspecified Ġboolean Ġcorresponding Ġthe Ġ" correct " Ġstatus Ġof Ġthe Ġquestion ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġfilter Correct ( para : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġquestions . clear () ĊĠĠĠĠĠĠĠ Ġfor Ġ( item Ġin Ġitems Copy ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item . correct Ġ== Ġpara ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquestions . add ( item ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠUpdates Ġitems Ġlist Ġof Ġthe Ġre cycler Ġview Ġaccording Ġto Ġthe Ġspecified Ġboolean Ġcorresponding Ġto Ġthe Ġ" favorite " Ġstatus Ġof Ġthe Ġquestion ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġfilter Fav ( para : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġquestions . clear () ĊĠĠĠĠĠĠĠ Ġfor Ġ( item Ġin Ġitems Copy ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item . favorite Ġ== Ġpara ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquestions . add ( item ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠUpdates Ġitems Ġlist Ġof Ġthe Ġre cycler Ġview Ġaccording Ġto Ġthe Ġspecified Ġstring Ġcorresponding Ġto Ġthe Ġquestion 's Ġcategory ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġfilter Category ( para : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġquestions . clear () ĊĠĠĠĠĠĠĠ Ġfor Ġ( item Ġin Ġitems Copy ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item . category Ġ== Ġpara ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquestions . add ( item ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} Ċ }