package Ġcom . battle l ancer . series guide . ui . widgets Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroidx . vect ord raw able . graphics . drawable . Vector Drawable Compat Ċ import Ġcom . battle l ancer . series guide . R Ċ import Ġcom . battle l ancer . series guide . databinding . View Filter Box Binding Ċ import Ġcom . battle l ancer . series guide . util . Text Tools Ċ import Ġcom . uw et rott mann . android utils . Android Utils Ċ Ċ /** Ċ Ġ* Ġ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 ĊĊĠĠĠ Ġprivate Ġval Ġbinding Ġ= ĠView Filter Box Binding . inflate ( LayoutInflater . from ( context ), Ġthis ) ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġorientation Ġ= ĠH ORIZONTAL ĊĊĠĠĠĠĠĠĠ Ġ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 () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Finish Inf late () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Finish Inf late () ĊĊĠĠĠĠĠĠĠ Ġupdate State () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠPass Ġ` null ` Ġto Ġdisable Ġfilter , Ġ` true ` Ġto Ġinclude Ġand Ġ` false ` Ġto Ġexclude . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġstate : ĠBoolean ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate State () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate State () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvector Drawable Ġ= Ġwhen Ġ( state ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull Ġ-> ĠVector Drawable Compat . create ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . resources , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . ic _ box _ blank _ white _ 2 4 dp , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . theme ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ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 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġstate Description Ġ= Ġwhen Ġ( state ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull Ġ-> Ġcontext . getString ( R . string . state _ shows _ filter _ disabled ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue Ġ-> Ġcontext . getString ( R . string . state _ shows _ filter _ included ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse Ġ-> Ġcontext . getString ( R . string . state _ shows _ filter _ excluded ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . imageView Filter Box . setImage Drawable ( vector Drawable ) ĊĠĠĠĠĠĠĠ Ġif Ġ( Android Utils . is At Least R ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . textView Filter Box . state Description Ġ= Ġstate Description ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAndroid Ġ 1 1 + Ġ( above ) Ġread Ġstate , Ġthen Ġdescription . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . textView Filter Box . content Description Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( binding . textView Filter Box . layout Direction Ġ== ĠView . LAYOUT _ DIRECTION _ RTL ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ filter Description Ġ, $ state Description " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ state Description , Ġ$ filter Description " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . textView Filter Box . text Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText Tools . build Title And Summary ( context , Ġfilter Description , Ġstate Description ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ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 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }