package Ġcz . q ase . android . form builder library . element Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . res . Color State List Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . CheckBox Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . core . graphics . Color Utils Ċ import Ġandroidx . core . widget . Compound Button Compat Ċ import Ġcz . q ase . android . form builder library . Form Style Bundle Ċ import Ġcz . q ase . android . form builder library . R Ċ import Ġcz . q ase . android . form builder library . common . set BackgroundColor ResourceId Ċ import Ġcz . q ase . android . form builder library . common . setTextColor ResourceId Ċ import Ġcz . q ase . android . form builder library . element . generic . Checkbox Callback Ċ import Ġcz . q ase . android . form builder library . element . generic . Form Element Valid Ċ Ċ class ĠLabel Checkbox Element ( ĊĠĠĠ Ġprivate Ġval Ġlabel : ĠString , ĊĠĠĠ Ġprivate Ġval Ġchecked : ĠBoolean , ĊĠĠĠ Ġprivate Ġval Ġcheckbox Callback : ĠCheckbox Callback ? Ġ= Ġnull , ĊĠĠĠ Ġprivate Ġval Ġgroup Component : ĠInt Ġ= ĠR . layout . form _ group _ item _ inline , ĊĠĠĠ Ġprivate Ġval Ġlabel Component : ĠInt Ġ= ĠR . layout . form _ inline _ label , ĊĠĠĠ Ġprivate Ġval Ġcheckbox Component : ĠInt Ġ= ĠR . layout . form _ checkbox _ item , ĊĠĠĠ Ġprivate Ġval Ġgroup Component End : ĠInt Ġ= ĠR . layout . form _ group _ item _ inline _ end , ĊĠĠĠ Ġprivate Ġval Ġform Style Bundle : ĠForm Style Bundle ? Ġ= Ġnull Ċ ) Ġ: ĠForm Element Valid < Boolean >() Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġcheckbox : ĠCheckBox ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġview Group : ĠViewGroup ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġheader View : ĠTextView ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġhide () Ġ{ ĊĠĠĠĠĠĠĠ Ġview Group ?. visibility Ġ= ĠView . GONE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow () Ġ{ ĊĠĠĠĠĠĠĠ Ġview Group ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Val (): ĠBoolean ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcheckbox ?. isChecked ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġcreate View ( context : ĠContext , Ġform Style Bundle : ĠForm Style Bundle ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinflater Ġ= Ġcontext . getSystem Service ( Context . LAYOUT _ IN FL ATER _ SERVICE ) Ġas ĠLayoutInflater ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġinflater . inflate ( group Component , Ġnull ) Ġas ĠViewGroup ĊĠĠĠĠĠĠĠ Ġval Ġgroup End Ġ= Ġinflater . inflate ( group Component End , Ġview , Ġfalse ) Ġas ĠViewGroup ĊĠĠĠĠĠĠĠ Ġval Ġlabel View Ġ= Ġprepare Label ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinflater , Ġcontext , Ġthis . form Style Bundle ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġform Style Bundle , Ġview ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġcheckbox View Ġ= Ġprepare Checkbox ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinflater , Ġcontext , Ġthis . form Style Bundle ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġform Style Bundle , Ġgroup End ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġview . set BackgroundColor ResourceId ( context , Ġform Style Bundle . secondary BackgroundColor ) ĊĠĠĠĠĠĠĠ Ġview . addView ( label View ) ĊĠĠĠĠĠĠĠ Ġgroup End . addView ( checkbox View ) ĊĠĠĠĠĠĠĠ Ġview . addView ( group End ) ĊĠĠĠĠĠĠĠ Ġview Group Ġ= Ġview ĊĠĠĠĠĠĠĠ Ġreturn Ġview ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġprepare Label ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontext : ĠContext , ĊĠĠĠĠĠĠĠ Ġform Style Bundle : ĠForm Style Bundle , ĊĠĠĠĠĠĠĠ Ġroot : ĠViewGroup ĊĠĠĠ Ġ): ĠTextView Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġheader View Ġ= Ġinflater . inflate ( label Component , Ġroot , Ġfalse ) Ġas ĠTextView ĊĠĠĠĠĠĠĠ Ġheader View . setTextColor ResourceId ( context , Ġform Style Bundle . primary TextColor ) ĊĠĠĠĠĠĠĠ Ġheader View . text Ġ= Ġlabel ĊĠĠĠĠĠĠĠ Ġthis . header View Ġ= Ġheader View ĊĠĠĠĠĠĠĠ Ġreturn Ġheader View ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġprepare Checkbox ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontext : ĠContext , ĊĠĠĠĠĠĠĠ Ġform Style Bundle : ĠForm Style Bundle , ĊĠĠĠĠĠĠĠ Ġroot : ĠViewGroup ĊĠĠĠ Ġ): ĠCheckBox Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġcheckbox Ġ= Ġinflater . inflate ( checkbox Component , Ġroot , Ġfalse ) Ġas ĠCheckBox ĊĠĠĠĠĠĠĠ Ġval Ġcolor Ġ= ĠContext Compat . getColor ( context , Ġform Style Bundle . primary BackgroundColor ) ĊĠĠĠĠĠĠĠ ĠCompound Button Compat . set Button Tint List ( checkbox , ĠColor State List . valueOf ( color )) ĊĠĠĠĠĠĠĠ Ġcheckbox . set BackgroundColor ResourceId ( context , Ġform Style Bundle . secondary BackgroundColor ) ĊĠĠĠĠĠĠĠ Ġcheckbox . isChecked Ġ= Ġchecked ĊĠĠĠĠĠĠĠ Ġcheckbox . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheckbox Callback ?. callback ( checkbox . isChecked ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġcolor State List Ġ= ĠColor State List ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġint ArrayOf (- android . R . attr . state _ checked , Ġandroid . R . attr . state _ enabled ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġint ArrayOf ( android . R . attr . state _ checked , Ġandroid . R . attr . state _ enabled ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġint ArrayOf (- android . R . attr . state _ checked , Ġ- android . R . attr . state _ enabled ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġint ArrayOf ( android . R . attr . state _ checked , Ġ- android . R . attr . state _ enabled ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), Ġint ArrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( context , Ġform Style Bundle . color Disabled Accent ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( context , Ġform Style Bundle . color Accent ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠColor Utils . blend ARGB ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġform Style Bundle . color Disabled Accent ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠColor . BLACK , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 . 4 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠColor Utils . blend ARGB ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġform Style Bundle . color Accent ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠColor . BLACK , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 . 4 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġcheckbox . button Tint List Ġ= Ġcolor State List Ġ// set Ġthe Ġcolor Ġt int Ġlist ĊĊĠĠĠĠĠĠĠ Ġthis . checkbox Ġ= Ġcheckbox ĊĠĠĠĠĠĠĠ Ġreturn Ġcheckbox ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġenable Element ( context : ĠContext , Ġform Style Bundle : ĠForm Style Bundle ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcorrect Style Bundle Ġ= Ġthis . form Style Bundle Ġ?: Ġform Style Bundle ĊĠĠĠĠĠĠĠ Ġcheckbox ?. isEnabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġcheckbox ?. set BackgroundColor ResourceId ( context , Ġcorrect Style Bundle . secondary BackgroundColor ) ĊĠĠĠĠĠĠĠ Ġheader View ?. setTextColor ResourceId ( context , Ġcorrect Style Bundle . primary TextColor ) ĊĠĠĠĠĠĠĠ Ġview Group ?. set BackgroundColor ResourceId ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcorrect Style Bundle . secondary BackgroundColor ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdisable Element ( context : ĠContext , Ġform Style Bundle : ĠForm Style Bundle ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcorrect Style Bundle Ġ= Ġthis . form Style Bundle Ġ?: Ġform Style Bundle ĊĠĠĠĠĠĠĠ Ġcheckbox ?. isEnabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġcheckbox ?. set BackgroundColor ResourceId ( context , Ġcorrect Style Bundle . disabled BackgroundColor ) ĊĠĠĠĠĠĠĠ Ġheader View ?. setTextColor ResourceId ( context , Ġcorrect Style Bundle . disabled Primary TextColor ) ĊĠĠĠĠĠĠĠ Ġview Group ?. set BackgroundColor ResourceId ( context , Ġcorrect Style Bundle . disabled BackgroundColor ) ĊĠĠĠ Ġ} Ċ }