package Ġcom . radix d lt . android . apps . pos . ui . setup . fragment Ċ Ċ import Ġandroid . content . Clipboard Manager Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . core . widget . do After TextChanged Ċ import Ġandroidx . lifecycle . lifecycle Scope Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġcom . google . android . gms . common . api . Common StatusCode s Ċ import Ġcom . google . android . gms . vision . barcode . Barcode Ċ import Ġcom . radix d lt . android . apps . pos . R Ċ import Ġcom . radix d lt . android . apps . pos . ui . Base Fragment Ċ import Ġcom . radix d lt . android . apps . pos . ui . setup . Barcode Capture Activity Ċ import Ġcom . radix d lt . android . apps . pos . util . Vault Preferences Ċ import Ġcom . radix d lt . android . apps . pos . util . hide Keyboard Ċ import Ġcom . radix d lt . android . apps . pos . util . is Rad ix Address Ċ import Ġcom . radix d lt . android . apps . pos . util . set Button Drawable On Top Of Text Ċ import Ġcom . radix d lt . android . apps . pos . util . toast Ċ import Ġkotlinx . android . synt hetic . main . fragment _ setup _ payment .* Ċ import Ġkotlinx . coroutines . delay Ċ import Ġkotlinx . coroutines . launch Ċ import Ġtim ber . log . Tim ber Ċ Ċ class ĠSetup Payment Address Fragment Ġ: ĠBase Fragment () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ= Ġinflater . inflate ( R . layout . fragment _ setup _ payment , Ġcontainer , Ġfalse ) ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġset Listeners () ĊĠĠĠĠĠĠĠ Ġset Button Draw ables On Top Of Text () ĊĠĠĠĠĠĠĠ Ġset Continue Button State () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Listeners () Ġ{ ĊĠĠĠĠĠĠĠ Ġset Button OnClick Listeners () ĊĠĠĠĠĠĠĠ Ġset Payment Address EditText Listeners () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Payment Address EditText Listeners () Ġ{ ĊĠĠĠĠĠĠĠ Ġsetup Payment Address EditText . setOn Focus ChangeListener Ġ{ Ġ_, Ġhas Focus Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas Focus Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsetup Payment Address Continue Button . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsetup Payment No Keyboard Group . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsetup Payment Keyboard Visible Group . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlifecycle Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( 3 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsetup Payment ScrollView . smooth Scroll To ( 0 , Ġsetup Payment ScrollView . bottom ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsetup Payment Keyboard Visible Group . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsetup Payment No Keyboard Group . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Keyboard () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġsetup Payment Address EditText . set Back EventListener Ġ{ Ġedit Text , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlifecycle Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( 2 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġedit Text . clear Focus () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Rad ix Address ( setup Payment Address EditText . text . toString ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsetup Payment Address Continue Button . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġsetup Payment Address EditText . do After TextChanged Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Continue Button State () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Button OnClick Listeners () Ġ{ ĊĠĠĠĠĠĠĠ Ġsetup Payment Address Continue Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠVault Preferences . set Vault Payment Address ( setup Payment Address EditText . text . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ navigation _ setup _ payment _ address _ to _ navigation _ setup _ business ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġsetup Payment Address Type Address Continue Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ navigation _ setup _ payment _ address _ to _ navigation _ setup _ business ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġsetup Payment Address Scan Address Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity For Result ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntent ( activity , ĠBar code Capture Activity :: class . java ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRC _ BAR CODE _ CAPTURE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġsetup Payment Address Paste Address Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclipboard Ġ= Ġactivity ?. getSystem Service ( Context . CLIP BOARD _ SERVICE ) Ġas ĠClip board Manager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclipboard . primary Clip ?. getItem At ( 0 )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġradix Address To Paste Ġ= Ġit . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsetup Payment Address EditText . setText ( radix Address To Paste ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Rad ix Address ( radix Address To Paste )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsetup Payment Address Continue Button . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġsetup Payment Address Back Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Keyboard () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlifecycle Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( 2 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsetup Payment Address EditText . clear Focus () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Continue Button State () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Rad ix Address ( setup Payment Address EditText . text . toString ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsetup Payment Address Continue Button . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Button Draw ables On Top Of Text () Ġ{ ĊĠĠĠĠĠĠĠ Ġsetup Payment Address Paste Address Button . set Button Drawable On Top Of Text () ĊĠĠĠĠĠĠĠ Ġsetup Payment Address Scan Address Button . set Button Drawable On Top Of Text () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Continue Button State () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Rad ix Address ( setup Payment Address EditText . text . toString ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsetup Payment Address Type Address Continue Button . background Tint List Ġ= Ġset Button Color ( R . color . radix Green ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsetup Payment Address Type Address Continue Button . isEnabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsetup Payment Address Type Address Continue Button . background Tint List Ġ= Ġset Button Color ( R . color . disabled Light Gray ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsetup Payment Address Type Address Continue Button . isEnabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġval Ġsetup Payment Address Ġ= Ġsetup Payment Address EditText . text . toString () ĊĠĠĠĠĠĠĠ Ġif Ġ( setup Payment Address . isNotEmpty () Ġ&& Ġis Rad ix Address ( setup Payment Address )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsetup Payment Address Continue Button . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠĠĠĠĠ Ġsetup Payment Address EditText . clear Focus () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( request Code Ġ== ĠRC _ BAR CODE _ CAPTURE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Code Ġ== ĠCommon StatusCode s . SUCCESS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( data Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbarcode : ĠBar code Ġ= Ġdata . get Parcelable Extra ( Barcode Capture Activity . BAR CODE _ OBJECT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaddress Ġ= Ġbarcode . display Value . trim () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Rad ix Address ( address )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsetup Payment Address EditText . setText ( address ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsetup Payment Address EditText . clear Focus () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsetup Payment Address Continue Button . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoast ( getString ( R . string . setup _ payment _ address _ fragment _ not _ a _ radix _ address _ toast )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoast ( getString ( R . string . barcode _ failure )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfailure String Ġ= ĠgetString ( R . string . barcode _ error , ĠCommon StatusCode s . getStatusCode String ( result Code )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoast ( getString ( R . string . toast _ error _ reading _ qr _ code )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . e ( failure String ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠRC _ BAR CODE _ CAPTURE Ġ= Ġ 9 0 0 1 ĊĠĠĠ Ġ} Ċ } Ċ