package Ġcom . be yond the horizon . route . bottom sheets Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . SharedPreferences Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Toast Ċ import Ġcom . be yond the horizon . route . R Ċ import Ġcom . be yond the horizon . route . models . Card Ċ import Ġcom . be yond the horizon . route . utils . Constants Ċ import Ġcom . be yond the horizon . route . utils . Constants . LOAD _ WAL LET _ FROM _ CARD Ċ import Ġcom . be yond the horizon . route . utils . Constants . REG _ APP _ PREFER ENCES Ċ import Ġcom . be yond the horizon . route . views . Card Activity Ċ import Ġcom . be yond the horizon . route . views . Fund Amount Activity Ċ import Ġcom . be yond the horizon . route . views . Mobile Activity Ċ import Ġcom . google . android . material . bottom sheet . Bottom Sheet Dialog Fragment Ċ import Ġkotlinx . android . synt hetic . main . fragment _ add _ money . view .* Ċ import Ġorg . json . JSONArray Ċ Ċ class ĠAdd Money Bottom sheet Ġ: ĠBottom Sheet Dialog Fragment (), ĠTransaction Model . Transaction Bottom Sheet Listener Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġprefs : ĠSharedPreferences ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġeditor : ĠSharedPreferences . Editor ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcard List : ĠMutable List < Card > ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġinflater . inflate ( R . layout . fragment _ add _ money , Ġcontainer , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġprefs Ġ= Ġrequire Context (). get SharedPreferences ( REG _ APP _ PREFER ENCES , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġeditor Ġ= Ġrequire Context (). get SharedPreferences ( REG _ APP _ PREFER ENCES , Ġ 0 ). edit () ĊĠĠĠĠĠĠĠ Ġcard List Ġ= Ġmutable ListOf () ĊĠĠĠĠĠĠĠ Ġview . card _ one . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġview . card _ two . visibility Ġ= ĠView . GONE ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcards Ġ= ĠJSONArray ( prefs . getString ( Constants . CAR DS , Ġ"")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġcards . length ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġitem Ġ= Ġcards . getJSONObject ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġnumber : ĠString Ġ= Ġitem . get (" card _ number "). toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġexpiry _ date : ĠString Ġ= Ġitem . get (" expiry _ date "). toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġclean _ date : ĠString Ġ= Ġexpiry _ date . substring ( 0 , Ġ 2 ) Ġ+ Ġ"/" Ġ+ Ġexpiry _ date . substring ( expiry _ date . length Ġ- Ġ 2 , Ġexpiry _ date . length ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcv v : ĠString Ġ= Ġitem . get (" cv v "). toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcountry : ĠString Ġ= Ġitem . get (" country "). toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcard List . add ( Card ( number , Ġclean _ date , Ġcv v , Ġcountry )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( require Context (), Ġex . message , ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġvar ĠnumberOf Cards Ġ= Ġcard List . size ĊĠĠĠĠĠĠĠ Ġif Ġ( numberOf Cards Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġintent Ġ= ĠIntent ( require Context (), ĠFund Amount Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( Constants . CARD _ STATUS , ĠConstants . OLD _ CARD ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . card _ one . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcard Ġ= Ġcard List [ 0 ]. card _ number ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcard Su fix Ġ= Ġ" ---- Ġ---- Ġ---- Ġ${ card . substring ( card . length Ġ- Ġ 4 , Ġcard . length )}" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . visa . setImage Resource ( get Card Icon ( card . get ( 0 ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . visa _ number . text Ġ= Ġcard Su fix ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . card _ one . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( numberOf Cards Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( Constants . CARD _ NUMBER , Ġcard List [ 0 ]. card _ number ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( Constants . EXPI RY _ DATE , Ġcard List [ 0 ]. expiry _ date ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( Constants . CV V _ NUMBER , Ġcard List [ 0 ]. cv v ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( Constants . COUNTRY , Ġcard List [ 0 ]. country ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . putString ( Constants . REQUEST _ TYPE _ TO _ DE TERM INE _ PAYMENT _ ACTIVITY , ĠLOAD _ WAL LET _ FROM _ CARD ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . apply () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( require Context (), Ġex . message , ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( numberOf Cards Ġ> Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . card _ two . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcard Ġ= Ġcard List [ 1 ]. card _ number ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcard Su fix Ġ= Ġ" ---- Ġ---- Ġ---- Ġ${ card . substring ( card . length Ġ- Ġ 4 , Ġcard . length )}" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . master _ card . setImage Resource ( get Card Icon ( card . get ( 0 ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . master _ card _ number . text Ġ= Ġcard Su fix ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . card _ two . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġintent Ġ= ĠIntent ( require Context (), ĠFund Amount Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( Constants . CARD _ NUMBER , Ġcard List [ 1 ]. card _ number ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( Constants . EXPI RY _ DATE , Ġcard List [ 1 ]. expiry _ date ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( Constants . CV V _ NUMBER , Ġcard List [ 1 ]. cv v ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( Constants . COUNTRY , Ġcard List [ 1 ]. country ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . putString ( Constants . REQUEST _ TYPE _ TO _ DE TERM INE _ PAYMENT _ ACTIVITY , ĠLOAD _ WAL LET _ FROM _ CARD ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . apply () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( require Context (), Ġex . message , ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġview . mobile Card . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( require Context (), ĠMobile Activity :: class . java )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġview . add _ card . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( require Context (), ĠCard Activity :: class . java )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġreturn Ġview ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġtransaction Bottom Sheet Listener ( amount : ĠString ?, Ġben _ account : ĠString ?, Ġben _ ref : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtoken Ġ= Ġ" Bearer Ġ" Ġ+ Ġprefs . getString ( Constants . USER _ TOKEN , Ġ"") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Card Icon ( card Initial Number : ĠChar ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġicon Ġ= ĠR . drawable . ic _ unk own _ card ĊĠĠĠĠĠĠĠ Ġif Ġ( card Initial Number . compareTo (' 4 '). equals ( 0 )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġicon Ġ= ĠR . drawable . ic _ visa ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( card Initial Number . compareTo (' 5 '). equals ( 0 )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġicon Ġ= ĠR . drawable . ic _ master card ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġicon ĊĠĠĠ Ġ} Ċ }