package Ġorg . ore g ano . ore g ano 3 Ċ Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġandroidx . appcompat . content . res . AppCompat Resources Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġcom . cha quo . python . PyObject Ċ import Ġkotlinx . android . synt hetic . main . transaction _ detail .* Ċ import Ġkotlinx . android . synt hetic . main . transactions .* Ċ import Ġkotlin . math . round ToInt ĊĊ Ċ class ĠTransactions Fragment Ġ: ĠList Fragment ( R . layout . transactions , ĠR . id . rv Transactions ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġon ListModel Created ( list Model : ĠList Model ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwith Ġ( list Model ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrigger . add Source ( daemon Update ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrigger . add Source ( settings . getString (" base _ unit ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . function Ġ= Ġ{ Ġwallet . call Attr (" get _ history ") !! Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġbtn Send . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Dialog ( this , ĠSend Dialog ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠToast Exception ) Ġ{ Ġe . show () Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbtn Request . setOnClickListener Ġ{ Ġshow Dialog ( this , ĠNew Request Dialog ()) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Adapter () Ġ= ĠTransactions Adapter ( this ) Ċ } ĊĊ Ċ // ĠAlso Ġused Ġin ĠAdd resses Transactions Dialog . Ċ fun ĠTransactions Adapter ( list Fragment : ĠList Fragment ) Ġ= ĊĠĠĠ ĠList Adapter ( list Fragment , ĠR . layout . transaction _ list , Ġ:: Transaction Model , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ:: Transaction Dialog ) ĊĠĠĠĠĠĠĠ Ġ. apply Ġ{ Ġreversed Ġ= Ġtrue Ġ} ĊĊ Ċ class ĠTransaction Model ( wallet : ĠPyObject , Ġval Ġtx History : ĠPyObject ) Ġ: ĠListItem Model ( wallet ) Ġ{ ĊĠĠĠ Ġprivate Ġfun Ġget ( key : ĠString ) Ġ= Ġtx History . get ( key ) ĊĊĠĠĠ Ġval Ġtx id Ġby Ġlazy Ġ{ Ġget (" tx _ hash ") !!. toString () Ġ} ĊĠĠĠ Ġval Ġamount Ġby Ġlazy Ġ{ Ġget (" amount ") ?. to Long () Ġ?: Ġ 0 Ġ} ĊĠĠĠ Ġval Ġbalance Ġby Ġlazy Ġ{ Ġget (" balance ") ?. to Long () Ġ?: Ġ 0 Ġ} ĊĠĠĠ Ġval Ġtimestamp Ġby Ġlazy Ġ{ Ġformat Time ( get (" timestamp ") ?. to Long ()) Ġ} ĊĠĠĠ Ġval Ġlabel Ġby Ġlazy Ġ{ ĠgetDescription ( wallet , Ġtx id ) Ġ} ĊĊĠĠĠ Ġval Ġicon : ĠDrawable Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠSupport Ġinfl ation Ġof Ġvector Ġimages Ġbefore ĠAPI Ġlevel Ġ 2 1 . ĊĠĠĠĠĠĠĠ ĠAppCompat Resources . get Drawable ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( amount Ġ>= Ġ 0 ) ĠR . drawable . ic _ add _ 2 4 dp ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĠR . drawable . ic _ remove _ 2 4 dp ) !! ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġstatus : ĠString Ġ Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġconfirm ations Ġ= Ġget (" conf ") !!. toInt () ĊĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfirm ations Ġ<= Ġ 0 Ġ-> Ġapp . getString ( R . string . Un confirmed ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġapp . resources . get Quantity String ( R . plurals . confirmation , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfirm ations , Ġconfirm ations ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġdialog Arguments Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠBundle (). apply Ġ{ Ġput String (" tx id ", Ġtx id ) Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ class ĠTransaction Dialog Ġ: ĠDetail Dialog () Ġ{ ĊĠĠĠ Ġval Ġtx id Ġby Ġlazy Ġ{ Ġarguments !!. getString (" tx id ") !! Ġ} ĊĠĠĠ Ġval Ġtx Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠTransaction Ġlookup Ġsometimes Ġfails Ġduring Ġsync . ĊĠĠĠĠĠĠĠ Ġwallet . get (" transactions ") !!. call Attr (" get ", Ġtx id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠToast Exception ( R . string . Transaction _ not ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġtx Info Ġby Ġlazy Ġ{ Ġwallet . call Attr (" get _ tx _ info ", Ġtx ) !! Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Build Dialog ( builder : ĠAlertDialog . Builder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbuilder . setView ( R . layout . transaction _ detail ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Negative Button ( android . R . string . cancel , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button ( android . R . string . ok , Ġ{ _, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Description ( wallet , Ġtx id , Ġet Description . text . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon ShowDialog () Ġ{ ĊĠĠĠĠĠĠĠ Ġbtn Explore . setOnClickListener Ġ{ Ġexplore Transaction ( activity !! , Ġtx id ) Ġ} ĊĠĠĠĠĠĠĠ Ġbtn Copy . setOnClickListener Ġ{ Ġcopy To Clipboard ( tx id , ĠR . string . transaction _ id ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġtv Tx id . text Ġ= Ġtx id ĊĊĠĠĠĠĠĠĠ Ġ// ĠFor Ġoutgoing Ġtransactions , Ġthe Ġlist Ġview Ġincludes Ġthe Ġfee Ġin Ġthe Ġamount , Ġbut Ġthe ĊĠĠĠĠĠĠĠ Ġ// Ġdetail Ġview Ġdoes Ġnot . ĊĠĠĠĠĠĠĠ Ġtv Amount . text Ġ= Ġl tr ( format Sat osh is And Unit ( tx Info . get (" amount ") ?. to Long (), Ġsigned = true )) ĊĠĠĠĠĠĠĠ Ġtv Timestamp . text Ġ= Ġl tr ( format Time ( tx Info . get (" timestamp ") ?. to Long ())) ĊĠĠĠĠĠĠĠ Ġtv Status . text Ġ= Ġtx Info . get (" status ") !!. toString () ĊĊĠĠĠĠĠĠĠ Ġval Ġsize Ġ= Ġtx . call Attr (" estimated _ size "). toInt () ĊĠĠĠĠĠĠĠ Ġtv Size . text Ġ= ĠgetString ( R . string . bytes , Ġsize ) ĊĊĠĠĠĠĠĠĠ Ġval Ġfee Ġ= Ġtx Info . get (" fee ") ?. to Long () ĊĠĠĠĠĠĠĠ Ġif Ġ( fee Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv Fee . text Ġ= ĠgetString ( R . string . Unknown ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfee Sp b Ġ= Ġ( fee . toDouble () Ġ/ Ġsize . toDouble ()). round ToInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv Fee . text Ġ= ĠString . format ("% s Ġ(% s )", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . fix _ byte , Ġfee Sp b ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġl tr ( format Sat osh is And Unit ( fee ))) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon First ShowDialog () Ġ{ ĊĠĠĠĠĠĠĠ Ġet Description . setText ( tx Info . get (" label ") !!. toString ()) ĊĠĠĠ Ġ} Ċ }