package Ġcom . jud op ay . jud okit . android Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . graphics . drawable . Color Drawable Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . view . Window Ċ import Ġandroid . view . WindowManager Ċ import Ġandroid . view . input method . Input Method Manager Ċ import Ġandroidx . core . view . children Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . Fragment Activity Ċ import Ġcom . google . gson . Gson Ċ import Ġcom . jud op ay . jud okit . android . api . model . request . Address Ċ import Ġcom . jud op ay . jud okit . android . api . model . request . Bank Sale Request Ċ import Ġcom . jud op ay . jud okit . android . api . model . request . Check Card Request Ċ import Ġcom . jud op ay . jud okit . android . api . model . request . Google Pay Request Ċ import Ġcom . jud op ay . jud okit . android . api . model . request . Google Pay Wallet Ċ import Ġcom . jud op ay . jud okit . android . api . model . request . Ide al Sale Request Ċ import Ġcom . jud op ay . jud okit . android . api . model . request . Payment Request Ċ import Ġcom . jud op ay . jud okit . android . api . model . request . Register Card Request Ċ import Ġcom . jud op ay . jud okit . android . api . model . request . Save Card Request Ċ import Ġcom . jud op ay . jud okit . android . api . model . request . Token Request Ċ import Ġcom . jud op ay . jud okit . android . model . Api Environment Ċ import Ġcom . jud op ay . jud okit . android . model . google pay . Google Pay Address Ċ import Ġcom . jud op ay . jud okit . android . ui . common . ANIM ATION _ DURATION _ 5 0 0 Ċ import Ġcom . jud op ay . jud okit . android . ui . error . J udo Not Provided Error Ċ Ċ internal Ġval ĠJ udo . api BaseUrl : ĠString ĊĠĠĠ Ġget () Ġ= Ġif Ġ( is Sandbox ed ) ĠApi Environment . SAN DB OX . host Ġelse ĠApi Environment . LI VE . host Ċ Ċ internal Ġfun Ġrequire NotNull OrEmpty ( value : ĠString ?, ĠpropertyName : ĠString , Ġmessage : ĠString ? Ġ= Ġnull ): ĠString Ġ{ ĊĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠ Ġvalue Ġ== Ġnull Ġ-> Ġthrow ĠIllegalArgumentException ( message Ġ?: Ġ"$ propertyName Ġcannot Ġbe Ġnull ") ĊĠĠĠĠĠĠĠ Ġvalue . isEmpty () Ġ-> Ġthrow ĠIllegalArgumentException ( message Ġ?: Ġ"$ propertyName Ġcannot Ġbe Ġempty ") ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġreturn Ġvalue ĊĠĠĠ Ġ} Ċ } Ċ Ċ internal Ġfun Ġ< T Ġ: ĠAny > Ġrequire NotNull ( value : ĠT ?, ĠpropertyName : ĠString , Ġmessage : ĠString ? Ġ= Ġnull ): ĠT Ġ{ ĊĠĠĠ Ġif Ġ( value Ġ== Ġnull ) ĊĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException ( message Ġ?: Ġ"$ propertyName Ġcannot Ġbe Ġnull ") ĊĠĠĠ Ġelse Ġreturn Ġvalue Ċ } Ċ Ċ internal Ġfun Ġvalidate Timeout ( ĊĠĠĠ Ġtimeout : ĠLong ?, ĊĠĠĠ ĠpropertyName : ĠString , ĊĠĠĠ Ġmin Timeout : ĠLong , ĊĠĠĠ Ġmax Timeout : ĠLong Ċ ): ĠLong Ġ{ ĊĠĠĠ Ġreturn Ġtimeout ?. let Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( it Ġ! in Ġmin Timeout .. max Timeout ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException ("$ propertyName Ġshould Ġbe Ġgreater Ġthan Ġ$ min Timeout Ġseconds Ġand Ġless Ġthan Ġ$ max Timeout Ġseconds ") ĊĠĠĠĠĠĠĠ Ġelse Ġit ĊĠĠĠ Ġ} Ġ?: Ġmin Timeout Ċ } Ċ Ċ @ Suppress (" UN CHECK ED _ CAST ") Ċ fun Ġ< T Ġ: ĠView > ĠView . parent OfType ( parent Type : ĠClass < T >): ĠT ? Ġ{ ĊĠĠĠ Ġvar Ġparent Ġ= Ġparent ĊĠĠĠ Ġwhile Ġ( parent Ġis ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( parent :: class . java Ġ== Ġparent Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġparent Ġas ĠT ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġparent Ġ= Ġparent . getParent () ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġnull Ċ } Ċ Ċ @ Suppress (" UN CHECK ED _ CAST ") Ċ fun Ġ< T Ġ: ĠView > ĠViewGroup . sub View sWith Type ( sub view Type : ĠClass < T >): ĠList < T > Ġ{ ĊĠĠĠ Ġval Ġviews Ġ= Ġmutable ListOf < T >() ĊĠĠĠ Ġchildren . forEach Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( it :: class . java Ġ== Ġsub view Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġviews . add ( it Ġas ĠT ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( it Ġis ĠViewGroup ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġviews . addAll ( it . sub View sWith Type ( sub view Type )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġviews Ċ } Ċ Ċ fun ĠViewGroup . inflate ( resource : ĠInt , Ġattach To Root : ĠBoolean Ġ= Ġfalse ): ĠView Ġ{ ĊĠĠĠ Ġreturn ĠLayoutInflater . from ( context ). inflate ( resource , Ġthis , Ġattach To Root ) Ċ } Ċ Ċ val ĠFragment Activity . j udo : ĠJ udo ĊĠĠĠ Ġget () Ġ= Ġintent . get Parcelable Extra ( JU DO _ OPTIONS ) ĊĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠJ udo Not Provided Error () Ċ Ċ val ĠFragment . j udo : ĠJ udo ĊĠĠĠ Ġget () Ġ= Ġrequire Activity (). j udo Ċ Ċ val ĠString . with Wh ites p aces Removed : ĠString ĊĠĠĠ Ġget () Ġ= Ġreplace ("\\ s ". to Regex (), Ġ"") Ċ Ċ fun ĠBundle . toMap (): ĠMap < String , ĠString > Ġ= Ġkey Set (). map NotNull Ġ{ ĊĠĠĠ Ġval Ġvalue Ġ= ĠgetString ( it ) ĊĠĠĠ Ġif Ġ( value Ġ!= Ġnull ) ĠPair ( it , Ġvalue ) Ġelse Ġnull Ċ }. toMap () Ċ Ċ fun ĠView . animate With Alpha ( alpha : ĠFloat , Ġduration : ĠLong Ġ= ĠAN IM ATION _ DURATION _ 5 0 0 ) Ġ{ ĊĠĠĠ Ġanimate () ĊĠĠĠĠĠĠĠ Ġ. alpha ( alpha ) ĊĠĠĠĠĠĠĠ Ġ. duration Ġ= Ġduration Ċ } Ċ Ċ fun ĠView . animate With Translation ( ĊĠĠĠ Ġtranslation Y : ĠFloat , ĊĠĠĠ Ġalpha : ĠFloat , ĊĠĠĠ Ġduration : ĠLong Ġ= ĠAN IM ATION _ DURATION _ 5 0 0 Ċ ) Ġ{ ĊĠĠĠ Ġanimate (). translation Y ( translation Y ) ĊĠĠĠĠĠĠĠ Ġ. alpha ( alpha ) ĊĠĠĠĠĠĠĠ Ġ. duration Ġ= Ġduration Ċ } Ċ Ċ fun ĠView . dismiss Keyboard () Ġ{ ĊĠĠĠ Ġval Ġimm Ġ= Ġcontext . getSystem Service ( Context . INPUT _ METHOD _ SERVICE ) Ġas ĠInput Method Manager ĊĠĠĠ Ġimm . hide Soft Input From Window ( window Token , Ġ 0 ) Ċ } Ċ Ċ fun ĠAny . toJSON String (): ĠString Ġ= ĠGson (). toJson ( this ) Ċ Ċ internal Ġfun ĠWindow . apply Dialog St yling () Ġ{ ĊĠĠĠ Ġset Background Drawable ( Color Drawable ( Color . TRANSP ARENT )) ĊĠĠĠ Ġrequest Feature ( Window . FEATURE _ NO _ TITLE ) ĊĠĠĠ Ġset Flags ( ĊĠĠĠĠĠĠĠ ĠWindow Manager . LayoutParams . FLAG _ NOT _ TO UCH _ MOD AL , ĊĠĠĠĠĠĠĠ ĠWindow Manager . LayoutParams . FLAG _ NOT _ TO UCH _ MOD AL ĊĠĠĠ Ġ) ĊĠĠĠ Ġset Dim Amount ( 0 . 5 f ) Ċ } Ċ Ċ fun ĠJ udo . to Payment Request ( ĊĠĠĠ Ġcard Number : ĠString , ĊĠĠĠ Ġexpiry Date : ĠString , ĊĠĠĠ Ġsecurity Code : ĠString Ċ ) Ġ= ĠPayment Request . Builder () ĊĠĠĠ Ġ. set Unique Request ( false ) ĊĠĠĠ Ġ. set Your Payment Reference ( reference . payment Reference ) ĊĠĠĠ Ġ. set Amount ( amount . amount ) ĊĠĠĠ Ġ. set Currency ( amount . currency . name ) ĊĠĠĠ Ġ. set J udo Id ( j udo Id ) ĊĠĠĠ Ġ. set Your Consumer Reference ( reference . consumer Reference ) ĊĠĠĠ Ġ. set Your Payment MetaData ( reference . metaData ?. toMap ()) ĊĠĠĠ Ġ. set Address ( address Ġ?: ĠAddress . Builder (). build ()) ĊĠĠĠ Ġ. set Card Number ( card Number ) ĊĠĠĠ Ġ. set Cv 2 ( security Code ) ĊĠĠĠ Ġ. set Expiry Date ( expiry Date ) ĊĠĠĠ Ġ. set Primary Account Details ( primary Account Details ) ĊĠĠĠ Ġ. setInitial Recurring Payment ( initial Recurring Payment ) ĊĠĠĠ Ġ. build () Ċ Ċ fun ĠJ udo . to Register Card Request ( ĊĠĠĠ Ġcard Number : ĠString , ĊĠĠĠ Ġexpiration Date : ĠString , ĊĠĠĠ Ġsecurity Code : ĠString Ċ ) Ġ= ĊĠĠĠ ĠRegister Card Request . Builder () ĊĠĠĠĠĠĠĠ Ġ. set Unique Request ( false ) ĊĠĠĠĠĠĠĠ Ġ. set Your Payment Reference ( reference . payment Reference ) ĊĠĠĠĠĠĠĠ Ġ. set Currency ( amount . currency . name ) ĊĠĠĠĠĠĠĠ Ġ. set J udo Id ( j udo Id ) ĊĠĠĠĠĠĠĠ Ġ. set Your Consumer Reference ( reference . consumer Reference ) ĊĠĠĠĠĠĠĠ Ġ. set Your Payment MetaData ( reference . metaData ?. toMap ()) ĊĠĠĠĠĠĠĠ Ġ. set Address ( address Ġ?: ĠAddress . Builder (). build ()) ĊĠĠĠĠĠĠĠ Ġ. set Card Number ( card Number ) ĊĠĠĠĠĠĠĠ Ġ. set Expiry Date ( expiration Date ) ĊĠĠĠĠĠĠĠ Ġ. set Cv 2 ( security Code ) ĊĠĠĠĠĠĠĠ Ġ. set Primary Account Details ( primary Account Details ) ĊĠĠĠĠĠĠĠ Ġ. set Amount ( amount . amount ) ĊĠĠĠĠĠĠĠ Ġ. setInitial Recurring Payment ( initial Recurring Payment ) ĊĠĠĠĠĠĠĠ Ġ. build () Ċ Ċ fun ĠJ udo . to Save Card Request ( ĊĠĠĠ Ġcard Number : ĠString , ĊĠĠĠ Ġexpiration Date : ĠString , ĊĠĠĠ Ġsecurity Code : ĠString Ċ ) Ġ= ĊĠĠĠ ĠSave Card Request . Builder () ĊĠĠĠĠĠĠĠ Ġ. set Unique Request ( false ) ĊĠĠĠĠĠĠĠ Ġ. set Your Payment Reference ( reference . payment Reference ) ĊĠĠĠĠĠĠĠ Ġ. set Currency ( amount . currency . name ) ĊĠĠĠĠĠĠĠ Ġ. set J udo Id ( j udo Id ) ĊĠĠĠĠĠĠĠ Ġ. set Your Consumer Reference ( reference . consumer Reference ) ĊĠĠĠĠĠĠĠ Ġ. set Your Payment MetaData ( reference . metaData ?. toMap ()) ĊĠĠĠĠĠĠĠ Ġ. set Address ( address Ġ?: ĠAddress . Builder (). build ()) ĊĠĠĠĠĠĠĠ Ġ. set Card Number ( card Number ) ĊĠĠĠĠĠĠĠ Ġ. set Expiry Date ( expiration Date ) ĊĠĠĠĠĠĠĠ Ġ. set Cv 2 ( security Code ) ĊĠĠĠĠĠĠĠ Ġ. set Primary Account Details ( primary Account Details ) ĊĠĠĠĠĠĠĠ Ġ. build () Ċ Ċ fun ĠJ udo . to Check Card Request ( ĊĠĠĠ Ġcard Number : ĠString , ĊĠĠĠ Ġexpiration Date : ĠString , ĊĠĠĠ Ġsecurity Code : ĠString Ċ ) Ġ= ĊĠĠĠ ĠCheck Card Request . Builder () ĊĠĠĠĠĠĠĠ Ġ. set Unique Request ( false ) ĊĠĠĠĠĠĠĠ Ġ. set Your Payment Reference ( reference . payment Reference ) ĊĠĠĠĠĠĠĠ Ġ. set Currency ( amount . currency . name ) ĊĠĠĠĠĠĠĠ Ġ. set J udo Id ( j udo Id ) ĊĠĠĠĠĠĠĠ Ġ. set Your Consumer Reference ( reference . consumer Reference ) ĊĠĠĠĠĠĠĠ Ġ. set Your Payment MetaData ( reference . metaData ?. toMap ()) ĊĠĠĠĠĠĠĠ Ġ. set Address ( address Ġ?: ĠAddress . Builder (). build ()) ĊĠĠĠĠĠĠĠ Ġ. set Card Number ( card Number ) ĊĠĠĠĠĠĠĠ Ġ. set Expiry Date ( expiration Date ) ĊĠĠĠĠĠĠĠ Ġ. set Cv 2 ( security Code ) ĊĠĠĠĠĠĠĠ Ġ. set Primary Account Details ( primary Account Details ) ĊĠĠĠĠĠĠĠ Ġ. setInitial Recurring Payment ( initial Recurring Payment ) ĊĠĠĠĠĠĠĠ Ġ. build () Ċ Ċ fun ĠJ udo . to Google Pay Request ( ĊĠĠĠ Ġcard Network : ĠString , ĊĠĠĠ Ġcard Details : ĠString , ĊĠĠĠ Ġtoken : ĠString , ĊĠĠĠ Ġbilling Address : ĠGoogle Pay Address ? Ġ= Ġnull Ċ ): ĠGoogle Pay Request Ġ{ ĊĠĠĠ Ġval Ġwallet Ġ= ĠGoogle Pay Wallet . Builder () ĊĠĠĠĠĠĠĠ Ġ. set Token ( token ) ĊĠĠĠĠĠĠĠ Ġ. set Card Network ( card Network ) ĊĠĠĠĠĠĠĠ Ġ. set Card Details ( card Details ) ĊĠĠĠĠĠĠĠ Ġ. set Billing Address ( billing Address ) ĊĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠ Ġreturn ĠGoogle Pay Request . Builder () ĊĠĠĠĠĠĠĠ Ġ. set J udo Id ( j udo Id ) ĊĠĠĠĠĠĠĠ Ġ. set Amount ( amount . amount ) ĊĠĠĠĠĠĠĠ Ġ. set Currency ( amount . currency . name ) ĊĠĠĠĠĠĠĠ Ġ. set Your Payment Reference ( reference . payment Reference ) ĊĠĠĠĠĠĠĠ Ġ. set Your Consumer Reference ( reference . consumer Reference ) ĊĠĠĠĠĠĠĠ Ġ. set Your Payment MetaData ( reference . metaData ?. toMap ()) ĊĠĠĠĠĠĠĠ Ġ. set Primary Account Details ( primary Account Details ) ĊĠĠĠĠĠĠĠ Ġ. set Card Address ( address ) ĊĠĠĠĠĠĠĠ Ġ. set Google Pay Wallet ( wallet ) ĊĠĠĠĠĠĠĠ Ġ. build () Ċ } Ċ Ċ fun ĠJ udo . to Ide al Sale Request ( bic : ĠString ) Ġ= ĊĠĠĠ ĠIde al Sale Request . Builder () ĊĠĠĠĠĠĠĠ Ġ. set Amount ( amount . amount ) ĊĠĠĠĠĠĠĠ Ġ. set Merchant Consumer Reference ( reference . consumer Reference ) ĊĠĠĠĠĠĠĠ Ġ. set Merchant Payment Reference ( reference . payment Reference ) ĊĠĠĠĠĠĠĠ Ġ. set Payment Metadata ( reference . metaData ?. toMap ()) ĊĠĠĠĠĠĠĠ Ġ. set J udo Id ( j udo Id ) ĊĠĠĠĠĠĠĠ Ġ. set B ic ( bic ) ĊĠĠĠĠĠĠĠ Ġ. build () Ċ Ċ fun ĠJ udo . to Bank Sale Request () Ġ= ĊĠĠĠ ĠBank Sale Request . Builder () ĊĠĠĠĠĠĠĠ Ġ. set Amount ( amount . amount ) ĊĠĠĠĠĠĠĠ Ġ. set Merchant Payment Reference ( reference . payment Reference ) ĊĠĠĠĠĠĠĠ Ġ. set Merchant Consumer Reference ( reference . consumer Reference ) ĊĠĠĠĠĠĠĠ Ġ. set J udo Id ( j udo Id ) ĊĠĠĠĠĠĠĠ Ġ. set Mobile Number ( pb ba Configuration ?. mobile Number ) ĊĠĠĠĠĠĠĠ Ġ. set EmailAddress ( pb ba Configuration ?. email Address ) ĊĠĠĠĠĠĠĠ Ġ. set Ap pe ars On Statement ( pb ba Configuration ?. appe ars On Statement ) ĊĠĠĠĠĠĠĠ Ġ. set Payment Metadata ( reference . metaData ?. toMap ()) ĊĠĠĠĠĠĠĠ Ġ. set Merchant Redirect Url ( pb ba Configuration ?. deep Link Scheme ) ĊĠĠĠĠĠĠĠ Ġ. build () Ċ Ċ fun ĠJ udo . to Token Request ( card Token : ĠString , Ġsecurity Code : ĠString ? Ġ= Ġnull ) Ġ= ĊĠĠĠ ĠToken Request . Builder () ĊĠĠĠĠĠĠĠ Ġ. set Amount ( amount . amount ) ĊĠĠĠĠĠĠĠ Ġ. set Currency ( amount . currency . name ) ĊĠĠĠĠĠĠĠ Ġ. set J udo Id ( j udo Id ) ĊĠĠĠĠĠĠĠ Ġ. set Your Payment Reference ( reference . payment Reference ) ĊĠĠĠĠĠĠĠ Ġ. set Your Consumer Reference ( reference . consumer Reference ) ĊĠĠĠĠĠĠĠ Ġ. set Your Payment MetaData ( reference . metaData ?. toMap ()) ĊĠĠĠĠĠĠĠ Ġ. set Card Token ( card Token ) ĊĠĠĠĠĠĠĠ Ġ. set Cv 2 ( security Code ) ĊĠĠĠĠĠĠĠ Ġ. set Primary Account Details ( primary Account Details ) ĊĠĠĠĠĠĠĠ Ġ. set Address ( address Ġ?: ĠAddress . Builder (). build ()) ĊĠĠĠĠĠĠĠ Ġ. setInitial Recurring Payment ( initial Recurring Payment ) ĊĠĠĠĠĠĠĠ Ġ. build () Ċ