package Ġeu . kan ade . t ach iy omi . ui . source . filter Ċ Ċ import Ġandroid . view . View Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġeu . dav idea . flex ible adapter . Flex ible Adapter Ċ import Ġeu . dav idea . flex ible adapter . items . Abstract Flex ible Item Ċ import Ġeu . dav idea . flex ible adapter . items . IF lex ible Ċ import Ġeu . dav idea . view holders . Flex ible ViewHolder Ċ import Ġeu . kan ade . t ach iy omi . source . model . Filter Ċ import Ġeu . kan ade . t ach iy omi . widget . Tri State CheckBox Ċ import Ġeu . kan ade . t ach iy omi . R Ġas ĠTR Ċ Ċ open Ġclass ĠTri State Item ( val Ġfilter : ĠFilter . Tri State ) Ġ: ĠAbstract Flex ible Item < Tri State Item . Holder >() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġget Layout Res (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠTR . layout . navigation _ view _ tri state box ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem ViewType (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ 1 0 3 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate ViewHolder ( view : ĠView , Ġadapter : ĠFlex ible Adapter < IF lex ible < RecyclerView . ViewHolder >> ): ĠH older Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠH older ( view , Ġadapter ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġbind ViewHolder ( adapter : ĠFlex ible Adapter < IF lex ible < RecyclerView . ViewHolder >>, Ġholder : ĠH older , Ġposition : ĠInt , Ġpayload s : ĠMutable List < Any ?> ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġholder . text ĊĠĠĠĠĠĠĠ Ġview . text Ġ= Ġfilter . name ĊĠĠĠĠĠĠĠ Ġview . state Ġ= Ġwhen Ġ( filter . state ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFilter . Tri State . STATE _ IGNORE Ġ-> ĠTri State CheckBox . State . UN CHECK ED ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFilter . Tri State . STATE _ INCLUDE Ġ-> ĠTri State CheckBox . State . CHECK ED ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFilter . Tri State . STATE _ EXCL UDE Ġ-> ĠTri State CheckBox . State . IGNORE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠException (" Unknown Ġstate ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġview . setOn Checked ChangeListener Ġ{ Ġ_, Ġstate Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfilter . state Ġ= Ġwhen Ġ( state ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTri State CheckBox . State . UN CHECK ED Ġ-> ĠFilter . Tri State . STATE _ IGNORE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTri State CheckBox . State . CHECK ED Ġ-> ĠFilter . Tri State . STATE _ INCLUDE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTri State CheckBox . State . IGNORE Ġ-> ĠFilter . Tri State . STATE _ EXCL UDE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( java Class Ġ!= Ġother ?. java Class ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġreturn Ġfilter Ġ== Ġ( other Ġas ĠTri State Item ). filter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfilter . hashCode () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠH older ( view : ĠView , Ġadapter : ĠFlex ible Adapter < IF lex ible < RecyclerView . ViewHolder >>) Ġ: ĠFlex ible ViewHolder ( view , Ġadapter ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġtext : ĠTri State CheckBox Ġ= ĠitemView . findViewById ( TR . id . nav _ view _ item ) ĊĠĠĠ Ġ} Ċ } Ċ