package Ġcom . k rm . debit credit cards . pager Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Parcelable Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . FragmentManager Ċ import Ġandroidx . fragment . app . Fragment State Pager Adapter Ċ Ċ class ĠCard Fragment Adapter ( fm : ĠFragment Manager ?, Ġargs : ĠBundle ?) Ġ: ĊĠĠĠ ĠFragment State Pager Adapter ( fm !! ), ĠI ActionListener Ġ{ ĊĠĠĠ Ġfun Ġfocus ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ( getItem ( position ) Ġas ĠIF ocus ). focus () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠI Card Entry Complete Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Card Entry Complete ( currentIndex : ĠInt ) ĊĠĠĠĠĠĠĠ Ġfun Ġon Card Entry Edit ( currentIndex : ĠInt , Ġentry Value : ĠString ?) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġm Card Number Fragment : ĠCard Number Fragment ĊĠĠĠ Ġprivate Ġval Ġm Card Expiry Fragment : ĠCard Expiry Fragment ĊĠĠĠ Ġprivate Ġval Ġm Card CV V Fragment : ĠCard CV V Fragment Ġ= ĠCard CV V Fragment () ĊĠĠĠ Ġprivate Ġval Ġm Card Name Fragment : ĠCard Name Fragment ĊĠĠĠ Ġprivate Ġvar Ġm Card Entry Complete Listener : ĠI Card Entry Complete Listener ? Ġ= Ġnull ĊĠĠĠ Ġfun Ġset On Card Entry Complete Listener ( listener : ĠI Card Entry Complete Listener ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Card Entry Complete Listener Ġ= Ġlistener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem ( position : ĠInt ): ĠFragment Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠarrayOf < Fragment >( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Card Number Fragment , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Card Expiry Fragment , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Card CV V Fragment , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Card Name Fragment ĊĠĠĠĠĠĠĠ Ġ) [ position ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ 4 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Action Complete ( fragment : ĠCredit Card Fragment ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġindex Ġ= Ġget Index ( fragment !! ) ĊĠĠĠĠĠĠĠ Ġif Ġ( index Ġ>= Ġ 0 Ġ&& Ġm Card Entry Complete Listener Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Card Entry Complete Listener !!. on Card Entry Complete ( index ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Index ( fragment : ĠCredit Card Fragment ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġindex Ġ= Ġ- 1 ĊĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Ġ=== Ġm Card Number Fragment Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindex Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Ġ=== Ġm Card Expiry Fragment Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindex Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Ġ=== Ġm Card CV V Fragment Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindex Ġ= Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Ġ=== Ġm Card Name Fragment Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindex Ġ= Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġindex ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Max CV V ( max CV V : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Card CV V Fragment . setMax CV V ( max CV V ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Edit ( fragment : ĠCredit Card Fragment ?, Ġedit : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġindex Ġ= Ġget Index ( fragment !! ) ĊĠĠĠĠĠĠĠ Ġif Ġ( index Ġ>= Ġ 0 Ġ&& Ġm Card Entry Complete Listener Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Card Entry Complete Listener !!. on Card Entry Edit ( index , Ġedit ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġrestore State ( ĊĠĠĠĠĠĠĠ Ġparcel able : ĠParcel able ?, ĊĠĠĠĠĠĠĠ Ġclass Loader : ĠClassLoader ? ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// do Ġnothing Ġhere ! Ġno Ġcall Ġto Ġsuper . restore State ( parcel able , Ġclass Loader ); ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġm Card CV V Fragment . arguments Ġ= Ġargs ĊĠĠĠĠĠĠĠ Ġm Card Name Fragment Ġ= ĠCard Name Fragment () ĊĠĠĠĠĠĠĠ Ġm Card Name Fragment . arguments Ġ= Ġargs ĊĠĠĠĠĠĠĠ Ġm Card Number Fragment Ġ= ĠCard Number Fragment () ĊĠĠĠĠĠĠĠ Ġm Card Number Fragment . arguments Ġ= Ġargs ĊĠĠĠĠĠĠĠ Ġm Card Expiry Fragment Ġ= ĠCard Expiry Fragment () ĊĠĠĠĠĠĠĠ Ġm Card Expiry Fragment . arguments Ġ= Ġargs ĊĠĠĠĠĠĠĠ Ġm Card Name Fragment . set ActionListener ( this ) ĊĠĠĠĠĠĠĠ Ġm Card Number Fragment . set ActionListener ( this ) ĊĠĠĠĠĠĠĠ Ġm Card Expiry Fragment . set ActionListener ( this ) ĊĠĠĠĠĠĠĠ Ġm Card CV V Fragment . set ActionListener ( this ) ĊĠĠĠ Ġ} Ċ }