/* Ċ Ġ* Ġ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 . widget . Frame Layout Ċ import Ġandroidx . core . content . res . use Ċ import Ġcom . al gor and . android . R Ċ import Ġcom . al gor and . android . databinding . Custom Asset Avatar View Binding Ċ import Ġcom . al gor and . android . utils . Asset Name Ċ import Ġcom . al gor and . android . utils . extensions . format As Avatar Text OrThrow Ċ import Ġcom . al gor and . android . utils . extensions . hide Ċ 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 . extensions . show Ċ import Ġcom . al gor and . android . utils . send Error Log Ċ import Ġcom . al gor and . android . utils . view binding . view Binding Ċ import Ġkotlin . properties . Deleg ates Ċ Ċ class ĠAl gor and Asset Avatar View Ġ@ Jvm Over loads Ġconstructor ( ĊĠĠĠ Ġcontext : ĠContext , ĊĠĠĠ Ġprivate Ġval Ġattrs : ĠAttributeSet ? Ġ= Ġnull , Ċ ) Ġ: ĠFrame Layout ( context , Ġattrs ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġbinding Ġ= Ġview Binding ( Custom Asset Avatar View Binding :: inflate ) ĊĊĠĠĠ Ġvar Ġasset Name : ĠString ? Ġby ĠDeleg ates . observable ( null ) Ġ{ Ġ_, Ġ_, ĠnewValue Ġ-> ĊĠĠĠĠĠĠĠ Ġif Ġ( newValue Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Other Asset Avatar ( newValue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġload Attrs () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Attrs () Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext . obtain Styled Attributes ( attrs , ĠR . style able . Al gor and Asset Avatar View ). use Ġ{ Ġattr Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġasset Name Ġ= Ġattr . getString ( R . style able . Al gor and Asset Avatar View _ asset Name ). or Empty () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Al gor and Avatar () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . asset Avatar ImageView . setImage Res And Visibility ( R . drawable . ic _ algo _ green _ round ) ĊĠĠĠĠĠĠĠ Ġhide ProgressBar () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Other Asset Avatar ( asset Name : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġavatar Text Ġ= Ġget Safe Asset Avatar Name ( asset Name ) ĊĠĠĠĠĠĠĠ Ġwith ( binding ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġasset Avatar ImageView . setImage Drawable ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġasset Name TextView . setText And Visibility ( avatar Text ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġhide ProgressBar () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Asset Avatar ( is Al gor and : ĠBoolean , Ġasset FullName : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Al gor and ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Al gor and Avatar () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Other Asset Avatar ( asset FullName ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow ProgressBar () Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( binding ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġasset Avatar ProgressBar . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġasset Name TextView . text Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġhide ProgressBar () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . asset Avatar ProgressBar . hide () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠTODO ĠMove Ġthis Ġlogic Ġinto Ġdomain Ġlevel ĊĠĠĠ Ġprivate Ġfun Ġget Safe Asset Avatar Name ( asset Name : ĠString ?): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġun named Asset Name Ġ= Ġresources . getString ( Asset Name . DEFAULT _ AS SET _ NAME _ RES _ ID ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsafe Name Ġ= Ġasset Name Ġ?: Ġun named Asset Name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsafe Name . format As Avatar Text OrThrow ( AS SET _ AV AT AR _ MAX _ LET TER _ COUNT ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( exception : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsend Error Log ("$ log Tag Ġ- ĠCrash Ġreason Ġasset Ġname Ġ= Ġ$ asset Name ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġun named Asset Name . format As Avatar Text OrThrow ( AS SET _ AV AT AR _ MAX _ LET TER _ COUNT ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlog Tag Ġ= ĠAl gor and Asset Avatar View :: class . java . simple Name ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠAS SET _ AV AT AR _ MAX _ LET TER _ COUNT Ġ= Ġ 3 ĊĠĠĠ Ġ} Ċ } Ċ