package Ġcom . goo fy . goo ber . android view . view Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . util . Typed Value Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroidx . core . view . isVisible Ċ import Ġandroidx . core . view . update LayoutParams Ċ import Ġcom . goo fy . goo ber . R Ċ import Ġcom . goo fy . goo ber . model . Questions State Ċ Ċ class ĠCho oser View ( ĊĠĠĠ Ġcontext : ĠContext , ĊĠĠĠ Ġattribute Set : ĠAttributeSet ? Ġ= Ġnull Ċ ) Ġ: ĠLinearLayout ( context , Ġattribute Set ) Ġ{ ĊĊĠĠĠ Ġfun ĠsetState ( state : ĠState ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġremove All Views In Layout () ĊĠĠĠĠĠĠĠ Ġis Visible Ġ= Ġstate ?. questions State Ġ!= Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġquestions State Ġ= Ġstate ?. questions State Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġquestions State . question . options . values . forEach Ġ{ Ġoption Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠButton ( context ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġoption ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis All Caps Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Text Size ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTyped Value . COMPLEX _ UNIT _ PX , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . get Dimension ( R . dim en . next _ button _ text _ size ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset OnClickListener Ġ{ Ġstate . click Listener ( questions State , Ġoption ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd View ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate LayoutParams < Margin LayoutParams > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Margin Ġ= Ġresources . get Dimension ( R . dim en . next _ button _ margin ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġdata Ġclass ĠState ( ĊĠĠĠĠĠĠĠ Ġval Ġquestions State : ĠQuestions State ?, ĊĠĠĠĠĠĠĠ Ġval Ġclick Listener : Ġ( questions State : ĠQuestions State , Ġchoice : ĠString ) Ġ-> ĠUnit ĊĠĠĠ Ġ) Ċ } Ċ