package Ġorg . w ats i . u hp . views Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . support . constraint . Constraint Layout Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . Motion Event Ċ import Ġkotlinx . android . synt hetic . main . view _ gender _ field . view . gender _ button _ female Ċ import Ġkotlinx . android . synt hetic . main . view _ gender _ field . view . gender _ button _ male Ċ import Ġkotlinx . android . synt hetic . main . view _ gender _ field . view . gender _ error _ message Ċ import Ġorg . w ats i . domain . entities . Member Ċ import Ġorg . w ats i . u hp . R Ċ Ċ class ĠGender Field Ġ@ Jvm Over loads Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠContext , Ġattrs : ĠAttributeSet ? Ġ= Ġnull , Ġdef Style Attr : ĠInt Ġ= Ġ 0 Ċ ) Ġ: ĠConstraint Layout ( context , Ġattrs , Ġdef Style Attr ) Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġon Gender Change : Ġ( gender : ĠMember . Gender ) Ġ-> ĠUnit ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ ĠLayoutInflater . from ( context ). inflate ( R . layout . view _ gender _ field , Ġthis , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġgender _ button _ female . setOn Touch Listener Ġ{ Ġ_, Ġmotion Event Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( motion Event . action Ġ== ĠMotion Event . ACTION _ UP ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . request Focus () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Gender Change ( Member . Gender . F ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Gender ( Member . Gender . F ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġgender _ button _ male . setOn Touch Listener Ġ{ Ġ_, Ġmotion Event Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( motion Event . action Ġ== ĠMotion Event . ACTION _ UP ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . request Focus () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Gender Change ( Member . Gender . M ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Gender ( Member . Gender . M ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Gender ( gender : ĠMember . Gender ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( gender ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMember . Gender . F Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgender _ button _ female . setSelected () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgender _ button _ male . set Un selected ( R . drawable . ic _ member _ placeholder _ male ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMember . Gender . M Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgender _ button _ male . setSelected () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgender _ button _ female . set Un selected ( R . drawable . ic _ member _ placeholder _ female ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset On Gender Change ( on Gender Change : Ġ( gender : ĠMember . Gender ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . on Gender Change Ġ= Ġon Gender Change ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠsetError ( errorMessage : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġgender _ error _ message . error Ġ= ĠerrorMessage ĊĠĠĠ Ġ} Ċ } Ċ