package Ġcom . sp ende sk . gr apes . selectors Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . widget . Check able Ċ import Ġandroidx . card view . widget . Card View Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġcom . sp ende sk . gr apes . R Ċ import Ġcom . sp ende sk . gr apes . extensions . add R ipple Effect Ċ Ċ /** Ċ Ġ* Ġ@ author Ġd any b ou can ova Ċ Ġ* Ġ@ since Ġ 0 3 / 0 6 / 2 0 2 1 Ċ Ġ*/ Ċ open Ġclass ĠSelect Block Card View Ġ: ĠCard View , ĠCheck able Ġ{ ĊĊĠĠĠ Ġ// region Ġconstructors ĊĊĠĠĠ Ġconstructor ( context : ĠContext ) Ġ: Ġsuper ( context ) ĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattribute Set : ĠAttributeSet ?) Ġ: Ġsuper ( context , Ġattribute Set ) ĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattribute Set : ĠAttributeSet ?, Ġdef Style Attr : ĠInt ) Ġ: Ġsuper ( context , Ġattribute Set , Ġdef Style Attr ) ĊĊĠĠĠ Ġ// endregion Ġconstructors ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġbackground Ġ= ĠContext Compat . get Drawable ( context , ĠR . drawable . selector _ select _ block ) ĊĊĠĠĠĠĠĠĠ Ġadd R ipple Effect () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġis Checked : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġoverride Ġfun Ġperform Click (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġtoggle () ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . perform Click () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis Checked (): ĠBoolean Ġ= Ġis Checked ĊĊĠĠĠ Ġoverride Ġfun Ġset Checked ( checked : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . isChecked Ġ= Ġchecked ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġtoggle () Ġ{ ĊĠĠĠĠĠĠĠ Ġset Checked (! this . isChecked ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Drawable State ( extra Space : ĠInt ): ĠInt Array Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchecked State Set Ġ= Ġint ArrayOf ( android . R . attr . state _ checked ) ĊĠĠĠĠĠĠĠ Ġval Ġdrawable State : ĠInt Array Ġ= Ġsuper . onCreate Drawable State ( extra Space Ġ+ Ġ 1 ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( isChecked ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmerge Drawable States ( drawable State , Ġchecked State Set ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġdrawable State ĊĠĠĠ Ġ} Ċ }