package Ġcom . bt spl us plus . f ow allet Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Port er D uff Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . Motion Event Ċ import Ġandroid . view . View Ċ import Ġandroid . view . input method . Input Method Manager Ċ import Ġandroid . widget .* Ċ import Ġbit shares .* Ċ import Ġcom . bt spl us plus . f ow allet . k line . Trading Pair Ċ import Ġcom . bt spl us plus . f ow allet . utils . Model Utils Ċ import Ġcom . bt spl us plus . f ow allet . utils . Vc Utils Ċ import Ġcom . f ow allet . wallet core . b ts . Bit shares Client Manager Ċ import Ġcom . f ow allet . wallet core . b ts . Chain Object Manager Ċ import Ġcom . f ow allet . wallet core . b ts . Wallet Manager Ċ import Ġorg . json . JSONArray Ċ import Ġorg . json . JSONObject Ċ import Ġjava . math . BigDecimal Ċ import Ġkotlin . math . max Ċ Ċ class ĠActivity Index Coll ateral Ġ: ĠB t sp p Activity () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġ_ de bt Pair : ĠTr ading Pair ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġ_ n Maintenance Coll ateral Ratio : ĠBigDecimal ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġ_ n Curr M ort gage Rate : ĠBigDecimal ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġ_ n Curr Feed Price : ĠBigDecimal ? Ġ= Ġnull ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġå½ĵåīį åĸ Ĥ ä»· ï¼Ī å¦Ĥæŀľ æŁ¥è¯¢ æķ°æį® å¤±è´¥ ï¼Į åĪĻ åı¯èĥ½ ä¸º Ġnil ãĢĤ ï¼ī ĊĊĠĠĠ Ġprivate Ġvar Ġ_ curr Asset Is Prediction market Ġ= Ġfalse ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġå½ĵåīį åĢ Ł æ¬¾ èµĦ äº§ æĺ¯åĲ¦ æĺ¯ é¢Ħ æµĭ å¸Ĥ åľº ï¼Ī é»ĺè®¤ NO ï¼ī ĊĠĠĠ Ġprivate Ġvar Ġ_ b Lock De bt Ġ= Ġtrue ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġæĺ¯åĲ¦ éĶģ å®ļ è´Ł åĢ º åŃĹæ®µ ãĢĤ ĊĊĠĠĠ Ġprivate Ġvar Ġ_ call Order Hash : ĠJSONObject ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġ_ coll ateral Balance : ĠJSONObject ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġ_ fee _ item : ĠJSONObject ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġvar Ġ_ tf _ de bt _ watcher : ĠUtils Digit Text Watcher ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġ_ tf _ coll _ watcher : ĠUtils Digit Text Watcher ? Ġ= Ġnull ĊĊĠĠĠ Ġlateinit Ġvar Ġ_ curve _ slider _ ratio : ĠUtils Curve Slider ĊĠĠĠ Ġlateinit Ġvar Ġ_ curve _ slider _ target _ ratio : ĠUtils Curve Slider ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ éĩį è½½ Ġ- Ġè¿ĶåĽŀ éĶ® æĮī ä¸ĭ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġgo Home () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġ// Ġ Ġ åĪ·æĸ° UI ĊĠĠĠĠĠĠĠ Ġ_ refresh UI (_ is User Log ined (), Ġnull ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġset Auto Layout ContentView ( R . layout . activity _ index _ coll ateral , Ġnavigation Bar Color Ġ= ĠR . color . theme 0 1 _ tab Bar Color ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġ ĠåĪĿå§ĭåĮĸ æķ°æį® ĊĠĠĠĠĠĠĠ Ġval Ġchain Mgr Ġ= ĠChain Object Manager . shared Chain Object Manager () ĊĠĠĠĠĠĠĠ Ġval Ġparameters Ġ= Ġchain Mgr . getDefault Parameters () ĊĠĠĠĠĠĠĠ Ġ_ n Maintenance Coll ateral Ratio Ġ= ĠBigDecimal . valueOf ( parameters . getDouble (" m cr _ default ")) ĊĠĠĠĠĠĠĠ Ġ_ n Curr M ort gage Rate Ġ= ĠBigDecimal . valueOf ( parameters . getDouble (" coll ateral _ ratio _ default ")) ĊĠĠĠĠĠĠĠ Ġ// Ġ ĠåĪĿå§ĭåĮĸ é»ĺè®¤ æĵįä½ľ åĢ º ä»ĵ ĊĠĠĠĠĠĠĠ Ġval Ġde bt _ asset _ list Ġ= ĠSetting Manager . shared Setting Manager (). getApp Main Smart Asset List () ĊĠĠĠĠĠĠĠ Ġassert ( de bt _ asset _ list . length () Ġ> Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġcurr De bt Asset Ġ= Ġchain Mgr . get Asset By Symbol ( de bt _ asset _ list . getString ( 0 )) ĊĠĠĠĠĠĠĠ Ġval Ġcoll ateral Asset Ġ= Ġchain Mgr . get Chain Object ByID ( B TS _ NETWORK _ CORE _ AS SET _ ID ) ĊĠĠĠĠĠĠĠ Ġ_ de bt Pair Ġ= ĠTr ading Pair (). initWith Base Asset ( curr De bt Asset , Ġcoll ateral Asset ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġè®¾ç½® åħ¨ å±ı ( éļĲèĹı çĬ¶æĢģ æłı åĴĮ èĻļæĭŁ å¯¼èĪª æłı ) ĊĠĠĠĠĠĠĠ Ġset FullScreen () ĊĊĠĠĠĠĠĠĠ Ġ// Ġè®¾ç½® åºķ éĥ¨ å¯¼èĪª æłı æł·å¼ı ĊĠĠĠĠĠĠĠ Ġset Bottom Navigation Style ( 1 ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġ Ġ åĪ·æĸ° æķ°æį® ĊĠĠĠĠĠĠĠ Ġ_ refresh UserData () ĊĊĠĠĠĠĠĠĠ Ġ// Ġ Ġ å¸®åĬ© æĮīéĴ® ĊĠĠĠĠĠĠĠ ĠfindViewById < ImageView >( R . id . tip _ link _ curr _ feed ). setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠV c Utils . goto Qa View ( this , Ġ" qa _ feed _ set tlement ", Ġresources . getString ( R . string . k De bt Tip Title Feed And Call Price )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠfindViewById < ImageView >( R . id . tip _ link _ ratio ). setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠV c Utils . goto Qa View ( this , Ġ" qa _ ratio ", Ġresources . getString ( R . string . k De bt Tip Title What Is Ratio )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠfindViewById < ImageView >( R . id . tip _ link _ target _ ratio ). setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠV c Utils . goto Qa View ( this , Ġ" qa _ target _ ratio ", Ġresources . getString ( R . string . k De bt Tip Title What Is Target Ratio )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġ Ġ çĽĳåĲ¬ äºĭä»¶ ĊĠĠĠĠĠĠĠ ĠfindViewById < TextView >( R . id . btn _ reset _ all ). setOnClickListener Ġ{ Ġon Reset CL ick ed () Ġ} ĊĠĠĠĠĠĠĠ ĠfindViewById < TextView >( R . id . btn _ select _ de bt _ asset ). setOnClickListener Ġ{ ĠonSelect De bt Asset Clicked () Ġ} ĊĠĠĠĠĠĠĠ Ġ_ curve _ slider _ ratio Ġ= ĠUtils Curve Slider ( findViewById < Seek Bar >( R . id . slider _ ratio )). init _ with _ range ( 4 0 0 , Ġ 0 . 0 , Ġ 6 . 0 ) ĊĠĠĠĠĠĠĠ Ġ_ curve _ slider _ target _ ratio Ġ= ĠUtils Curve Slider ( findViewById < Seek Bar >( R . id . slider _ target _ ratio )). init _ with _ range ( 4 0 0 , Ġ 0 . 0 , Ġ 4 . 0 ) ĊĠĠĠĠĠĠĠ Ġ_ curve _ slider _ ratio . on _ value _ changed Ġ{ Ġon Slider Ratio ValueChanged ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġ_ curve _ slider _ target _ ratio . on _ value _ changed Ġ{ Ġon Slider Target Ratio ValueChanged ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġ// Ġ ĠåĪĿå§ĭåĮĸ æ»ĳ åĬ¨ æĿ¡ é¢ľèī² åĴĮ åĽ¾ æłĩ ĊĠĠĠĠĠĠĠ ĠfindViewById < Seek Bar >( R . id . slider _ ratio ). let Ġ{ Ġseek Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġseek . progress Drawable . setColor Filter ( resources . getColor ( R . color . theme 0 1 _ textColor Highlight ), ĠPort er D uff . Mode . SRC _ AT OP ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠfindViewById < Seek Bar >( R . id . slider _ target _ ratio ). let Ġ{ Ġseek Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġseek . progress Drawable . setColor Filter ( resources . getColor ( R . color . theme 0 1 _ textColor Highlight ), ĠPort er D uff . Mode . SRC _ AT OP ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġvar Ġtf Ġ= ĠfindViewById < EditText >( R . id . tf _ de bt ) ĊĠĠĠĠĠĠĠ Ġ_ tf _ de bt _ watcher Ġ= ĠUtils Digit Text Watcher (). set _ tf ( tf ). set _ precision (_ de bt Pair !! ._ base Precision ) ĊĠĠĠĠĠĠĠ Ġtf . add TextChanged Listener (_ tf _ de bt _ watcher !! ) ĊĠĠĠĠĠĠĠ Ġ_ tf _ de bt _ watcher !!. on _ value _ changed (:: on De bt Amount Changed ) ĊĊĠĠĠĠĠĠĠ Ġtf Ġ= ĠfindViewById < EditText >( R . id . tf _ coll ) ĊĠĠĠĠĠĠĠ Ġ_ tf _ coll _ watcher Ġ= ĠUtils Digit Text Watcher (). set _ tf ( tf ). set _ precision (_ de bt Pair !! ._ quote Precision ) ĊĠĠĠĠĠĠĠ Ġtf . add TextChanged Listener (_ tf _ coll _ watcher !! ) ĊĠĠĠĠĠĠĠ Ġ_ tf _ coll _ watcher !!. on _ value _ changed (:: on Coll Amount Changed ) ĊĠĠĠĠĠĠĠ Ġ// Ġ ĠRE MARK ï¼ļ éĩį åĨĻ æķ°éĩı è¾ĵåħ¥ æ¡Ĩ çļĦ touch äºĭä»¶ ï¼Į åľ¨ æ²¡æľī è¾ĵåħ¥ åĢ Ł æ¬¾ éĩĳé¢Ŀ çļĦ åīį æıĲ ä¸ĭ ï¼Į ä¸į å¼¹ åĩº éĶ® çĽĺ ï¼Ī çĽ´æİ¥ æ¶Ī èĢĹ æİī äºĭä»¶ )ãĢĤ ĊĠĠĠĠĠĠĠ Ġtf . setOn Touch Listener Ġ{ Ġ_, Ġevent Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( event . action Ġ== ĠMotion Event . ACTION _ DOWN ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(!_ curr Asset Is Prediction market ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġn _ de bt Ġ= ĠUtils . aux GetString Decimal Number Value (_ tf _ de bt _ watcher !!. get _ tf _ string ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( n _ de bt Ġ<= ĠBigDecimal . ZERO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( resources . getString ( R . string . k De bt Tip Please Input De bt Value First )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Input () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ setOn Touch Listener Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ setOn Touch Listener Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġ Ġ æľĢå¤§ è¿ĺ æ¬¾ ãĢģ åħ¨éĥ¨ æĬ µ æĬ ¼ ĊĠĠĠĠĠĠĠ ĠfindViewById < TextView >( R . id . btn _ pay _ max ). setOnClickListener Ġ{ Ġon De bt Tail er Button Clicked () Ġ} ĊĠĠĠĠĠĠĠ ĠfindViewById < TextView >( R . id . btn _ de bt _ max ). setOnClickListener Ġ{ Ġon Coll Tail er Button Clicked () Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġ Ġ çĻ»å½ķ ãĢģ è°ĥæķ´ åĢ º ä»ĵ ĊĠĠĠĠĠĠĠ ĠfindViewById < Button >( R . id . btn _ submit _ core ). setOnClickListener Ġ{ ĠonSubmit Core Clicked () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ äºĭä»¶ Ġ- ĠæıĲ äº¤ æĮīéĴ® ï¼Ī çĻ»å½ķ / è°ĥæķ´ åĢ º ä»ĵ ï¼ī ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun ĠonSubmit Core Clicked () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(_ is User Log ined ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ on De bt Action Clicked () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ ĠRE MARK ï¼ļ è¿ĻéĩĮ ä¸į çĶ¨ ĠGuard Wallet Exist ï¼Į ä»ħ è·³è½¬ çĻ»å½ķ çķĮéĿ¢ ï¼Į çĻ»å½ķ åĲİ åģľ çķĻ åľ¨ äº¤æĺĵ çķĮéĿ¢ ï¼Į èĢĮä¸įæĺ¯ çĻ»å½ķ åĲİ æī§è¡Į ä¹° åįĸ æĵįä½ľ ãĢĤ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġå¦Ĥæŀľ å½ĵåīį æĮīéĴ® æĺ¾ç¤º çļĦæĺ¯ ä¹° åįĸ ï¼Į éĤ£ä¹Ī åºĶè¯¥ ç»§ç»Ń å¤ĦçĲĨ ï¼Į ä½Ĩ è¿ĻéĩĮ æĮīéĴ® æĺ¾ç¤º çļĦ å°±æĺ¯ çĻ»å½ķ ï¼Į éĤ£ä¹Ī ä»ħ æī§è¡Į çĻ»å½ķ å¤ĦçĲĨ ãĢĤ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgo To ( Activity Login :: class . java , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæī§è¡Į è°ĥæķ´ åĢ º ä»ĵ æĵįä½ľ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġ_ on De bt Action Clicked () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbit asset _ data Ġ= ĠChain Object Manager . shared Chain Object Manager (). get Chain Object ByID Safe (_ de bt Pair !! ._ base Asset . getString (" bit asset _ data _ id ")) ĊĠĠĠĠĠĠĠ Ġif Ġ( bit asset _ data Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( resources . getString ( R . string . k De bt Tip Network Error Please Refresh )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( Model Utils . asset Has Global Set tle ( bit asset _ data )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( resources . getString ( R . string . k De bt Tip Asset Has Global Set tled )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// Ġ Ġ éĿŀ é¢Ħ æµĭ å¸Ĥ åľº å¹¶ä¸Ķ æ²¡æľī åĸ Ĥ ä»· ĊĠĠĠĠĠĠĠ Ġif Ġ(!_ curr Asset Is Prediction market Ġ&& Ġ_ n Curr Feed Price Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( resources . getString ( R . string . k De bt Tip Asset No Valid Feed Data )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġ Ġ--- Ġæ£Ģ æŁ¥ åıĤæķ° æľīæķĪ æĢ§ Ġ--- ĊĠĠĠĠĠĠĠ Ġval Ġzero Ġ= ĠBigDecimal . ZERO ĊĊĠĠĠĠĠĠĠ Ġval Ġn _ new _ de bt Ġ= ĠUtils . aux GetString Decimal Number Value (_ tf _ de bt _ watcher !!. get _ tf _ string ()) ĊĠĠĠĠĠĠĠ Ġval Ġn _ new _ coll Ġ= ĠUtils . aux GetString Decimal Number Value (_ tf _ coll _ watcher !!. get _ tf _ string ()) ĊĊĠĠĠĠĠĠĠ Ġvar Ġn _ old _ de bt Ġ= Ġzero ĊĠĠĠĠĠĠĠ Ġvar Ġn _ old _ coll Ġ= Ġzero ĊĊĠĠĠĠĠĠĠ Ġval Ġde bt _ call order Ġ= Ġ_ get Call Order () ĊĠĠĠĠĠĠĠ Ġif Ġ( de bt _ call order Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġn _ old _ de bt Ġ= Ġbig Decimal from Amount ( de bt _ call order . getString (" de bt "), Ġ_ de bt Pair !! ._ base Precision ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġn _ old _ coll Ġ= Ġbig Decimal from Amount ( de bt _ call order . getString (" coll ateral "), Ġ_ de bt Pair !! ._ quote Precision ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġn _ delta _ coll Ġ= Ġn _ new _ coll . subtract ( n _ old _ coll ) ĊĠĠĠĠĠĠĠ Ġval Ġn _ delta _ de bt Ġ= Ġn _ new _ de bt . subtract ( n _ old _ de bt ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġ ĠåıĤæķ° æĹł æķĪ ï¼Ī ä¸¤ä¸ª éĥ½ ä¸º 0 ï¼Į æ²¡æľī åıĺåĮĸ ãĢĤ ï¼ī ĊĠĠĠĠĠĠĠ Ġif Ġ( n _ delta _ coll . compareTo ( zero ) Ġ== Ġ 0 Ġ&& Ġn _ delta _ de bt . compareTo ( zero ) Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( resources . getString ( R . string . k De bt Tip Value And Amount Not Change )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġ ĠæĬ µ æĬ ¼ çī© ä¸į è¶³ ĊĠĠĠĠĠĠĠ Ġval Ġn _ balance _ coll Ġ= Ġbig Decimal from Amount (_ coll ateral Balance !!. getString (" amount "), Ġ_ de bt Pair !! ._ quote Precision ) ĊĠĠĠĠĠĠĠ Ġval Ġn _ rest _ coll Ġ= Ġn _ balance _ coll . subtract ( n _ delta _ coll ) ĊĠĠĠĠĠĠĠ Ġif Ġ( n _ rest _ coll Ġ< Ġzero ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( resources . getString ( R . string . k De bt Tip Coll Not En ough )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġ Ġåı¯ çĶ¨ ä½Ļ é¢Ŀ ä¸į è¶³ ĊĠĠĠĠĠĠĠ Ġval Ġn _ balance _ de bt Ġ= Ġ_ get De bt Balance () ĊĠĠĠĠĠĠĠ Ġval Ġn _ rest _ de bt Ġ= Ġn _ balance _ de bt . add ( n _ delta _ de bt ) ĊĠĠĠĠĠĠĠ Ġif Ġ( n _ rest _ de bt Ġ< Ġzero ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( String . format ( resources . getString ( R . string . k De bt Tip Available Not En ough ), Ġ_ de bt Pair !! ._ base Asset . getString (" symbol "))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġ Ġ éĿŀ é¢Ħ æµĭ å¸Ĥ åľº ï¼ļ åĲĦç§į æĥħåĨµä¸ĭ çļĦ æĬ µ æĬ ¼ çİĩ åĪ¤æĸŃ ĊĠĠĠĠĠĠĠ Ġif Ġ(!_ curr Asset Is Prediction market ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( n _ old _ de bt Ġ> Ġzero ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( n _ new _ de bt Ġ> Ġzero ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ ĠæĽ´æĸ° åĢ º ä»ĵ ï¼ļ æĸ° è´Ł åĢ º åĴĮ æĹ§ è´Ł åĢ º éĥ½ åŃĺåľ¨ ãĢĤ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġn _ new _ ratio Ġ= Ġ_ calc Coll Rate ( n _ new _ de bt , Ġn _ new _ coll , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġn _ old _ ratio Ġ= Ġ_ calc Coll Rate ( n _ old _ de bt , Ġn _ old _ coll , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( n _ old _ ratio Ġ< Ġ_ n Maintenance Coll ateral Ratio !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġ å·²ç»ı å¤Ħ äºİ çĪ Ĩ ä»ĵ ä¸Ń ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ ĠãĢĲ BS IP 3 0 ãĢĳ åľ¨ çĪ Ĩ ä»ĵ çĬ¶æĢģ åı¯ä»¥ ä¸Ĭ è°ĥ æĬ µ æĬ ¼ çİĩ ï¼Į ä¸į åĨį å¼º åĪ¶ è¦ģæ±Ĥ å¿ħé¡» ä¸Ĭ è°ĥ åĪ° å¤ļå°ĳ ï¼Į ä½Ĩ æĬ µ æĬ ¼ çİĩ ä¸į è¶³ æľĢ ä½İ è¦ģæ±Ĥ æĹ¶ ä¸įèĥ½ å¢ŀåĬł åĢ Ł æ¬¾ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( n _ new _ ratio Ġ< Ġ_ n Maintenance Coll ateral Ratio !! Ġ&& Ġn _ delta _ de bt Ġ> Ġzero ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( String . format ( resources . getString ( R . string . k De bt Tip Ratio Too Low ), Ġ_ n Maintenance Coll ateral Ratio !!. to Plain String ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( n _ new _ ratio Ġ<= Ġn _ old _ ratio ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( resources . getString ( R . string . k De bt Tip Cannot Adjust More Lower Ratio )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġ å° ļ æľª çĪ Ĩ ä»ĵ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( n _ new _ ratio Ġ< Ġ_ n Maintenance Coll ateral Ratio !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( String . format ( resources . getString ( R . string . k De bt Tip Coll Ratio Cannot LessThan M CR ), Ġ_ n Maintenance Coll ateral Ratio !!. to Plain String ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġ åħ³éĹŃ åĢ º ä»ĵ ï¼ļ æĹ§ è´Ł åĢ º åŃĺåľ¨ ï¼Į æĸ° è´Ł åĢ º ä¸įåŃĺåľ¨ ãĢĤ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġ æĸ° å¼Ģ åĢ º ä»ĵ ï¼ļ æ²¡æľī æĹ§ çļĦ è´Ł åĢ º ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( n _ new _ de bt Ġ<= Ġzero ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( resources . getString ( R . string . k De bt Tip Please Input De bt Value First )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġn _ new _ ratio Ġ= Ġ_ calc Coll Rate ( n _ new _ de bt , Ġn _ new _ coll , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( n _ new _ ratio Ġ< Ġ_ n Maintenance Coll ateral Ratio !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( String . format ( resources . getString ( R . string . k De bt Tip Coll Ratio Cannot LessThan M CR ), Ġ_ n Maintenance Coll ateral Ratio !!. to Plain String ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ(!_ fee _ item !!. getBoolean (" s ufficient ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( resources . getString ( R . string . k Tips Tx Fee Not En ough )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġ Ġèİ·åıĸ çĽ®æłĩ æĬ µ æĬ ¼ çİĩ ï¼Ī å°ı äºİ M CR æĹ¶ åıĸæ¶Ī è®¾ç½® ï¼ī ĊĠĠĠĠĠĠĠ Ġvar Ġn _ target _ ratio : ĠBigDecimal ? Ġ= ĠBigDecimal ( String . format ("% . 2 f ", Ġ_ curve _ slider _ target _ ratio . get _ value (). toFloat ()). fix Comma ()) ĊĠĠĠĠĠĠĠ Ġif Ġ( n _ target _ ratio !!. compareTo (_ n Maintenance Coll ateral Ratio ) Ġ< Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġn _ target _ ratio Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġ Ġ--- Ġæ£Ģ æµĭ åĲĪ æ³ķ Ġæī§è¡Į è¯·æ±Ĥ Ġ--- ĊĠĠĠĠĠĠĠ Ġguard Wallet Unlock ed ( false ) Ġ{ Ġun locked Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( unlocked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ process De bt Action Core ( n _ delta _ coll , Ġn _ delta _ de bt , Ġn _ target _ ratio ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġ_ process De bt Action Core ( n _ delta _ coll : ĠBigDecimal , Ġn _ delta _ de bt : ĠBigDecimal , Ġn _ target _ ratio : ĠBigDecimal ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġop account Ġ= ĠWallet Manager . shared Wallet Manager (). get Wallet Account Info () !!. getJSONObject (" account ") ĊĠĠĠĠĠĠĠ Ġval Ġfunding _ account Ġ= Ġop account . getString (" id ") ĊĊĠĠĠĠĠĠĠ Ġ// Ġ Ġ æŀĦéĢł OP ĊĠĠĠĠĠĠĠ Ġval Ġcoll Ġ= Ġn _ delta _ coll . scale By Power Of Ten (_ de bt Pair !! ._ quote Precision ). to Price Amount String (_ de bt Pair !! ._ quote Precision ) ĊĠĠĠĠĠĠĠ Ġval Ġde bt Ġ= Ġn _ delta _ de bt . scale By Power Of Ten (_ de bt Pair !! ._ base Precision ). to Price Amount String (_ de bt Pair !! ._ base Precision ) ĊĠĠĠĠĠĠĠ Ġvar Ġtarget _ ratio Ġ= Ġ 0 L ĊĠĠĠĠĠĠĠ Ġif Ġ( n _ target _ ratio Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget _ ratio Ġ= Ġn _ target _ ratio . scale By Power Of Ten ( 3 ). to Price Amount String ( 3 ). to Long () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġop Ġ= ĠjsonObject from K VS (" fee ", ĠjsonObject from K VS (" amount ", Ġ 0 , Ġ" asset _ id ", Ġ_ fee _ item !!. getString (" fee _ asset _ id ")), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" fund ing _ account ", Ġfunding _ account , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" delta _ coll ateral ", ĠjsonObject from K VS (" amount ", Ġcoll , Ġ" asset _ id ", Ġ_ de bt Pair !! ._ quote Id ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" delta _ de bt ", ĠjsonObject from K VS (" amount ", Ġde bt , Ġ" asset _ id ", Ġ_ de bt Pair !! ._ base Id ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" extensions ", Ġif Ġ( n _ target _ ratio Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠjsonObject from K VS (" target _ coll ateral _ ratio ", Ġtarget _ ratio ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJSONObject () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġ Ġ ç¡® ä¿Ŀ æľī æĿĥéĻĲ åıĳ èµ· æĻ®éĢļ äº¤æĺĵ ï¼Į åĲ¦åĪĻ ä½ľä¸º æıĲ æ¡Ī äº¤æĺĵ å¤ĦçĲĨ ãĢĤ ĊĠĠĠĠĠĠĠ ĠGuard Proposal Or Normal Transaction ( E Bit shares Operations . e bo _ call _ order _ update , Ġfalse , Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġop , Ġop account ) Ġ{ Ġis Proposal , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert (! is Proposal ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġè¯·æ±Ĥ ç½ĳç»ľ å¹¿ æĴŃ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmask Ġ= ĠView Mask ( R . string . k Tips Be Request ing . xml string ( this ), Ġthis ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmask . show () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBit shares Client Manager . shared Bit shares Client Manager (). call Order Update ( op ). then Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠChain Object Manager . shared Chain Object Manager (). query Full Account Info ( fund ing _ account ). then Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmask . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġ åĪ·æĸ° UI ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ refresh UI ( true , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( resources . getString ( R . string . k De bt Tip Tx Update Position Full OK )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġ[ ç»Łè®¡ ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbt sp p Log Custom (" tx Call Order Update Full OK ", ĠjsonObject from K VS (" account ", Ġfunding _ account , Ġ" de bt _ asset ", Ġ_ de bt Pair !! ._ base Asset . getString (" symbol "))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ then Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. catch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmask . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( resources . getString ( R . string . k De bt Tip Tx Update Position OK )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġ[ ç»Łè®¡ ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbt sp p Log Custom (" tx Call Order Update OK ", ĠjsonObject from K VS (" account ", Ġfunding _ account , Ġ" de bt _ asset ", Ġ_ de bt Pair !! ._ base Asset . getString (" symbol "))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ then Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. catch Ġ{ Ġerr Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmask . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Graph ene Error ( err ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġ[ ç»Łè®¡ ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbt sp p Log Custom (" tx Call Order Update Failed ", ĠjsonObject from K VS (" account ", Ġfunding _ account , Ġ" de bt _ asset ", Ġ_ de bt Pair !! ._ base Asset . getString (" symbol "))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ Ġ( private ) Ġ äºĭä»¶ Ġ- Ġ éĶģ Ġor Ġ è§£ éĶģ æĮīéĴ® çĤ¹åĩ» ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġon Lock Clicked () Ġ{ ĊĠĠĠĠĠĠĠ Ġset New Lock Status (! _ b Lock De bt ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset New Lock Status ( b Lock De bt : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ ĠfindViewById < ImageView >( R . id . img _ icon _ lock _ de bt ). let Ġ{ Ġicon _ lock _ de bt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠfindViewById < ImageView >( R . id . img _ icon _ lock _ ratio ). let Ġ{ Ġicon _ lock _ ratio Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(_ curr Asset Is Prediction market ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġ é¢Ħ æµĭ å¸Ĥ åľº ä¸į çĶ¨ éĶģ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon _ lock _ de bt . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon _ lock _ ratio . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġ åıĸæ¶Ī äºĭä»¶ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon _ lock _ de bt . setOnClickListener ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon _ lock _ ratio . setOnClickListener ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġ ä¿ĿåŃĺ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ b Lock De bt Ġ= Ġb Lock De bt ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(_ b Lock De bt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon _ lock _ de bt . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon _ lock _ de bt . setImage Drawable ( resources . get Drawable ( R . drawable . icon _ locked )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon _ lock _ de bt . setColor Filter ( resources . getColor ( R . color . theme 0 1 _ textColor Normal )) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon _ lock _ ratio . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon _ lock _ ratio . setImage Drawable ( resources . get Drawable ( R . drawable . icon _ unlocked )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon _ lock _ ratio . setColor Filter ( resources . getColor ( R . color . theme 0 1 _ textColor Highlight )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon _ lock _ de bt . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon _ lock _ de bt . setImage Drawable ( resources . get Drawable ( R . drawable . icon _ unlocked )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon _ lock _ de bt . setColor Filter ( resources . getColor ( R . color . theme 0 1 _ textColor Highlight )) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon _ lock _ ratio . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon _ lock _ ratio . setImage Drawable ( resources . get Drawable ( R . drawable . icon _ locked )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon _ lock _ ratio . setColor Filter ( resources . getColor ( R . color . theme 0 1 _ textColor Normal )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġ ç»ĳå®ļ äºĭä»¶ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! icon _ lock _ de bt . has OnClick Listeners ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon _ lock _ de bt . setOnClickListener Ġ{ Ġon Lock Clicked () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! icon _ lock _ ratio . has OnClick Listeners ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon _ lock _ ratio . setOnClickListener Ġ{ Ġon Lock Clicked () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ let ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ let ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ Ġ åħ³éĹŃ éĶ® çĽĺ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġend Input () Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ tf _ de bt _ watcher ?. end Input () ĊĠĠĠĠĠĠĠ Ġ_ tf _ coll _ watcher ?. end Input () ĊĠĠĠĠĠĠĠ Ġval Ġimm Ġ= Ġget System Service ( Context . INPUT _ METHOD _ SERVICE ) Ġas ? ĠInput Method Manager ĊĠĠĠĠĠĠĠ Ġimm ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . hide Soft Input From Window ( findViewById < EditText >( R . id . tf _ coll ). window Token , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . hide Soft Input From Window ( findViewById < EditText >( R . id . tf _ de bt ). window Token , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ let ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ äºĭä»¶ Ġ- Ġ è¿ĺ æ¬¾ æĮīéĴ® çĤ¹åĩ» ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġon De bt Tail er Button Clicked () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ Ġ åħ³éĹŃ éĶ® çĽĺ ĊĠĠĠĠĠĠĠ Ġend Input () ĊĊĠĠĠĠĠĠĠ Ġ// Ġ Ġ è®¡ç®Ĺ æī§è¡Į æľĢå¤§ è¿ĺ æ¬¾ ä¹ĭåĲİ ï¼Į åī © ä½Ļ çļĦ è´Ł åĢ º ä¿¡æģ¯ ãĢĤ ĊĠĠĠĠĠĠĠ Ġvar Ġnew _ de bt : ĠBigDecimal Ġ= ĠBigDecimal . ZERO ĊĠĠĠĠĠĠĠ Ġval Ġde bt _ call order Ġ= Ġ_ get Call Order () ĊĠĠĠĠĠĠĠ Ġif Ġ( de bt _ call order Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġn _ curr _ de bt Ġ= Ġbig Decimal from Amount ( de bt _ call order . getString (" de bt "), Ġ_ de bt Pair !! ._ base Precision ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbalance Ġ= Ġ_ get De bt Balance () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( balance . compareTo ( n _ curr _ de bt ) Ġ< Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew _ de bt Ġ= Ġn _ curr _ de bt . subtract ( balance ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġ Ġ èµĭåĢ¼ ĊĠĠĠĠĠĠĠ Ġvar Ġnew _ str Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġif Ġ( new _ de bt . compareTo ( BigDecimal . ZERO ) Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew _ str Ġ= Ġnew _ de bt . to Plain String () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ_ tf _ de bt _ watcher ?. set _ new _ text ( new _ str ) ĊĠĠĠĠĠĠĠ Ġon De bt Amount Changed ( new _ str ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ äºĭä»¶ Ġ- Ġ åħ¨éĥ¨ æĮīéĴ® çĤ¹åĩ» ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġon Coll Tail er Button Clicked () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ Ġ åħ³éĹŃ éĶ® çĽĺ ĊĠĠĠĠĠĠĠ Ġend Input () ĊĊĠĠĠĠĠĠĠ Ġif Ġ(!_ curr Asset Is Prediction market ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(_ b Lock De bt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġn _ de bt Ġ= ĠUtils . aux GetString Decimal Number Value (_ tf _ de bt _ watcher !!. get _ tf _ string ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( n _ de bt Ġ<= ĠBigDecimal . ZERO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( resources . getString ( R . string . k De bt Tip Please Input De bt Value First )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(_ n Curr M ort gage Rate Ġ== Ġnull Ġ|| Ġ_ n Curr M ort gage Rate !! Ġ<= ĠBigDecimal . ZERO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( resources . getString ( R . string . k De bt Tip Please Adjust Ratio First )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġn _ total Ġ= Ġ_ getTotal Coll ateral Number () ĊĠĠĠĠĠĠĠ Ġvar Ġnew _ str Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġif Ġ( n _ total . compareTo ( BigDecimal . ZERO ) Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew _ str Ġ= Ġn _ total . to Plain String () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ_ tf _ coll _ watcher ?. set _ new _ text ( new _ str ) ĊĠĠĠĠĠĠĠ Ġon Coll Amount Changed Core ( new _ str , Ġif Ġ(_ curr Asset Is Prediction market ) Ġfalse Ġelse Ġ_ b Lock De bt ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ( private ) Ġ è¾ĵåħ¥ æ¡Ĩ åĢ¼ åıĺåĮĸ Ġ- Ġ åĢ Ł æ¬¾ æķ°éĩı ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġon De bt Amount Changed ( str : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(!_ curr Asset Is Prediction market Ġ&& Ġ_ n Curr Feed Price Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġn _ de bt Ġ= ĠUtils . aux GetString Decimal Number Value ( str ) ĊĠĠĠĠĠĠĠ Ġval Ġn _ coll Ġ= Ġ_ calc Coll Number ( n _ de bt , Ġ_ n Curr M ort gage Rate !! ) ĊĠĠĠĠĠĠĠ Ġ_ refresh UI _ de bt _ available ( n _ de bt , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ_ refresh UI _ coll _ available ( n _ coll , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ_ refresh UI _ Set tlement Trigger Price () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ( private ) Ġ è¾ĵåħ¥ æ¡Ĩ åĢ¼ åıĺåĮĸ Ġ- ĠæĬ µ æĬ ¼ çī© æķ°éĩı ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġon Coll Amount Changed ( str : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġon Coll Amount Changed Core ( str , Ġif Ġ(_ curr Asset Is Prediction market ) Ġfalse Ġelse Ġ_ b Lock De bt ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ Ġ( private ) Ġ è¾ĵåħ¥ æ¡Ĩ åĢ¼ åıĺåĮĸ Ġ- ĠæĬ µ æĬ ¼ çī© æķ°éĩı Ġ æł¸å¿ĥ éĢ»è¾ĳ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġon Coll Amount Changed Core ( str : ĠString , Ġaffect _ mort gage _ rate _ changed : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(!_ curr Asset Is Prediction market Ġ&& Ġ_ n Curr Feed Price Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġn _ coll Ġ= ĠUtils . aux GetString Decimal Number Value ( str ) ĊĠĠĠĠĠĠĠ Ġif Ġ( a ffect _ mort gage _ rate _ changed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ ĠæĬ µ æĬ ¼ çī© åıĺåĮĸ Ġ- Ġ å½±åĵį æĬ µ æĬ ¼ çİĩ åıĺåĮĸ ï¼Ī è´Ł åĢ º ä¸į åıĺ ï¼ī ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġ è¿ĻéĩĮ æīĭåĬ¨ è¾ĵåħ¥ æĬ µ æĬ ¼ çī© or çĤ¹åĩ» åħ¨éĥ¨ æĮīéĴ® å¯¼èĩ´ åıĺåĮĸ ï¼Į éĥ½ å·²ç»ı ç¡® ä¿Ŀ äºĨ de bt ä¸įèĥ½ ä¸º 0 ãĢĤ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġn _ de bt Ġ= ĠUtils . aux GetString Decimal Number Value (_ tf _ de bt _ watcher !!. get _ tf _ string ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( n _ de bt Ġ<= ĠBigDecimal . ZERO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ n Curr M ort gage Rate Ġ= Ġ_ calc Coll Rate ( n _ de bt , Ġn _ coll , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ refresh UI _ coll _ available ( n _ coll , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ refresh UI _ de bt _ available ( n _ de bt , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ refresh UI _ ratio ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ refresh UI _ Set tlement Trigger Price () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ ĠæĬ µ æĬ ¼ çī© åıĺåĮĸ Ġ- Ġ å½±åĵį åĢ º åĬ¡ åıĺåĮĸ ï¼Ī æĬ µ æĬ ¼ çİĩ ä¸į åıĺ ï¼ī ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġn _ de bt Ġ= Ġ_ calc De bt Number ( n _ coll , Ġ_ n Curr M ort gage Rate !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ refresh UI _ coll _ available ( n _ coll , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ refresh UI _ de bt _ available ( n _ de bt , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ refresh UI _ Set tlement Trigger Price () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæ » ĳ åĬ¨ æĿ¡ åĢ¼ åıĺåĮĸ ï¼ļ æĬ µ æĬ ¼ çİĩ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġon Slider Ratio ValueChanged ( value : ĠDouble ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ ĠæĬ µ æĬ ¼ çİĩ æ»ĳ åĬ¨ æĿ¡ æĭ ĸ åĬ¨ ĊĠĠĠĠĠĠĠ Ġ_ n Curr M ort gage Rate Ġ= ĠBigDecimal ( String . format ("% . 2 f ", Ġvalue . toFloat ()). fix Comma ()) ĊĠĠĠĠĠĠĠ Ġ_ refresh UI _ ratio ( false ) ĊĠĠĠĠĠĠĠ Ġif Ġ(_ n Curr Feed Price Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġn _ de bt Ġ= ĠUtils . aux GetString Decimal Number Value (_ tf _ de bt _ watcher !!. get _ tf _ string ()) ĊĠĠĠĠĠĠĠ Ġval Ġn _ coll Ġ= Ġ_ calc Coll Number ( n _ de bt , Ġ_ n Curr M ort gage Rate !! ) ĊĠĠĠĠĠĠĠ Ġ_ refresh UI _ coll _ available ( n _ coll , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ_ refresh UI _ Set tlement Trigger Price () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæ » ĳ åĬ¨ æĿ¡ åĢ¼ åıĺåĮĸ ï¼ļ çĽ®æłĩ æĬ µ æĬ ¼ çİĩ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġon Slider Target Ratio ValueChanged ( value : ĠDouble ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ Ġ çĽ®æłĩ æĬ µ æĬ ¼ çİĩ æ»ĳ åĬ¨ æĿ¡ æĭ ĸ åĬ¨ ĊĠĠĠĠĠĠĠ Ġval Ġn Ġ= ĠBigDecimal ( String . format ("% . 2 f ", Ġvalue . toFloat ()). fix Comma ()) ĊĠĠĠĠĠĠĠ Ġ_ refresh UI _ target _ ratio ( n , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ éĢīæĭ© åĢ Ł è´ · èµĦ äº§ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun ĠonSelect De bt Asset Clicked () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġself Ġ= Ġthis ĊĊĠĠĠĠĠĠĠ Ġ// Ġ Ġèİ·åıĸ éħįç½® çļĦ é»ĺè®¤ åĪĹè¡¨ ĊĠĠĠĠĠĠĠ Ġval Ġchain Mgr Ġ= ĠChain Object Manager . shared Chain Object Manager () ĊĠĠĠĠĠĠĠ Ġval Ġasset _ list Ġ= ĠJSONArray () ĊĠĠĠĠĠĠĠ ĠSetting Manager . shared Setting Manager (). getApp Main Smart Asset List (). forEach < String > Ġ{ Ġsymbol Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġasset _ list . put ( chain Mgr . get Asset By Symbol ( symbol !! )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġ Ġæ·»åĬł èĩªå®ļä¹ī éĢīé¡¹ ĊĠĠĠĠĠĠĠ Ġasset _ list . put ( JSONObject (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput (" symbol ", Ġself . resources . getString ( R . string . k Vc Asset Mgr CellValue Smart Backing Asset Custom )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput (" is _ custom ", Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġ// Ġ Ġ éĢīæĭ© åĪĹè¡¨ ĊĠĠĠĠĠĠĠ ĠView Selector . show ( this , Ġresources . getString ( R . string . k De bt Tip Select De bt Asset ), Ġasset _ list , Ġ" symbol ") Ġ{ Ġindex : ĠInt , Ġresult : ĠString Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġselect _ item Ġ= Ġasset _ list . getJSONObject ( index ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( select _ item . isTrue (" is _ custom ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġ èĩªå®ļä¹ī æĲľç´¢ åĢ Ł è´ · èµĦ äº§ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTemp Manager . shared Temp Manager (). set _ query _ account _ callback Ġ{ Ġlast _ activity , Ġasset _ info Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlast _ activity . goTo ( Activity Index Coll ateral :: class . java , Ġtrue , Ġback Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprocess Select New De bt Asset ( asset _ info ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgo To ( Activity Account Query Base :: class . java , Ġtrue , Ġargs Ġ= ĠJSONObject (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" k Search Type ", ĠEN etwork Search Type . enst Asset Smart ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" k Title ", Ġself . resources . getString ( R . string . k Vc Title Search Assets )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġä»İ åĪĹè¡¨ ä¸Ń éĢīæĭ© ç»ĵæŀľ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprocess Select New De bt Asset ( select _ item ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġprocess Select New De bt Asset ( new De bt Asset : ĠJSONObject ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠĠ Ġ éĢīæĭ© çļĦ å°±æĺ¯ å½ĵåīį èµĦ äº§ ï¼Į çĽ´æİ¥ è¿ĶåĽŀ ãĢĤ ĊĠĠĠĠĠĠĠ Ġif Ġ( new De bt Asset . getString (" id ") Ġ== Ġ_ de bt Pair !! ._ base Asset . getString (" id ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġ ĠæĽ´æĸ° ç¼ĵåŃĺ ĊĠĠĠĠĠĠĠ Ġval Ġchain Mgr Ġ= ĠChain Object Manager . shared Chain Object Manager () ĊĠĠĠĠĠĠĠ Ġchain Mgr . append Asset Core ( new De bt Asset ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġ ĠæŁ¥è¯¢ åĸ Ĥ ä»· ãĢģ æŁ¥è¯¢ èĥĮ ä¹¦ èµĦ äº§ ä¿¡æģ¯ ĊĠĠĠĠĠĠĠ Ġval Ġp 1 Ġ= Ġ_ async Query Feed Price ( new De bt Asset ) ĊĠĠĠĠĠĠĠ Ġval Ġp 2 Ġ= Ġchain Mgr . query Backing Asset ( new De bt Asset ) ĊĊĠĠĠĠĠĠĠ ĠV c Utils . simple Request ( this , ĠPromise . all ( p 1 , Ġp 2 )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata _ array Ġ= Ġit Ġas ĠJSONArray ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfeed _ data Ġ= Ġdata _ array . getJSONObject ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbacking _ asset Ġ= Ġdata _ array . getJSONObject ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ de bt Pair Ġ= ĠTr ading Pair (). initWith Base Asset ( new De bt Asset , Ġbacking _ asset ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġ åĪĩæį¢ äºĨ èµĦ äº§ ï¼Ī æĽ´æĸ° è¾ĵåħ¥ æ¡Ĩ åı¯ è¾ĵåħ¥ çļĦ ç²¾ åº¦ ä¿¡æģ¯ ï¼ī ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ tf _ de bt _ watcher ?. set _ precision (_ de bt Pair !! ._ base Precision )?. set _ new _ text ("") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ tf _ coll _ watcher ?. set _ precision (_ de bt Pair !! ._ quote Precision )?. set _ new _ text ("") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ refresh UI (_ is User Log ined (), Ġfeed _ data ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ Ġ éĩį ç½® Ġ- Ġ åĢ Ł æ¬¾ æķ°éĩı ãĢģ æĬ µ æĬ ¼ æķ°éĩı ãĢģ æĬ µ æĬ ¼ çİĩ ãĢģ çĽ®æłĩ æĬ µ æĬ ¼ çİĩ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġon Reset CL ick ed () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ Ġ éĩį ç½® Ġ- Ġ éĶģ å®ļ çĬ¶æĢģ ĊĠĠĠĠĠĠĠ Ġset New Lock Status ( true ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġ Ġ éĩį ç½® Ġ- Ġ åĢ Ł æ¬¾ æķ°éĩı ãĢģ æĬ µ æĬ ¼ æķ°éĩı ãĢģ æĬ µ æĬ ¼ çİĩ ãĢģ çĽ®æłĩ æĬ µ æĬ ¼ çİĩ ĊĠĠĠĠĠĠĠ Ġval Ġde bt _ call order Ġ= Ġ_ get Call Order () ĊĠĠĠĠĠĠĠ Ġif Ġ( de bt _ call order Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġn _ de bt Ġ= Ġbig Decimal from Amount ( de bt _ call order . getString (" de bt "), Ġ_ de bt Pair !! ._ base Precision ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġn _ coll Ġ= Ġbig Decimal from Amount ( de bt _ call order . getString (" coll ateral "), Ġ_ de bt Pair !! ._ quote Precision ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ tf _ de bt _ watcher !!. set _ new _ text ( n _ de bt . to Price Amount String ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ tf _ coll _ watcher !!. set _ new _ text ( n _ coll . to Price Amount String ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġ è®¡ç®Ĺ æĬ µ æĬ ¼ çİĩ ï¼Ī è¿ĻéĩĮ æľī åĢ º ä»ĵ ï¼Į de bt ä¸į ä¸º 0 ãĢĤ ï¼ī ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(_ n Curr Feed Price Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ n Curr M ort gage Rate Ġ= Ġ_ calc Coll Rate ( n _ de bt , Ġn _ coll , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ n Curr M ort gage Rate Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġ çĽ®æłĩ æĬ µ æĬ ¼ çİĩ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtarget _ coll ateral _ ratio Ġ= Ġde bt _ call order . opt String (" target _ coll ateral _ ratio ", Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( target _ coll ateral _ ratio Ġ!= Ġ"") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġn _ target _ coll ateral _ ratio Ġ= Ġbig Decimal from Amount ( target _ coll ateral _ ratio , Ġ 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ refresh UI _ target _ ratio ( n _ target _ coll ateral _ ratio , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġ æľª è®¾ç½® Ġtarget _ coll ateral _ ratio ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ refresh UI _ target _ ratio ( null , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ refresh UI _ coll _ available ( n _ coll , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ refresh UI _ de bt _ available ( n _ de bt , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ tf _ de bt _ watcher !!. set _ new _ text ("") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ tf _ coll _ watcher !!. set _ new _ text ("") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġé»ĺè®¤ ä¸į è®¾ç½® Ġtarget _ coll ateral _ ratio ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ refresh UI _ target _ ratio ( null , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ refresh UI _ coll _ available ( BigDecimal . ZERO , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ refresh UI _ de bt _ available ( BigDecimal . ZERO , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparameters Ġ= ĠChain Object Manager . shared Chain Object Manager (). getDefault Parameters () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ n Curr M ort gage Rate Ġ= ĠBigDecimal . valueOf ( parameters . getDouble (" coll ateral _ ratio _ default ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// Ġ Ġ éĩį ç½® Ġ- Ġ ä½łçļĦ å¼º å¹³ è§¦åıĳ ä»· ĊĠĠĠĠĠĠĠ Ġ_ refresh UI _ Set tlement Trigger Price () ĊĠĠĠĠĠĠĠ Ġ// Ġ Ġ éĩį ç½® Ġ- ĠæĬ µ æĬ ¼ çİĩ ĊĠĠĠĠĠĠĠ Ġ_ refresh UI _ ratio ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ( private ) Ġ åĪ·æĸ° æĬ µ æĬ ¼ çİĩ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġ_ refresh UI _ ratio ( reset _ slider : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ Ġ é¢Ħ æµĭ å¸Ĥ åľº ä¸į æĺ¾ç¤º ĊĠĠĠĠĠĠĠ Ġif Ġ(_ curr Asset Is Prediction market ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġassert (_ n Maintenance Coll ateral Ratio Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠ Ġval Ġlabel Ġ= ĠfindViewById < TextView >( R . id . label _ txt _ curr _ ratio ) ĊĠĠĠĠĠĠĠ Ġlabel . setTextColor ( resources . getColor (_ get Coll ateral Ratio Color ())) ĊĠĠĠĠĠĠĠ Ġif Ġ(_ n Curr M ort gage Rate Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġ_ n Curr M ort gage Rate !!. toDouble () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlabel . text Ġ= ĠString . format ("% s Ġ%. 2 f ", Ġresources . getString ( R . string . k Vc Rank Ratio ), Ġvalue . toFloat ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( reset _ slider ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparameters Ġ= ĠChain Object Manager . shared Chain Object Manager (). getDefault Parameters () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ curve _ slider _ ratio . set _ min ( 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ curve _ slider _ ratio . set _ max ( max ( value , Ġparameters . getDouble (" max _ ratio "))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ curve _ slider _ ratio . set _ value ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlabel . text Ġ= Ġ"${ resources . getString ( R . string . k Vc Rank Ratio )} Ġ-- " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( reset _ slider ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ curve _ slider _ ratio . set _ min ( 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ curve _ slider _ ratio . set _ max ( 6 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ curve _ slider _ ratio . set _ value ( 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ Ġæł¹æį® è´¨ æĬ ¼ çİĩ èİ·åıĸ å¯¹åºĶ é¢ľèī² ãĢĤ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġ_ get Coll ateral Ratio Color (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠĠ 0 Ġ- Ġm cr ĠĠĠĠ Ġ é»Ħ èī² ï¼Ī çĪ Ĩ ä»ĵ ä¸Ń ï¼ī ĊĠĠĠĠĠĠĠ Ġ// Ġ Ġm cr Ġ- Ġ 2 5 0 ĠĠ Ġ çº¢ èī² ï¼Ī åį ± éĻ© ï¼ī Ġ- Ġ åįĸ åĩº é¢ľèī² ĊĠĠĠĠĠĠĠ Ġ// ĠĠ 2 5 0 Ġ- Ġ 4 0 0 ĠĠ Ġ çĻ½ èī² ï¼Ī æĻ®éĢļ ï¼ī ĊĠĠĠĠĠĠĠ Ġ// ĠĠ 4 0 0 + ĠĠĠĠĠĠĠ Ġ ç» ¿ èī² ï¼Ī å®īåħ¨ ï¼ī Ġ- Ġ ä¹° åħ¥ é¢ľèī² ĊĠĠĠĠĠĠĠ Ġif Ġ(_ n Curr M ort gage Rate Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġ_ n Curr M ort gage Rate !!. toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm cr Ġ= Ġ_ n Maintenance Coll ateral Ratio !!. toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value Ġ< Ġm cr ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠR . color . theme 0 1 _ call Order Color ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( value Ġ< Ġ 2 . 5 f ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠR . color . theme 0 1 _ sell Color ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( value Ġ< Ġ 4 . 0 f ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠR . color . theme 0 1 _ textColor Main ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠR . color . theme 0 1 _ buy Color ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠR . color . theme 0 1 _ textColor Main ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ( private ) Ġ åĪ·æĸ° å¼º å¹³ è§¦åıĳ ä»· ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġ_ refresh UI _ Set tlement Trigger Price () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġprice _ title Ġ= Ġresources . getString ( R . string . k De bt L able Call Price ) ĊĠĠĠĠĠĠĠ Ġval Ġbase _ symbol Ġ= Ġ_ de bt Pair !! ._ base Asset . getString (" symbol ") ĊĠĠĠĠĠĠĠ Ġval Ġquote _ symbol Ġ= Ġ_ de bt Pair !! ._ quote Asset . getString (" symbol ") ĊĠĠĠĠĠĠĠ Ġval Ġsuffix Ġ= Ġ"${ base _ symbol }/${ quote _ symbol }" ĊĊĠĠĠĠĠĠĠ Ġval Ġn _ de bt Ġ= ĠUtils . aux GetString Decimal Number Value ( findViewById < EditText >( R . id . tf _ de bt ). text . toString ()) ĊĠĠĠĠĠĠĠ Ġval Ġn _ coll Ġ= ĠUtils . aux GetString Decimal Number Value ( findViewById < EditText >( R . id . tf _ coll ). text . toString ()) ĊĠĠĠĠĠĠĠ Ġval Ġn _ zero Ġ= ĠBigDecimal . ZERO ĊĊĠĠĠĠĠĠĠ Ġval Ġlabel Ġ= ĠfindViewById < TextView >( R . id . label _ txt _ trigger _ price ) ĊĠĠĠĠĠĠĠ Ġif Ġ(_ curr Asset Is Prediction market Ġ|| Ġn _ de bt . compareTo ( n _ zero ) Ġ== Ġ 0 Ġ|| Ġn _ coll . compareTo ( n _ zero ) Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlabel . text Ġ= Ġ"${ price _ title } Ġ-- ${ suffix }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlabel . setTextColor ( resources . getColor ( R . color . theme 0 1 _ textColor Main )) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġ è®¡ç®Ĺ å¼º å¹³ è§¦åıĳ ä»· Ġprice Ġ= Ġde bt Ġ* Ġ 1 . 7 5 Ġ/ Ġcoll ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġn Ġ= Ġn _ de bt . multiply (_ n Maintenance Coll ateral Ratio ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġn Ġ= Ġn . divide ( n _ coll , Ġ_ de bt Pair !! ._ base Precision , ĠBigDecimal . ROUND _ UP ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlabel . text Ġ= Ġ"${ price _ title } Ġ${ Org Utils . format Float Value ( n . toDouble (), Ġ_ de bt Pair !! ._ base Precision )} ${ suffix }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlabel . setTextColor ( resources . getColor (_ get Coll ateral Ratio Color ())) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ( private ) Ġ åĪ·æĸ° UI Ġ- ĠæĬ µ æĬ ¼ çī© åı¯çĶ¨ ä½Ļ é¢Ŀ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġ_ refresh UI _ coll _ available ( new _ tf _ value : ĠBigDecimal , Ġupdate _ text field : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( update _ text field ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( new _ tf _ value . compareTo ( BigDecimal . ZERO ) Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ tf _ coll _ watcher ?. set _ new _ text ("") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ tf _ coll _ watcher ?. set _ new _ text ( new _ tf _ value . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġlbl _ available Ġ= ĠfindViewById < TextView >( R . id . label _ txt _ coll _ available ) ĊĊĠĠĠĠĠĠĠ Ġval Ġn _ total Ġ= Ġ_ getTotal Coll ateral Number () ĊĠĠĠĠĠĠĠ Ġval Ġn _ available Ġ= Ġn _ total . subtract ( new _ tf _ value ) ĊĠĠĠĠĠĠĠ Ġval Ġquote _ symbol Ġ= Ġ_ de bt Pair !! ._ quote Asset . getString (" symbol ") ĊĠĠĠĠĠĠĠ Ġlbl _ available . text Ġ= Ġ"${ resources . getString ( R . string . k De bt L able Available )} Ġ$ n _ available Ġ${ quote _ symbol }" ĊĊĠĠĠĠĠĠĠ Ġif Ġ( n _ available . compareTo ( BigDecimal . ZERO ) Ġ< Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlbl _ available . setTextColor ( resources . getColor ( R . color . theme 0 1 _ tint Color )) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlbl _ available . setTextColor ( resources . getColor ( R . color . theme 0 1 _ textColor Normal )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ( private ) Ġ åĪ·æĸ° UI Ġ- Ġ åĢ Ł è´ · æķ°éĩı åı¯çĶ¨ ä½Ļ é¢Ŀ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġ_ refresh UI _ de bt _ available ( new _ tf _ value : ĠBigDecimal , Ġupdate _ text field : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( update _ text field ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( new _ tf _ value . compareTo ( BigDecimal . ZERO ) Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ tf _ de bt _ watcher ?. set _ new _ text ("") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ tf _ de bt _ watcher ?. set _ new _ text ( new _ tf _ value . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġvar Ġn _ curr _ de bt Ġ= ĠBigDecimal . ZERO ĊĠĠĠĠĠĠĠ Ġval Ġde bt _ call order Ġ= Ġ_ get Call Order () ĊĠĠĠĠĠĠĠ Ġif Ġ( de bt _ call order Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġn _ curr _ de bt Ġ= Ġbig Decimal from Amount ( de bt _ call order . getString (" de bt "), Ġ_ de bt Pair !! ._ base Precision ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// Ġ Ġ æĸ°å¢ŀ åĢ Ł è´ · ï¼Ī åı¯ä»¥ ä¸º è´Ł ãĢĤ ï¼ī ĊĠĠĠĠĠĠĠ Ġval Ġn _ add _ de bt Ġ= Ġnew _ tf _ value . subtract ( n _ curr _ de bt ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġ ĠUI èİ·åıĸ ĊĠĠĠĠĠĠĠ Ġval Ġlbl _ available Ġ= ĠfindViewById < TextView >( R . id . label _ txt _ de bt _ available ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġ Ġåı¯ çĶ¨ ä½Ļ é¢Ŀ ĊĠĠĠĠĠĠĠ Ġval Ġn _ available Ġ= Ġ_ get De bt Balance (). add ( n _ add _ de bt ) ĊĠĠĠĠĠĠĠ Ġval Ġbase _ symbol Ġ= Ġ_ de bt Pair !! ._ base Asset . getString (" symbol ") ĊĠĠĠĠĠĠĠ Ġlbl _ available . text Ġ= Ġ"${ resources . getString ( R . string . k De bt L able Available )} Ġ$ n _ available Ġ${ base _ symbol }" ĊĊĠĠĠĠĠĠĠ Ġif Ġ( n _ available . compareTo ( BigDecimal . ZERO ) Ġ< Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlbl _ available . setTextColor ( resources . getColor ( R . color . theme 0 1 _ tint Color )) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlbl _ available . setTextColor ( resources . getColor ( R . color . theme 0 1 _ textColor Normal )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ è®¡ç®Ĺ æĬ µ æĬ ¼ çİĩ ĠĠĠĠĠĠ Ġ åħ¬ å¼ı ï¼ļ æĬ µ æĬ ¼ çİĩ Ġ= ĠæĬ µ æĬ ¼ çī© æķ°éĩı Ġ* Ġ åĸ Ĥ ä»· Ġ/ Ġ è´Ł åĢ º ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġ_ calc Coll Rate ( n _ de bt : ĠBigDecimal , Ġn _ coll : ĠBigDecimal , Ġpercent _ result : ĠBoolean ): ĠBigDecimal Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ ĠRE MARK ï¼ļ é¢Ħ æµĭ å¸Ĥ åľº ï¼Į æĬ µ æĬ ¼ çī© æķ°éĩı åĴĮ åĢ Ł æ¬¾ æķ°éĩı å¿ħé¡» ä¸Ģèĩ´ ï¼Į ä¸įéľĢè¦ģ åĸ Ĥ ä»· ãĢĤ ĊĠĠĠĠĠĠĠ Ġif Ġ(_ curr Asset Is Prediction market ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠBigDecimal . ONE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġassert (_ n Curr Feed Price Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠ Ġassert ( n _ de bt Ġ!= ĠBigDecimal . ZERO ) ĊĠĠĠĠĠĠĠ Ġval Ġn Ġ= Ġn _ coll . multiply (_ n Curr Feed Price ). divide ( n _ de bt , Ġ 4 , ĠBigDecimal . ROUND _ UP ) ĊĠĠĠĠĠĠĠ Ġif Ġ( percent _ result ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġè¿ĶåĽŀ çĻ¾ åĪĨ æ¯Ķ ç»ĵæŀľ ï¼Ī ç²¾ åº¦ 2 ä½į ï¼ī ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġn . multiply ( BigDecimal . valueOf ( 1 0 0 . 0 )) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġè¿ĶåĽŀ 4 ä½į ç²¾ åº¦ å°ı æķ° ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ Ġ è®¡ç®Ĺ åı¯ åĢ Ł æ¬¾ æķ°éĩı Ġ Ġ åħ¬ å¼ı ï¼ļ åĢ Ł æ¬¾ Ġ= ĠæĬ µ æĬ ¼ çī© æķ°éĩı Ġ* Ġ åĸ Ĥ ä»· Ġ/ ĠæĬ µ æĬ ¼ çİĩ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġ_ calc De bt Number ( n _ coll : ĠBigDecimal , Ġrate : ĠBigDecimal ?): ĠBigDecimal Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ ĠRE MARK ï¼ļ é¢Ħ æµĭ å¸Ĥ åľº ï¼Į æĬ µ æĬ ¼ çī© æķ°éĩı åĴĮ åĢ Ł æ¬¾ æķ°éĩı å¿ħé¡» ä¸Ģèĩ´ ï¼Į ä¸įéľĢè¦ģ åĸ Ĥ ä»· ãĢĤ ĊĠĠĠĠĠĠĠ Ġif Ġ(_ curr Asset Is Prediction market ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġn _ coll ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġassert ( rate Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠ Ġassert (_ n Curr Feed Price Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠ Ġ// Ġ ĠæĬ µ æĬ ¼ çİĩ ä¸º 0 ï¼Į åĪĻ åĢ º åĬ¡ ä¸º 0 ï¼Į ä¸į éļı æĬ µ æĬ ¼ çī© åıĺåĮĸ ãĢĤ ĊĠĠĠĠĠĠĠ Ġif Ġ( rate !! Ġ<= ĠBigDecimal . ZERO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠBigDecimal . ZERO ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġn _ coll . multiply (_ n Curr Feed Price !! ). divide ( rate , Ġ_ de bt Pair !! ._ base Precision , ĠBigDecimal . ROUND _ DOWN ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ Ġ è®¡ç®Ĺ æĬ µ æĬ ¼ çī© æķ°éĩı Ġ Ġ åħ¬ å¼ı ï¼ļ æĬ µ æĬ ¼ çī© æķ°éĩı Ġ= ĠæĬ µ æĬ ¼ çİĩ Ġ* Ġ è´Ł åĢ º Ġ/ Ġ åĸ Ĥ ä»· ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġ_ calc Coll Number ( n _ de bt : ĠBigDecimal , Ġrate : ĠBigDecimal ?): ĠBigDecimal Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ ĠRE MARK ï¼ļ é¢Ħ æµĭ å¸Ĥ åľº ï¼Į æĬ µ æĬ ¼ çī© æķ°éĩı åĴĮ åĢ Ł æ¬¾ æķ°éĩı å¿ħé¡» ä¸Ģèĩ´ ï¼Į ä¸įéľĢè¦ģ åĸ Ĥ ä»· ãĢĤ ĊĠĠĠĠĠĠĠ Ġif Ġ(_ curr Asset Is Prediction market ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġn _ de bt ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġassert ( rate Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠ Ġassert (_ n Curr Feed Price Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠ Ġassert (_ n Curr Feed Price !!. compareTo ( BigDecimal . ZERO ) Ġ!= Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġreturn Ġn _ de bt . multiply ( rate ). divide (_ n Curr Feed Price !! , Ġ_ de bt Pair !! ._ quote Precision , ĠBigDecimal . ROUND _ UP ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ( private ) Ġ åĪ·æĸ° çĽ®æłĩ æĬ µ æĬ ¼ çİĩ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġ_ refresh UI _ target _ ratio ( ratio _: ĠBigDecimal ?, Ġreset _ slider : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ Ġ é¢Ħ æµĭ å¸Ĥ åľº ä¸į æĺ¾ç¤º ĊĠĠĠĠĠĠĠ Ġif Ġ(_ curr Asset Is Prediction market ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġratio Ġ= Ġratio _ Ġ?: ĠBigDecimal . ZERO ĊĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġratio . toDouble () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( reset _ slider ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparameters Ġ= ĠChain Object Manager . shared Chain Object Manager (). getDefault Parameters () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ curve _ slider _ target _ ratio . set _ min ( max (_ n Maintenance Coll ateral Ratio !!. toDouble () Ġ- Ġ 0 . 3 , Ġ 0 . 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ curve _ slider _ target _ ratio . set _ max ( max ( value , Ġparameters . getDouble (" max _ target _ ratio "))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ curve _ slider _ target _ ratio . set _ value ( value ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġ Ġratio Ġ< Ġ_ n Maintenance Coll ateral Ratio ĊĠĠĠĠĠĠĠ Ġval Ġlabel Ġ= ĠfindViewById < TextView >( R . id . label _ txt _ target _ ratio ) ĊĠĠĠĠĠĠĠ Ġif Ġ( ratio . compareTo (_ n Maintenance Coll ateral Ratio ) Ġ< Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlabel . text Ġ= Ġresources . getString ( R . string . k De bt Tip Target Ratio Not Set ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlabel . setTextColor ( resources . getColor ( R . color . theme 0 1 _ textColor Gray )) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlabel . text Ġ= ĠString . format ("% s Ġ%. 2 f ", Ġresources . getString ( R . string . k De bt Tip Target Ratio ), Ġvalue . toFloat ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlabel . setTextColor ( resources . getColor ( R . color . theme 0 1 _ textColor Main )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ( private ) Ġèİ·åıĸ å½ĵåīį æĵįä½ľ èµĦ äº§ çļĦ åĢ º ä»ĵ ä¿¡æģ¯ ï¼Į åĢ º ä»ĵ ä¸įåŃĺåľ¨ åĪĻ è¿ĶåĽŀ Ġnil ãĢĤ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġ_ get Call Order (): ĠJSONObject ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(_ call Order Hash Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ_ call Order Hash !!. getJSONObject (_ de bt Pair !! ._ base Asset . getString (" symbol ")). opt JSONObject (" call order ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ Ġ( private ) Ġèİ·åıĸ æĢ» æĬ µ æĬ ¼ çī© æķ°éĩı ï¼Ī å·² æĬ µ æĬ ¼ çļĦ Ġ+ Ġåı¯ çĶ¨çļĦ ï¼īï¼Į æľª çĻ»å½ķ æĹ¶åĢĻ è¿ĶåĽŀ Ġ 0 ãĢĤ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġ_ getTotal Coll ateral Number (): ĠBigDecimal Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġn _ coll Ġ= ĠBigDecimal . ZERO ĊĠĠĠĠĠĠĠ Ġvar Ġn _ balance Ġ= ĠBigDecimal . ZERO ĊĠĠĠĠĠĠĠ Ġval Ġde bt _ call order Ġ= Ġ_ get Call Order () ĊĠĠĠĠĠĠĠ Ġif Ġ( de bt _ call order Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġn _ coll Ġ= Ġbig Decimal from Amount ( de bt _ call order . getString (" coll ateral "), Ġ_ de bt Pair !! ._ quote Precision ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(_ coll ateral Balance Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġn _ balance Ġ= Ġbig Decimal from Amount (_ coll ateral Balance !!. getString (" amount "), Ġ_ de bt Pair !! ._ quote Precision ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġn _ coll . add ( n _ balance ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ Ġ( private ) Ġèİ·åıĸ å½ĵåīį åĢ Ł è´ · èµĦ äº§ åı¯çĶ¨ ä½Ļ é¢Ŀ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġ_ get De bt Balance (): ĠBigDecimal Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(_ call Order Hash Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġde bt Ġ= Ġ_ call Order Hash !!. getJSONObject (_ de bt Pair !! ._ base Asset . getString (" symbol ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġbig Decimal from Amount ( de bt . getJSONObject (" balance "). getString (" amount "), Ġ_ de bt Pair !! ._ base Precision ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠBigDecimal . ZERO ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ( private ) ĠæŁ¥è¯¢ åĸ Ĥ ä»· ä¿¡æģ¯ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġ_ async Query Feed Price ( de bt Asset : ĠJSONObject ?): ĠPromise Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġasset Ġ= Ġde bt Asset Ġ?: Ġ_ de bt Pair !! ._ base Asset ĊĠĠĠĠĠĠĠ Ġval Ġbit asset _ data _ id Ġ= Ġasset . getString (" bit asset _ data _ id ") ĊĠĠĠĠĠĠĠ Ġassert ( bit asset _ data _ id . isNotEmpty ()) ĊĠĠĠĠĠĠĠ Ġreturn ĠChain Object Manager . shared Chain Object Manager (). query All Graph ene Objects Skip Cache ( json Array from ( bit asset _ data _ id )). then Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Hash Ġ= Ġit Ġas ĠJSONObject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ then Ġresult Hash . getJSONObject ( bit asset _ data _ id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ( private ) Ġ åĪ·æĸ° çĶ¨æĪ· æķ°æį® ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġ_ refresh UserData () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġb Log ined Ġ= Ġ_ is User Log ined () ĊĠĠĠĠĠĠĠ Ġval Ġpromise _ map Ġ= ĠJSONObject () ĊĠĠĠĠĠĠĠ Ġpromise _ map . put (" k Feed ", Ġ_ async Query Feed Price ( null )) ĊĠĠĠĠĠĠĠ Ġif Ġ( b Log ined ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaccount _ id Ġ= ĠWallet Manager . shared Wallet Manager (). get Wallet Account Info () !!. getJSONObject (" account "). getString (" id ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpromise _ map . put (" k Full Account Data ", ĠChain Object Manager . shared Chain Object Manager (). query Full Account Info ( account _ id )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġmask Ġ= ĠView Mask ( R . string . k Tips Be Request ing . xml string ( this ), Ġthis ) ĊĠĠĠĠĠĠĠ Ġmask . show () ĊĠĠĠĠĠĠĠ ĠPromise . map ( promise _ map ). then Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmask . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata map Ġ= Ġit Ġas ĠJSONObject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ refresh UI ( b Log ined , Ġdata map . getJSONObject (" k Feed ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ then Ġnull ĊĠĠĠĠĠĠĠ Ġ}. catch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmask . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( resources . getString ( R . string . tip _ network _ error )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ( private ) Ġ åĪ·æĸ° çķĮéĿ¢ Ġ- ĠçĶ¨æĪ· çĻ»å½ķ Ġor ĠçĶ¨æĪ· æķ°æį® æĽ´æĸ° äºĨ Ġor ĠçĶ¨æĪ· éĢīæĭ© äºĨ æĸ°çļĦ åĢ Ł æ¬¾ èµĦ äº§ ãĢĤ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġ_ refresh UI ( b Log ined : ĠBoolean , Ġnew _ feed _ price _ data : ĠJSONObject ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ ĠæĽ´æĸ° åĸ Ĥ ä»· ĠåĴĮ ĠM CR ãĢĤ ĊĠĠĠĠĠĠĠ Ġif Ġ( new _ feed _ price _ data Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ n Curr Feed Price Ġ= Ġ_ de bt Pair !!. calc Show Feed Info ( json Array from ( new _ feed _ price _ data )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ curr Asset Is Prediction market Ġ= Ġnew _ feed _ price _ data . isTrue (" is _ prediction _ market ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm cr Ġ= Ġnew _ feed _ price _ data . getJSONObject (" current _ feed "). getString (" maintenance _ coll ateral _ ratio ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ n Maintenance Coll ateral Ratio Ġ= Ġbig Decimal from Amount ( m cr , Ġ 3 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġ ĠçĶŁæĪĲ æĸ°çļĦ åĢ º ä»ĵ ä¿¡æģ¯ ĊĠĠĠĠĠĠĠ Ġ_ gen Call Order Hash ( b Log ined ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġ ĠæĽ´æĸ° UI ĊĠĠĠĠĠĠĠ ĠfindViewById < TextView >( R . id . tf _ tail er _ coll _ asset _ symbol ). text Ġ= Ġ_ de bt Pair !! ._ quote Asset . getString (" symbol ") ĊĠĠĠĠĠĠĠ ĠfindViewById < TextView >( R . id . tf _ tail er _ de bt _ asset _ symbol ). text Ġ= Ġ_ de bt Pair !! ._ base Asset . getString (" symbol ") ĊĊĠĠĠĠĠĠĠ Ġ// Ġ ĠUI Ġ- Ġ æĮīéĴ® ĊĠĠĠĠĠĠĠ Ġif Ġ( b Log ined ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠfindViewById < Button >( R . id . btn _ submit _ core ). text Ġ= Ġresources . getString ( R . string . k Op Type _ call _ order _ update ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠfindViewById < Button >( R . id . btn _ submit _ core ). text Ġ= Ġresources . getString ( R . string . k Normal Cell Btn Login ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġ ĠUI Ġ- Ġ åĸ Ĥ ä»· ĊĠĠĠĠĠĠĠ Ġval Ġbase _ symbol Ġ= Ġ_ de bt Pair !! ._ base Asset . getString (" symbol ") ĊĠĠĠĠĠĠĠ Ġval Ġquote _ symbol Ġ= Ġ_ de bt Pair !! ._ quote Asset . getString (" symbol ") ĊĠĠĠĠĠĠĠ Ġif Ġ(!_ curr Asset Is Prediction market Ġ&& Ġ_ n Curr Feed Price Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠfindViewById < TextView >( R . id . label _ txt _ curr _ feed ). text Ġ= Ġ"${ resources . getString ( R . string . k Vc Feed Current Feed Price )} Ġ${ _ n Curr Feed Price !!. to Plain String ()} ${ base _ symbol }/${ quote _ symbol }" ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠfindViewById < TextView >( R . id . label _ txt _ curr _ feed ). text Ġ= Ġ"${ resources . getString ( R . string . k Vc Feed Current Feed Price )} Ġ-- ${ base _ symbol }/${ quote _ symbol }" ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġ ĠUI Ġ- Ġ ä½łçļĦ å¼º å¹³ è§¦åıĳ ä»· ĊĠĠĠĠĠĠĠ Ġon Reset CL ick ed () ĊĊĠĠĠĠĠĠĠ Ġ// Ġ ĠUI Ġ- ĠæıĲ ç¤º ä¿¡æģ¯ ĊĠĠĠĠĠĠĠ ĠfindViewById < TextView >( R . id . tv _ ui _ tips ). let Ġ{ Ġtv Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv . text Ġ= Ġif Ġ(_ curr Asset Is Prediction market ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . getString ( R . string . k De bt W arm Tips For PM ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . getString ( R . string . k De bt W arm Tips ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġ ĠUI Ġ- ĠæĽ´æĸ° éĥ¨åĪĨ åĮºåŁŁ åı¯ è§ģ æĢ§ ĊĠĠĠĠĠĠĠ ĠfindViewById < LinearLayout >( R . id . layout _ ratio _ and _ t cr ). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(_ curr Asset Is Prediction market ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ( private ) ĠåĪĿå§ĭåĮĸ åĢ º ä»ĵ ä¿¡æģ¯ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġ_ gen Call Order Hash ( b Log ined : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( b Log ined ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwallet _ account _ info Ġ= ĠWallet Manager . shared Wallet Manager (). get Wallet Account Info () !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaccount _ id Ġ= Ġwallet _ account _ info . getJSONObject (" account "). getString (" id ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchain Mgr Ġ= ĠChain Object Manager . shared Chain Object Manager () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġde bt _ asset _ list Ġ= Ġchain Mgr . get De bt Asset List () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ ĠRE MARK ï¼ļ å¦Ĥæŀľ æ²¡ æī§è¡Į Ġget _ full _ accounts Ġè¯·æ±Ĥ ï¼Į åĪĻ åĨħåŃĺ ç¼ĵåŃĺ ä¸įåŃĺåľ¨ ï¼Į åĪĻ é»ĺè®¤ ä»İ çĻ»å½ķ æĹ¶çļĦ å¸ Ĳ åı· ä¿¡æģ¯ éĩĮ èİ·åıĸ ãĢĤ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġfull _ account _ data Ġ= Ġchain Mgr . getFull Account Data From Cache ( account _ id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( full _ account _ data Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfull _ account _ data Ġ= Ġwallet _ account _ info ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠ 1 ãĢģ åĪĿå§ĭåĮĸ ä½Ļ é¢Ŀ Hash ( åİŁ æĿ¥ çļĦæĺ¯ Array ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbalances _ hash Ġ= ĠJSONObject () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfull _ account _ data . get JSONArray (" balances "). forEach < JSONObject > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbalance _ object Ġ= Ġit !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġasset _ type Ġ= Ġbalance _ object . getString (" asset _ type ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbalance Ġ= Ġbalance _ object . getString (" balance ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbalances _ hash . put ( asset _ type , ĠjsonObject from K VS (" asset _ id ", Ġasset _ type , Ġ" amount ", Ġbalance )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbalances _ list Ġ= Ġbalances _ hash . values () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠ 2 ãĢģ è®¡ç®Ĺ æīĭ ç»Ń è´¹ å¯¹è±¡ ï¼Ī æĽ´æĸ° æīĭ ç»Ń è´¹ èµĦ äº§ çļĦ åı¯çĶ¨ ä½Ļ é¢Ŀ ï¼Į åį³ åĩı åİ» æīĭ ç»Ń è´¹ éľĢè¦ģ çļĦ amount ï¼ī ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ fee _ item Ġ= Ġchain Mgr . estimate Fee Object ( E Bit shares Operations . e bo _ call _ order _ update . value , Ġbalances _ list ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfee _ asset _ id Ġ= Ġ_ fee _ item !!. getString (" fee _ asset _ id ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfee _ balance Ġ= Ġbalances _ hash . opt JSONObject ( fee _ asset _ id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( fee _ balance Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfee Ġ= Ġ_ fee _ item !!. getString (" amount "). toDouble () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġold Ġ= Ġfee _ balance . getString (" amount "). toDouble () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew _ balance : ĠJSONObject ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( old Ġ>= Ġfee ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew _ balance Ġ= ĠjsonObject from K VS (" asset _ id ", Ġfee _ asset _ id , Ġ" amount ", Ġold Ġ- Ġfee ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew _ balance Ġ= ĠjsonObject from K VS (" asset _ id ", Ġfee _ asset _ id , Ġ" amount ", Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbalances _ hash . put ( fee _ asset _ id , Ġnew _ balance ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠ 3 ãĢģ èİ·åıĸ æĬ µ æĬ ¼ çī© ï¼Ī B TS ï¼ī çļĦ ä½Ļ é¢Ŀ ä¿¡æģ¯ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ coll ateral Balance Ġ= Ġbalances _ hash . opt JSONObject (_ de bt Pair !! ._ quote Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(_ coll ateral Balance Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ coll ateral Balance Ġ= ĠjsonObject from K VS (" asset _ id ", Ġ_ de bt Pair !! ._ quote Id , Ġ" amount ", Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠ 4 ãĢģ èİ·åıĸ å½ĵåīį æĮģ æľīçļĦ åĢ º ä»ĵ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcall _ orders _ hash Ġ= ĠJSONObject () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcall _ orders Ġ= Ġfull _ account _ data . opt JSONArray (" call _ orders ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( call _ orders Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall _ orders . forEach < JSONObject > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcall _ order Ġ= Ġit !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall _ orders _ hash . put ( call _ order . getJSONObject (" call _ price "). getJSONObject (" quote "). getString (" asset _ id "), Ġcall _ order ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠ 5 ãĢģ åĢ º ä»ĵ åĴĮ ä½Ļ é¢Ŀ åħ³èģĶ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ call Order Hash Ġ= ĠJSONObject () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġde bt _ symbol Ġ= Ġ_ de bt Pair !! ._ base Asset . getString (" symbol ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġde bt _ asset Ġ= Ġ_ de bt Pair !! ._ base Asset ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoid Ġ= Ġde bt _ asset . getString (" id ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġbalance Ġ= Ġbalances _ hash . opt JSONObject ( oid ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( balance Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġé»ĺè®¤ åĢ¼ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbalance Ġ= ĠjsonObject from K VS (" asset _ id ", Ġoid , Ġ" amount ", Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinfo : ĠJSONObject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcall order Ġ= Ġcall _ orders _ hash . opt JSONObject ( oid ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( call order Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinfo Ġ= ĠjsonObject from K VS (" balance ", Ġbalance , Ġ" de bt _ asset ", Ġde bt _ asset , Ġ" call order ", Ġcall order ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinfo Ġ= ĠjsonObject from K VS (" balance ", Ġbalance , Ġ" de bt _ asset ", Ġde bt _ asset ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġ ä¿ĿåŃĺ åĪ° Hash ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ call Order Hash !!. put ( de bt _ symbol , Ġinfo ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ call Order Hash !!. put ( oid , Ġinfo ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ call Order Hash Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ coll ateral Balance Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ fee _ item Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ( private ) Ġ è¾ ħ åĬ© æĸ¹æ³ķ Ġ- ĠåĪ¤æĸŃ çĶ¨æĪ· æĺ¯åĲ¦ å·²ç»ı çĻ»å½ķ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġ_ is User Log ined (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠWallet Manager . shared Wallet Manager (). is Wallet Exist () ĊĠĠĠ Ġ} Ċ } Ċ