package Ġio . mu un . apollo . presentation . ui . show _ qr . bitcoin Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Intent Ċ import Ġandroid . view . View Ċ import Ġandroidx . core . widget . Nested ScrollView Ċ import Ġbutter knife . BindView Ċ import Ġbutter knife . OnClick Ċ import Ġcom . google . zx ing . qrcode . decoder . Error Correction Level Ċ import Ġice pick . State Ċ import Ġio . mu un . apollo . R Ċ import Ġio . mu un . apollo . data . external . Globals Ċ import Ġio . mu un . apollo . domain . model . Currency DisplayMode Ċ import Ġio . mu un . apollo . presentation . ui . new _ operation . Title And Description Drawer Ċ import Ġio . mu un . apollo . presentation . ui . select _ amount . Select Amount Activity Ċ import Ġio . mu un . apollo . presentation . ui . show _ qr . Qr Fragment Ċ import Ġio . mu un . apollo . presentation . ui . view . Address Type Item Ċ import Ġio . mu un . apollo . presentation . ui . view . Edit Amount Item Ċ import Ġio . mu un . apollo . presentation . ui . view . Hidden Section Ċ import Ġio . mu un . common . bitcoin j . Bitcoin Uri Ċ import Ġjavax . money . Mon etary Amount Ċ Ċ class ĠBitcoin Address Qr Fragment Ġ: ĠQ r Fragment < Bitcoin Address Qr Presenter >(), ĊĠĠĠ ĠBitcoin Address View , ĊĠĠĠ ĠAddress Type Item . Add res Type Changed Listener , ĊĠĠĠ ĠEdit Amount Item . Edit Amount Handler Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠREQUEST _ AMOUNT Ġ= Ġ 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ BindView ( R . id . scroll View ) ĊĠĠĠ Ġlateinit Ġvar Ġscroll View : ĠNested ScrollView ĊĊĠĠĠ Ġ@ BindView ( R . id . address _ settings ) ĊĠĠĠ Ġlateinit Ġvar Ġhidden Section : ĠHidden Section ĊĊĠĠĠ Ġ@ BindView ( R . id . address _ settings _ content ) ĊĠĠĠ Ġlateinit Ġvar Ġaddress Settings Content : ĠView ĊĊĠĠĠ Ġ@ BindView ( R . id . edit _ amount _ item ) ĊĠĠĠ Ġlateinit Ġvar Ġedit Amount Item : ĠEdit Amount Item ĊĊĠĠĠ Ġ@ BindView ( R . id . address _ type _ item ) ĊĠĠĠ Ġlateinit Ġvar Ġaddress Type Item : ĠAddress Type Item ĊĊĠĠĠ Ġ// ĠState : ĊĊĠĠĠ Ġ@ State ĊĠĠĠ Ġlateinit Ġvar Ġmode : ĠCurrency DisplayMode ĊĊĠĠĠ Ġoverride Ġfun Ġinject () Ġ= ĊĠĠĠĠĠĠĠ Ġcomponent . inject ( this ) ĊĊĠĠĠ Ġoverride Ġfun Ġget Layout Resource () Ġ= ĊĠĠĠĠĠĠĠ ĠR . layout . fragment _ show _ qr ĊĊĠĠĠ Ġoverride Ġfun Ġinitialize Ui ( view : ĠView ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . initialize Ui ( view ) ĊĠĠĠĠĠĠĠ Ġedit Amount Item . set Edit Amount Handler ( this ) ĊĠĠĠĠĠĠĠ Ġaddress Type Item . setOn Address Type Changed Listener ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Showing Advanced Settings ( show ing Advanced Settings : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġhidden Section . set Expanded ( show ing Advanced Settings ) ĊĠĠĠĠĠĠĠ Ġif Ġ( show ing Advanced Settings ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaddress Settings Content . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Currency DisplayMode ( mode : ĠCurrency DisplayMode ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . mode Ġ= Ġmode ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Content ( content : ĠString , Ġaddress Type : ĠAddress Type , Ġamount : ĠMon etary Amount ?) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// ĠTODO ĠEnable Ġextra ĠQR Ġcompression Ġmode . ĠUpper case Ġbe ch 3 2 Ġstrings Ġare Ġmore Ġefficiently ĊĠĠĠĠĠĠĠ Ġ// Ġ Ġencoded . ĠWhen ? ĠWhen Ġand Ġif Ġever Ġpopular Ġservices Ġlike Ġblockchain . info Ġand Ġledger Ġupgrade ĊĠĠĠĠĠĠĠ Ġ// Ġ Ġtheir Ġimp ls . ĊĠĠĠĠĠĠĠ Ġsuper . set Qr Content ( content , Ġcontent ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠHack ish Ġway Ġto Ġoverride Ġand Ġshow Ġjust Ġthe Ġaddress Ġwhen Ġdealing Ġwith Ġa Ġbitcoin Ġuri ĊĠĠĠĠĠĠĠ Ġif Ġ( amount Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Showing Text ( Bitcoin Uri ( Globals . INSTANCE . network , Ġcontent ). address !! ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġaddress Type Item . show ( address Type ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( amount Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġedit Amount Item . set Amount ( amount , Ġmode ) ĊĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġedit Amount Item . reset Amount () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Full Address ( address : ĠString , Ġaddress Type : ĠAddress Type ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= Ġwhen Ġ( address Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAddress Type . SE GW IT Ġ-> ĠR . string . your _ bitcoin _ address ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAddress Type . LEG ACY Ġ-> ĠR . string . your _ compat _ bitcoin _ address ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġdialog Ġ= ĠTitle And Description Drawer () ĊĠĠĠĠĠĠĠ Ġdialog . setTitle ( title ) ĊĠĠĠĠĠĠĠ Ġdialog . setDescription ( address ) ĊĠĠĠĠĠĠĠ Ġshow Drawer Dialog ( dialog ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Error Correction (): ĠError Correction Level Ġ= ĊĠĠĠĠĠĠĠ ĠError Correction Level . H ĊĊĠĠĠ Ġ@ OnClick ( R . id . address _ settings ) ĊĠĠĠ Ġfun Ġon Address Settings Click () Ġ{ ĊĠĠĠĠĠĠĠ Ġpresenter . toggle Advanced Settings () ĊĠĠĠĠĠĠĠ Ġhidden Section . toggle Section () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( address Settings Content . visibility Ġ== ĠView . VISIBLE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaddress Settings Content . visibility Ġ= ĠView . GONE ĊĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaddress Settings Content . visibility Ġ= ĠView . VISIBLE ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġscroll View . post Delayed ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscroll View . full Scroll ( View . FOCUS _ DOWN ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ 1 0 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Address Type Changed ( new Type : ĠAddress Type ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpresenter . switch Address Type ( new Type ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Edit Amount ( amount : ĠMon etary Amount ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġrequest Deleg ated External Result ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠREQUEST _ AMOUNT , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSelect Amount Activity . get Select Address Amount Intent ( require Context (), Ġamount ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon External Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on External Result ( request Code , ĠresultCode , Ġdata ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( request Code Ġ== ĠREQUEST _ AMOUNT Ġ&& ĠresultCode Ġ== ĠActivity . RESULT _ OK ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠSelect Amount Activity . getResult ( data !! ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Ġ!= Ġnull Ġ&& Ġ! result . is Zero ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . set Amount ( result ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . set Amount ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }