package Ġcom . battle l ancer . series guide . widgets Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . vect ord raw able . graphics . drawable . Vector Drawable Compat Ċ import Ġbutter knife . BindView Ċ import Ġbutter knife . B utter Kn ife Ċ import Ġcom . battle l ancer . series guide . R Ċ import Ġcom . battle l ancer . series guide . util . View Tools Ċ Ċ /** Ċ Ġ* ĠThree Ġstate Ġcheck Ġbox Ġfor Ġfilter Ġbeing Ġdisabled , Ġincluded Ġor Ġexcluded . Ċ Ġ*/ Ċ class ĠFilter Box Ġ@ Jvm Over loads Ġconstructor ( ĊĠĠĠ Ġcontext : ĠContext , Ġattrs : ĠAttributeSet ? Ġ= Ġnull , Ġdef Style Attr : ĠInt Ġ= Ġ 0 Ċ ) Ġ: ĠLinearLayout ( context , Ġattrs , Ġdef Style Attr ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġfilter Description : ĠString ĊĊĠĠĠ Ġ@ BindView ( R . id . textView Filter Box ) ĊĠĠĠ Ġlateinit Ġvar ĠtextView : ĠTextView ĊĠĠĠ Ġ@ BindView ( R . id . imageView Filter Box ) ĊĠĠĠ Ġlateinit Ġvar ĠimageView : ĠImageView ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġorientation Ġ= ĠH ORIZONTAL ĊĠĠĠĠĠĠĠ ĠLayoutInflater . from ( context ). inflate ( R . layout . view _ filter _ box , Ġthis ) ĊĊĠĠĠĠĠĠĠ Ġval Ġa Ġ= Ġcontext . theme ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. obtain Styled Attributes ( attrs , ĠR . style able . Filter Box , Ġ 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfilter Description Ġ= Ġa . getString ( R . style able . Filter Box _ filter Box Description ) Ġ?: Ġ"" ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġa . recycle () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠB utter Kn ife . bind ( this ) ĊĠĠĠĠĠĠĠ ĠtextView . text Ġ= Ġfilter Description ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠPass Ġ` null ` Ġto Ġdisable Ġfilter , Ġ` true ` Ġto Ġinclude Ġand Ġ` false ` Ġto Ġexclude . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġstate : ĠBoolean ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Image () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Image () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvector Drawable Ġ= Ġwhen Ġ( state ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull Ġ-> ĠView Tools . vector Icon Active ( context , Ġcontext . theme , ĠR . drawable . ic _ box _ blank _ white _ 2 4 dp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue Ġ-> ĠVector Drawable Compat . create ( context . resources , ĠR . drawable . ic _ box _ plus _ green _ 2 4 dp , Ġcontext . theme ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse Ġ-> ĠVector Drawable Compat . create ( context . resources , ĠR . drawable . ic _ box _ minus _ red _ 2 4 dp , Ġcontext . theme ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠimageView . setImage Drawable ( vector Drawable ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġperform Click (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġmove To Next State () ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . perform Click () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġmove To Next State () Ġ{ ĊĠĠĠĠĠĠĠ Ġstate Ġ= Ġwhen Ġ( state ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull Ġ-> Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue Ġ-> Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse Ġ-> Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }