/* Ċ Ġ* ĠCopyright ĠÂ© ĠM obi Lab ĠSolutions ĠGmbH Ċ Ġ*/ Ċ Ċ package Ġcom . mob il ab solutions . stash . core . internal . u ic omp onent s Ċ Ċ import Ġandroid . view . Gravity Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Frame Layout Ċ import Ġandroidx . coordinator layout . widget . Coordinator Layout Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġcom . google . android . material . sn ackbar . Snackbar Ċ import Ġcom . mob il ab solutions . stash . core . R Ċ import Ġcom . mob il ab solutions . stash . core . St ash Ui Configuration Ċ import Ġcom . mob il ab solutions . stash . core . exceptions . base . Base Payment Exception Ċ import Ġcom . mob il ab solutions . stash . core . px Ċ import Ġkotlinx . android . synt hetic . main . sn ackbar _ layout . view .* Ċ Ċ object ĠSn ackBar Extensions Ġ{ ĊĊĠĠĠ Ġoperator Ġfun Ġinvoke ( body : ĠSn ackBar Extensions . () Ġ-> ĠUnit ): ĠUnit Ġ= Ġbody . invoke ( this ) ĊĊĠĠĠ Ġprivate Ġval ĠTOP _ M ARGIN Ġ= Ġ 0 . px ĊĠĠĠ Ġprivate Ġval ĠWIDTH Ġ= Ġ 6 4 . px ĊĊĠĠĠ Ġfun ĠThrowable . getError Sn ackBar ( view : ĠView , Ġst ash UI Configuration : ĠSt ash Ui Configuration ? Ġ= Ġnull ): ĠSn ackbar Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsn ackBar Ġ= ĠSn ackbar . make ( view , Ġ"", ĠSn ackbar . LENGTH _ IN DEFIN ITE ) ĊĠĠĠĠĠĠĠ Ġval Ġsn ackBar View Ġ= Ġsn ackBar . view Ġas ĠSn ackbar . Snackbar Layout ĊĠĠĠĠĠĠĠ Ġsn ackBar View . set Padding ( 0 , Ġ 0 , Ġ 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġsn ack View Ġ= ĠLayoutInflater . from ( view . context ). inflate ( R . layout . sn ackbar _ layout , Ġsn ackBar View , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġval ĠbackgroundColor : ĠInt Ġ= Ġst ash UI Configuration ?. sn ackBar Background Ġ?: ĠR . color . c arn ation ĊĠĠĠĠĠĠĠ Ġsn ack View . set BackgroundColor ( Context Compat . getColor ( view . context , ĠbackgroundColor )) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġis ĠBase Payment Exception Ġ&& Ġthis . error Title Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsn ack View . sn ackbar _ title . text Ġ= Ġthis . error Title ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTODO : ĠB ij u : ĠFind Ġa Ġbetter Ġway ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsn ack View . sn ackbar _ title . text Ġ= Ġthis . java Class . simple Name . replace (" Exception ", Ġ" ĠError ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsn ack View . sn ackbar _ text . text Ġ= Ġthis . message ĊĠĠĠĠĠĠĠ Ġsn ack View . close . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsn ackBar . view . visibility Ġ= ĠView . GONE Ġ// ĠWe Ġdo Ġthis Ġto Ġprevent Ġdismiss al Ġanimation ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsn ackBar . dismiss () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġparams Ġ= Ġsn ackBar . view . layout Params ĊĠĠĠĠĠĠĠ Ġif Ġ( params Ġis ĠCoord inator Layout . LayoutParams ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( params ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgravity Ġ= ĠGr avity . TOP ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheight Ġ= ĠWIDTH ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Ġ= ĠCoord inator Layout . LayoutParams . MATCH _ PARENT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Margins ( 0 , ĠTOP _ M ARGIN , Ġ 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( params Ġas ĠFrame Layout . LayoutParams ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgravity Ġ= ĠGr avity . TOP ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheight Ġ= ĠWIDTH ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Ġ= ĠFrame Layout . LayoutParams . MATCH _ PARENT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Margins ( 0 , ĠTOP _ M ARGIN , Ġ 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsn ackBar . view . layout Params Ġ= Ġparams ĊĠĠĠĠĠĠĠ Ġsn ackBar . view . elevation Ġ= Ġ 0 f ĊĊĠĠĠĠĠĠĠ Ġsn ackBar View . addView ( sn ack View , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġ// ĠWe Ġdon 't Ġwant Ġto Ġshow Ġsn ackBar Ġshowing Ġanimation , Ġbecause Ġit Ġlooks Ġbroken , Ġsince Ġour ĊĠĠĠĠĠĠĠ Ġ// Ġsn ackbar Ġis Ġon Ġtop ĊĠĠĠĠĠĠĠ Ġsn ackBar . view . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġsn ackBar . add Callback ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠSn ackbar . Callback () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Shown ( sn ackbar : ĠSn ackbar ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Shown ( sn ackbar ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsn ackbar !!. view . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġsn ackBar ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠSn ackbar . dismiss Without Anim ating () Ġ{ ĊĠĠĠĠĠĠĠ Ġview . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġdismiss () ĊĠĠĠ Ġ} Ċ }