/* Ċ Ġ* ĠCopyright ĠÂ© Ġ 2 0 2 0 ĠT ink off ĠBank Ċ Ġ* Ċ Ġ* Ġ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 Ġru . t ink off . ac qu iring . sdk . ui . fragments Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . Sp ann able Ċ import Ġandroid . text . Sp ann able String Ċ import Ġandroid . text . method . Scrolling Movement Method Ċ import Ġandroid . text . style . ForegroundColor Span Ċ import Ġandroid . widget . TextView Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġru . t ink off . ac qu iring . sdk . R Ċ import Ġru . t ink off . ac qu iring . sdk . localization . As dk Localization Ċ import Ġru . t ink off . ac qu iring . sdk . localization . Localization Resources Ċ import Ġru . t ink off . ac qu iring . sdk . models . Payment Source Ċ import Ġru . t ink off . ac qu iring . sdk . models . p ays ources . Card Source Ċ import Ġjava . util . regex . Pattern Ċ Ċ /** Ċ Ġ* Ġ@ author ĠM ari ya ĠCh ern y ad ie va Ċ Ġ*/ Ċ internal Ġopen Ġclass ĠBase Ac qu iring Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġprotected Ġlateinit Ġvar Ġlocalization : ĠLocalization Resources ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠE MAIL _ PATTERN Ġ= Ġ"[ A - Z 0 - 9 a - z ._ % +- ]+ @ [ A - Za - z 0 - 9 .- ]+ \\ .[ A - Za - z ]{ 2 , }" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Created ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Created ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġlocalization Ġ= ĠA sdk Localization . resources ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġvalidate Input ( payment Source : ĠPayment Source , Ġemail : ĠString ? Ġ= Ġnull ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( payment Source Ġis ĠCard Source ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpayment Source . validate () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIllegalStateException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Activity (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA sdk Localization . resources . pay Dialog Validation Invalid Card , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . LENGTH _ SHORT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( email Ġ!= Ġnull Ġ&& Ġ( email . isEmpty () Ġ|| Ġ! Pattern . compile ( EMAIL _ PATTERN ). matcher ( email ). matches ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Activity (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA sdk Localization . resources . pay Dialog Validation Invalid Email , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . LENGTH _ SHORT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" Click ableView Accessibility ") ĊĠĠĠ Ġprotected Ġfun ĠTextView . resolve Scroll () Ġ{ ĊĠĠĠĠĠĠĠ Ġmovement Method Ġ= ĠScroll ing Movement Method () ĊĠĠĠĠĠĠĠ Ġset On Touch Listener Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcan Scroll Ġ= Ġcan Scroll Vert ically ( 1 ) Ġ|| Ġcan Scroll Vert ically (- 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparent . request Dis allow Intercept Touch Event ( can Scroll ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġmodify Span ( amount : ĠString ): ĠCharSequence Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġamount Span Ġ= ĠSp ann able String ( amount ) ĊĠĠĠĠĠĠĠ Ġval Ġcomma Index Ġ= Ġamount . indexOf (",") ĊĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( comma Index Ġ< Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġamount ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcoins Color Ġ= ĠContext Compat . getColor ( require Context (), ĠR . color . ac q _ color Coins ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġamount Span . set Span ( ForegroundColor Span ( coins Color ), Ġcomma Index Ġ+ Ġ 1 , Ġamount . length , ĠSp ann able . SPAN _ EXCL USIVE _ EXCL USIVE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġamount Span ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }