package Ġcom . study . u . ui Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġcom . jak ew h art on . r xb ind ing 4 . widget . text Changes Ċ import Ġcom . study . u . R Ċ import Ġcom . study . u . ext . de bounce Click Ċ import Ġcom . study . u . utilities . error Dialog Ċ import Ġcom . study . u . utilities . hide Keyboard Ċ import Ġcom . study . u . utilities . sn ack Info Ċ import Ġcom . study . u . view model . Asset ViewModel Ċ import Ġio . reactivex . rx java 3 . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . rx java 3 . kotlin . Observable s Ċ import Ġio . reactivex . rx java 3 . kotlin . subscribe By Ċ import Ġkotlinx . android . synt hetic . main . activity _ withdraw .* Ċ Ċ class ĠWith draw Activity Ġ: ĠBase Activity () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġasset ViewModel : ĠAsset ViewModel ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ withdraw ) ĊĊĠĠĠĠĠĠĠ Ġasset ViewModel Ġ= ĠViewModel Provider ( this )[ Asset ViewModel :: class . java ] ĊĊĠĠĠĠĠĠĠ Ġinit Toolbar ( R . string . asset _ withdraw ) ĊĊĠĠĠĠĠĠĠ ĠObservable s . combine Latest ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm TextInput Address . edit Text !!. text Changes (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm TextInput Number . edit Text !!. text Changes () ĊĠĠĠĠĠĠĠ Ġ) Ġ{ Ġu , Ġp Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġu . isNotEmpty () Ġ&& Ġp . isNotEmpty () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe By ( onNext Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwithdraw Button . isEnabled Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġasset ViewModel . subscribe (). observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġasset ViewModel . withdraw ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm TextInput Address . edit Text !!. text . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm TextInput Number . edit Text !!. text . toString (). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġasset ViewModel . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsubscribe Withdraw (). observe ( this @ Withdraw Activity , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcancel Loading Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠæıĲ çİ° æĪĲåĬŁ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsn ack Info ( R . string . asset _ withdraw _ success ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfail (). observe ( this @ Withdraw Activity , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcancel Loading Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . msg Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror Dialog ( it . msg ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror Dialog ( R . string . dialog _ error _ admin ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwithdraw Button . de bounce Click Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Keyboard () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Loading Dialog ( true , ĠR . string . asset _ withdraw _ dialog ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġasset ViewModel . setValue () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ Ċ }