/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 Ġth under b isc uit Ġand Ġcontributors . Ċ Ġ* ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe Ġ./ LICENSE Ġfile . Ċ Ġ*/ Ċ Ċ package Ġorg . summer of bitcoin . wallet . wallet Ċ Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . annotation . Requires Api Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . navigation . Navigation Ċ import Ġorg . bitcoin dev kit . bd k jni . Types . Transaction Details Ċ import Ġorg . summer of bitcoin . wallet . R Ċ import Ġorg . summer of bitcoin . wallet . data . Wallet Ċ import Ġorg . summer of bitcoin . wallet . databinding . Fragment Transactions Binding Ċ import Ġorg . summer of bitcoin . wallet . utilities . timestamp ToString Ċ Ċ class ĠTransactions Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠFragment Transactions Binding ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ?, ĊĠĠĠ Ġ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠFragment Transactions Binding . inflate ( in flater , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġwe Ġsort Ġthe Ġlist Ġof Ġtransactions Ġby Ġtheir Ġheight Ġin Ġthe Ġblockchain ĊĠĠĠĠĠĠĠ Ġ// Ġhighest Ġheight Ġfirst , Ġso Ġthe Ġmost Ġrecent Ġtransactions Ġshow Ġup Ġfirst ĊĠĠĠĠĠĠĠ Ġ// Ġnote Ġthat Ġpending Ġtransactions Ġhave Ġa Ġconfirmation _ time Ġof Ġnull , Ġin Ġwhich Ġcase Ġwe Ġgive Ġthem Ġa Ġheight Ġof Ġ 1 0 0 , 0 0 0 , 0 0 0 ĊĠĠĠĠĠĠĠ Ġ// Ġensuring Ġthey Ġshow Ġup Ġabove Ġall Ġother Ġtransactions Ġuntil Ġthey Ġget Ġm ined , Ġat Ġwhich Ġpoint Ġthey Ġget Ġa Ġproper Ġheight ĊĠĠĠĠĠĠĠ Ġval Ġraw Transaction List : ĠList < Transaction Details > Ġ= ĠWallet . list Transactions (). sorted By Descending Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . confirmation _ time ?. height Ġ?: Ġ 1 0 0 _ 0 0 0 _ 0 0 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . pending Transactions Content . text Ġ= Ġpending Transactions List ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġraw Transaction List . filter Ġ{ Ġit . confirmation _ time Ġ== Ġnull Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġbinding . confirmed Transactions Content . text Ġ= Ġconfirmed Transactions List ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġraw Transaction List . filter Ġ{ Ġit . confirmation _ time Ġ!= Ġnull Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġnav Controller Ġ= ĠNavigation . find Nav Controller ( view ) ĊĠĠĠĠĠĠĠ Ġbinding . transactions To Wallet Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnav Controller . navigate ( R . id . action _ transactions Fragment _ to _ wallet Fragment ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġconfirmed Transactions List ( transactions : ĠList < Transaction Details >): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( transactions . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i (" S obi Wallet ", Ġ" Confirmed Ġtransaction Ġlist Ġis Ġempty ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ" No Ġconfirmed Ġtransactions " ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġbuild String Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( item Ġin Ġtransactions ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i (" S obi Wallet ", Ġ" Transaction Ġlist Ġitem : Ġ$ item ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend Line (" Timestamp : Ġ${ item . confirmation _ time !!. timestamp ToString () }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend Line (" Received : Ġ${ item . received }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend Line (" Sent : Ġ${ item . sent }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend Line (" Fees : Ġ${ item . fee }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend Line (" Block : Ġ${ item . confirmation _ time !!. height }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend Line (" Tx id : Ġ${ item . tx id }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend Line () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġpending Transactions List ( transactions : ĠList < Transaction Details >): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( transactions . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i (" S obi Wallet ", Ġ" Pending Ġtransaction Ġlist Ġis Ġempty ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ" No Ġpending Ġtransactions " ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġbuild String Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( item Ġin Ġtransactions ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i (" S obi Wallet ", Ġ" Pending Ġtransaction Ġlist Ġitem : Ġ$ item ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend Line (" Timestamp : ĠPending ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend Line (" Received : Ġ${ item . received }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend Line (" Sent : Ġ${ item . sent }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend Line (" Fees : Ġ${ item . fee }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend Line (" Tx id : Ġ${ item . tx id }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend Line () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ