package Ġorg . erg op l atform . android . transactions Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġandroidx . lifecycle . ViewModel Store Owner Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . google . android . material . bottom sheet . Bottom Sheet Dialog Fragment Ċ import Ġorg . erg op l atform . android . databinding . Fragment Choose Token Dialog Binding Ċ import Ġorg . erg op l atform . android . databinding . Fragment Choose Token Dialog Item Binding Ċ import Ġorg . erg op l atform . pers istance . Wallet Token Ċ Ċ /** Ċ Ġ* ĠLet Ġthe Ġuser Ġchoose Ġone Ġor Ġmore Ġtoken ( s ) Ġfrom Ġthe Ġavailable Ġtokens Ċ Ġ*/ Ċ class ĠChoose Token List Dialog Fragment Ġ: ĠBottom Sheet Dialog Fragment () Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġ_ binding : ĠFragment Choose Token Dialog Binding ? Ġ= Ġnull ĊĊĠĠĠ Ġ// ĠThis Ġproperty Ġis Ġonly Ġvalid Ġbetween ĠonCreate View Ġand ĊĠĠĠ Ġ// Ġon Destroy View . ĊĠĠĠ Ġprivate Ġval Ġbinding Ġget () Ġ= Ġ_ binding !! ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ_ binding Ġ= ĠFragment Choose Token Dialog Binding . inflate ( in flater , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . list . layout Manager Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLinearLayoutManager ( context ) ĊĊĠĠĠĠĠĠĠ Ġval ĠviewModel Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠViewModel Provider ( parent Fragment Ġas ĠViewModel Store Owner ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get ( Send Funds ViewModel :: class . java ) ĊĠĠĠĠĠĠĠ Ġval Ġtokens To Choose From Ġ= ĠviewModel . ui Logic . get Tokens To Choose From () ĊĠĠĠĠĠĠĠ Ġbinding . list . adapter Ġ= ĠDisplay Token Adapter ( tokens To Choose From ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Choose Token ( tokenId : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠViewModel Provider ( parent Fragment Ġas ĠViewModel Store Owner ). get ( Send Funds ViewModel :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. ui Logic . new Token Ch osen ( tokenId ) ĊĠĠĠĠĠĠĠ Ġdismiss () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġinner Ġclass ĠViewHolder ( binding : ĠFragment Choose Token Dialog Item Binding ) Ġ: ĊĠĠĠĠĠĠĠ ĠRecyclerView . ViewHolder ( binding . root ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġtoken Name : ĠTextView Ġ= Ġbinding . label Token Name ĊĠĠĠĠĠĠĠ Ġval Ġtoken Id : ĠTextView Ġ= Ġbinding . label Token Id ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġinner Ġclass ĠDisplay Token Adapter ( private Ġval Ġitems : ĠList < Wallet Token >) Ġ: ĊĠĠĠĠĠĠĠ ĠRecyclerView . Adapter < ViewHolder >() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFragment Choose Token Dialog Item Binding . inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent . context ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), Ġparent , Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtoken Ġ= Ġitems . get ( position ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . token Name . text Ġ= Ġtoken . name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . tokenId . text Ġ= Ġtoken . tokenId ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . item View . setOnClickListener Ġ{ Ġon Choose Token ( token . tokenId !! ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġitems . size ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠĠĠĠĠ Ġ_ binding Ġ= Ġnull ĊĠĠĠ Ġ} Ċ }