package Ġcom . waves platform . wallet . v 2 . ui . home . wallet . your _ assets Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 7 . widget . Linear LayoutManager Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ import Ġcom . are l lo mobile . mvp . presenter . Inject Presenter Ċ import Ġcom . are l lo mobile . mvp . presenter . Provide Presenter Ċ import Ġcom . ch ad . library . adapter . base . Base Quick Adapter Ċ import Ġcom . jak ew h art on . r xb ind ing 2 . widget . Rx TextView Ċ import Ġcom . mind ork s . edit drawable text . Drawable Position Ċ import Ġcom . mind ork s . edit drawable text . on Drawable ClickListener Ċ import Ġcom . waves platform . wallet . R Ċ import Ġcom . waves platform . wallet . v 2 . data . model . remote . response . Asset Balance Ċ import Ġcom . waves platform . wallet . v 2 . ui . base . view . Base Activity Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġkotlinx . android . synt hetic . main . activity _ your _ assets .* Ċ import Ġkotlinx . android . synt hetic . main . layout _ empty _ data . view .* Ċ import Ġpers . v ictor . ext . g one Ċ import Ġpers . v ictor . ext . inflate Ċ import Ġpers . v ictor . ext . vis iable Ċ import Ġjava . util . concurrent . TimeUnit Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠYour Assets Activity Ġ: ĠBase Activity (), ĠYour Assets View Ġ{ ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġ@ Inject Presenter ĊĠĠĠ Ġlateinit Ġvar Ġpresenter : ĠYour Assets Presenter ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġadapter : ĠYour Assets Adapter ĊĊĠĠĠ Ġ@ Provide Presenter ĊĠĠĠ Ġfun Ġprovide Presenter (): ĠYour Assets Presenter Ġ= Ġpresenter ĊĊĠĠĠ Ġoverride Ġfun Ġconfig Layout Res () Ġ= ĠR . layout . activity _ your _ assets ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Pending Transition ( R . anim . slide _ in _ right , ĠR . anim . null _ animation ) ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Ready ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġset StatusBar Color ( R . color . white ) ĊĊĠĠĠĠĠĠĠ Ġsetup Toolbar ( toolbar _ view , Ġtrue , ĠgetString ( R . string . your _ assets _ toolbar _ title ), ĠR . drawable . ic _ toolbar _ back _ black ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( intent . has Extra ( B UNDLE _ AS SET _ ID )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġasset Id Ġ= Ġintent . getString Extra ( B UNDLE _ AS SET _ ID ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . current Asset Id Ġ= Ġasset Id ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġevent Subscriptions . add ( Rx TextView . text Changes ( edit _ search ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. skip Initial Value () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġedit _ search . set Compound Draw ables With Intr insic Bounds ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . ic _ search _ 2 4 _ basic _ 5 0 0 , Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . ic _ clear _ 2 4 _ basic _ 5 0 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġedit _ search . set Compound Draw ables With Intr insic Bounds ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . ic _ search _ 2 4 _ basic _ 5 0 0 , Ġ 0 , Ġ 0 , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ map Ġit . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. de bounce ( 3 0 0 , ĠTimeUnit . MILLISECONDS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. distinct Until Changed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . filter ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġedit _ search . set Drawable ClickListener ( object Ġ: Ġon Drawable ClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonClick ( target : ĠDrawable Position ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( target ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDrawable Position . RIGHT Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġedit _ search . text Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġre cycle _ assets . layout Manager Ġ= ĠLinearLayoutManager ( this ) ĊĠĠĠĠĠĠĠ Ġre cycle _ assets . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠ Ġadapter . bind To RecyclerView ( recycle _ assets ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( intent . has Extra ( CRYPTO _ CUR RE NCY )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . load Crypto Assets ( presenter . greater Zero Balance , Ġuse W aves Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . load Assets ( presenter . greater Zero Balance ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġadapter . on ItemClickListener Ġ= ĠBase Quick Adapter . On ItemClickListener Ġ{ Ġadapter , Ġview , Ġposition Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġadapter . getItem ( position ) Ġas ĠAsset Balance ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . on ItemClickListener Ġ= ĠBase Quick Adapter . On ItemClickListener Ġ{ Ġ_, Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġdisable Ġclick Ġfor Ġnext Ġitems , Ġwhich Ġuser Ġclick Ġbefore Ġactivity Ġwill Ġfinish ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Result ( Activity . RESULT _ OK , ĠIntent (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( B UNDLE _ AS SET _ ITEM , Ġitem ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Back Pressed () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Assets ( assets : ĠMutable List < Asset Balance >) Ġ{ ĊĠĠĠĠĠĠĠ Ġprogress _ bar . hide () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( assets . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġedit _ search . g one () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġedit _ search . vis iable () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġadapter . all Data Ġ= ĠArrayList ( assets ) ĊĠĠĠĠĠĠĠ Ġadapter . set New Data ( assets ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( adapter . empty View Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . empty View Ġ= Ġget Empty View () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġmenu Inflater . inflate ( R . menu . menu _ your _ assets , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . onCreate Options Menu ( menu ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ sorting Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( intent . has Extra ( CRYPTO _ CUR RE NCY )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . load Crypto Assets (! presenter . greater Zero Balance ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . load Assets (! presenter . greater Zero Balance ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . title Ġ= Ġif Ġ( presenter . greater Zero Balance ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . your _ asset _ activity _ all ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . your _ asset _ activity _ greater _ zero ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Empty View (): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġinf late ( R . layout . layout _ empty _ data ) ĊĠĠĠĠĠĠĠ Ġview . text _ empty . text Ġ= ĠgetString ( R . string . your _ assets _ empty _ state ) ĊĠĠĠĠĠĠĠ Ġreturn Ġview ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġoverride Pending Transition ( R . anim . null _ animation , ĠR . anim . slide _ out _ right ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠB UNDLE _ AS SET _ ITEM Ġ= Ġ" asset " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠB UNDLE _ ADDRESS Ġ= Ġ" address " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠCR YPTO _ CUR RE NCY Ġ= Ġ" crypto _ currency " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠB UNDLE _ AS SET _ ID Ġ= Ġ" asset _ id " ĊĠĠĠ Ġ} Ċ } Ċ