/* Ċ Ġ* ĠCopyright Ġ 2 0 2 2 ĠP era ĠWallet , ĠL DA Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġ Ġlimitations Ġunder Ġthe ĠLicense Ċ Ġ* Ċ Ġ*/ Ċ Ċ package Ġcom . al gor and . android . custom views Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . Gravity Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroidx . core . content . res . use Ċ import Ġcom . al gor and . android . R Ċ import Ġcom . al gor and . android . databinding . Custom Screen State View Binding Ċ import Ġcom . al gor and . android . models . Screen State Ċ import Ġcom . al gor and . android . utils . extensions . setImage Res And Visibility Ċ import Ġcom . al gor and . android . utils . extensions . setText And Visibility Ċ import Ġcom . al gor and . android . utils . view binding . view Binding Ċ Ċ class ĠScreen State View Ġ@ Jvm Over loads Ġconstructor ( ĊĠĠĠ Ġcontext : ĠContext , ĊĠĠĠ Ġprivate Ġval Ġattrs : ĠAttributeSet ? Ġ= Ġnull Ċ ) Ġ: ĠLinearLayout ( context , Ġattrs ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġbinding Ġ= Ġview Binding ( Custom Screen State View Binding :: inflate ) ĊĊĠĠĠ Ġprivate Ġval Ġscreen State Ġ= ĠScreen State . Custom State () ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġload Attrs () ĊĠĠĠĠĠĠĠ Ġgravity Ġ= ĠGr avity . CENTER _ HORIZONTAL ĊĠĠĠĠĠĠĠ Ġorientation Ġ= ĠV ERT ICAL ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Attrs () Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext ?. obtain Styled Attributes ( attrs , ĠR . style able . Screen State View )?. use Ġ{ Ġattrs Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscreen State . icon Ġ= Ġattrs . getResource Id ( R . style able . Screen State View _ icon Res , Ġ- 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscreen State . title Ġ= Ġattrs . getResource Id ( R . style able . Screen State View _ title Res , Ġ- 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscreen State . description Ġ= Ġattrs . getResource Id ( R . style able . Screen State View _ description Res , Ġ- 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscreen State . button Text Ġ= Ġattrs . getResource Id ( R . style able . Screen State View _ button Text Res , Ġ- 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsetup Ui ( screen State ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset On Neutral Button ClickListener ( onClick : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . neutral Button . setOnClickListener Ġ{ ĠonClick () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclear Neutral Button ClickListener () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . neutral Button . setOnClickListener ( null ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsetup Ui ( screen State : ĠScreen State ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( binding ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( screen State ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinfo Icon ImageView . setImage Res And Visibility ( icon ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle TextView . setText And Visibility ( title ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription TextView . setText And Visibility ( description ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġneutral Button . setText And Visibility ( button Text ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ