package Ġorg . erg op l atform . ios Ċ Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . launch Ċ import Ġorg . erg op l atform . ios . settings . Settings ViewController Ċ import Ġorg . erg op l atform . ios . transactions . Choose S pending Wallet ViewController Ċ import Ġorg . erg op l atform . ios . transactions . E rg o Pay Signing ViewController Ċ import Ġorg . erg op l atform . ios . transactions . Send Funds ViewController Ċ import Ġorg . erg op l atform . ios . ui .* Ċ import Ġorg . erg op l atform . ios . wallet . Wallet ViewController Ċ import Ġorg . erg op l atform . transactions . is E rg o Pay Signing Request Ċ import Ġorg . erg op l atform . ui logic . Main App Ui Logic Ċ import Ġorg . erg op l atform . ui logic . STRING _ TITLE _ SETTINGS Ċ import Ġorg . erg op l atform . ui logic . STRING _ TITLE _ WAL LE TS Ċ import Ġorg . ro bo vm . apple . foundation . NSArray Ċ import Ġorg . ro bo vm . apple . u ikit .* Ċ Ċ class ĠBottom NavigationBar Ġ: ĠUIT ab Bar Controller () Ġ{ ĊĊĠĠĠ Ġprivate Ġfun Ġsetup V cs () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġapp Delegate Ġ= Ġget App Delegate () ĊĊĠĠĠĠĠĠĠ Ġset View Controllers ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNSArray ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Nav Controller ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWallet ViewController (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp Delegate . texts . get ( STRING _ TITLE _ WAL LE TS ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUI Image . system Image Named ( IMAGE _ WAL LET ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Nav Controller ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSettings ViewController (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp Delegate . texts . get ( STRING _ TITLE _ SETTINGS ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUI Image . system Image Named ( IMAGE _ SETTINGS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Nav Controller ( ĊĠĠĠĠĠĠĠ Ġroot ViewController : ĠUI ViewController , ĊĠĠĠĠĠĠĠ Ġtitle : ĠString , Ġimage : ĠUI Image ĊĠĠĠ Ġ): ĠU IN avigation Controller Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnav Controller Ġ= ĠU IN avigation Controller ( root ViewController ) ĊĠĠĠĠĠĠĠ Ġnav Controller . tab Bar Item . title Ġ= Ġtitle ĊĠĠĠĠĠĠĠ Ġnav Controller . tab Bar Item . image Ġ= Ġimage ĊĠĠĠĠĠĠĠ Ġnav Controller . navigation Bar . set Pref ers Large Titles ( false ) ĊĠĠĠĠĠĠĠ Ġval Ġnav Bar Appearance Ġ= ĠU IN avigation Bar Appearance () ĊĠĠĠĠĠĠĠ Ġnav Bar Appearance . backgroundColor Ġ= Ġui Color E rg o ĊĠĠĠĠĠĠĠ Ġnav Controller . navigation Bar . standard Appearance Ġ= Ġnav Bar Appearance ĊĠĠĠĠĠĠĠ Ġnav Controller . navigation Bar . scroll Edge Appearance Ġ= Ġnav Bar Appearance ĊĠĠĠĠĠĠĠ Ġroot ViewController . navigation Item . title Ġ= Ġtitle ĊĠĠĠĠĠĠĠ Ġreturn Ġnav Controller ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġview Did Load () Ġ{ ĊĠĠĠĠĠĠĠ Ġtab Bar . bar Tint Color Ġ= Ġui Color E rg o ĊĠĠĠĠĠĠĠ Ġtab Bar . tint Color Ġ= ĠUI Color . label () ĊĠĠĠĠĠĠĠ Ġtab Bar . un selected Item Tint Color Ġ= ĠUI Color . label () ĊĠĠĠĠĠĠĠ Ġsetup V cs () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġhandle Payment Request ( payment Request : ĠString , Ġfrom Qr : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtexts Ġ= Ġget App Delegate (). texts ĊĠĠĠĠĠĠĠ ĠMain App Ui Logic . handle Requests ( payment Request , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom Qr , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠI os String Provider ( texts ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCor outine Scope ( Dispatch ers . Default ). launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwallet s Ġ= Ġget App Delegate (). database . wallet Db Provider . getAll Wallet Configs S ynchronous () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrun On MainThread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( wallet s . size Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnavigate To Next Screen ( wallet s . first (). id , Ġpayment Request , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresent ViewController ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠChoose S pending Wallet ViewController ( payment Request ) Ġ{ Ġwallet Id Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnavigate To Next Screen ( wallet Id , Ġpayment Request , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ Ġmessage Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresent ViewController ( build Simple Alert Controller ("", Ġmessage , Ġtexts ), Ġtrue ) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġnavigate To Next Screen ( ĊĠĠĠĠĠĠĠ Ġwallet Id : ĠInt , ĊĠĠĠĠĠĠĠ Ġpayment Request : ĠString , ĊĠĠĠĠĠĠĠ Ġfrom Choose Screen : ĠBoolean ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġset Ġview Ġto Ġfirst Ġcontroller Ġ( wallet Ġlist ), Ġgo Ġback Ġto Ġits Ġroot Ġand Ġswitch Ġto Ġthe ĊĠĠĠĠĠĠĠ Ġ// Ġwallet 's Ġsend Ġfunds Ġscreen ĊĠĠĠĠĠĠĠ Ġselected ViewController Ġ= Ġview Controllers . first () ĊĠĠĠĠĠĠĠ Ġ( selected ViewController Ġas ? ĠU IN avigation Controller )?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpop To Root ViewController ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpush ViewController ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is E rg o Pay Signing Request ( payment Request )) ĠE rg o Pay Signing ViewController ( payment Request , Ġwallet Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĠSend Funds ViewController ( wallet Id , Ġpayment Request Ġ= Ġpayment Request ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ! from Choose Screen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ }