package Ġcom . android . loan ppi Ċ Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . TextView Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . core . view . isVisible Ċ import Ġcom . android . vol ley . Request Ċ import Ġcom . android . vol ley . Response Ċ import Ġcom . android . vol ley . toolbox . JsonArray Request Ċ import Ġcom . android . vol ley . toolbox . Vol ley Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . github . mike phil . chart ing . charts . Bar Chart Ċ import Ġcom . github . mike phil . chart ing . charts . Chart Ċ import Ġcom . github . mike phil . chart ing . charts . Horizontal Bar Chart Ċ import Ġcom . github . mike phil . chart ing . components . Legend Ċ import Ġcom . github . mike phil . chart ing . components . Legend Entry Ċ import Ġcom . github . mike phil . chart ing . components . X Axis Ċ import Ġcom . github . mike phil . chart ing . components . Y Axis Ċ import Ġcom . github . mike phil . chart ing . data .* Ċ import Ġcom . github . mike phil . chart ing . formatter . Index Axis Value Formatter Ċ import Ġcom . google . android . gms . auth . api . signin . Google SignIn Account Ċ import Ġkotlinx . android . synt hetic . main . fragment _ main _ invest or .* Ċ import Ġorg . json . JSONArray Ċ import Ġorg . json . JSONObject Ċ Ċ /** Ċ Ġ* ĠA Ġsimple Ġ[ Fragment ] Ġsubclass . Ċ Ġ* ĠUse Ġthe Ġ[ main _ invest or . newInstance ] Ġfactory Ġmethod Ġto Ċ Ġ* Ġcreate Ġan Ġinstance Ġof Ġthis Ġfragment . Ċ Ġ*/ Ċ class Ġmain _ invest or ( bundle : ĠBundle ?) Ġ: ĠFragment () Ġ{ ĊĠĠĠ Ġ// ĠUser Ġaccount Ġinfo ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġaccess Info : ĠBundle ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġaccount : ĠBundle ĊĠĠĠ Ġprivate Ġvar Ġbundle : ĠBundle ? Ġ= Ġbundle ĊĊĠĠĠ Ġ// ĠMain Ġinvest or Ġfields ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġvalue Full Inv ested Amount : ĠTextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġvalue Full E ar ns : ĠTextView ĊĠĠĠ Ġprivate Ġvar Ġfull Inv ested Amount Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġfull E ar ns Ġ= Ġ 0 . 0 f ĊĊĠĠĠ Ġ// ĠBar Ġchart ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbar Chart : ĠHorizontal Bar Chart ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġvalues : ĠArray < Int > ĊĠĠĠ Ġprivate Ġvar Ġtitles : ĠArray < String > Ġ= ĠarrayOf (" In ver siÃ³n ", Ġ" Ret orno ") ĊĠĠĠ Ġprivate Ġvar Ġcolors : ĠArrayList < Int > Ġ= ĠArrayList () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠInf late Ġthe Ġlayout Ġfor Ġthis Ġfragment ĊĠĠĠĠĠĠĠ Ġval Ġview : ĠView Ġ= Ġinflater . inflate ( R . layout . fragment _ main _ invest or , Ġcontainer , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġaccess Info Ġ= Ġbundle ?. get Bundle (" access Info ") Ġas ĠBundle ĊĠĠĠĠĠĠĠ Ġaccount Ġ= Ġbundle ?. get Bundle (" account ") Ġas ĠBundle ĊĊĠĠĠĠĠĠĠ Ġ// ĠGet Ġtext views Ġand Ġedit text Ġfrom Ġfragment ĊĠĠĠĠĠĠĠ Ġvalue Full Inv ested Amount Ġ= Ġview . findViewById ( R . id . txt _ main _ value _ full _ inv ested _ amount ) ĊĠĠĠĠĠĠĠ Ġvalue Full E ar ns Ġ= Ġview . findViewById ( R . id . txt _ main _ value _ full _ ear ns ) ĊĊĠĠĠĠĠĠĠ Ġbar Chart Ġ= Ġview . findViewById ( R . id . bar _ chart ) ĊĠĠĠĠĠĠĠ Ġcolors Ġ= Ġarray ListOf ( resources . getColor ( R . color . loan ppi _ fresh ), Ġresources . getColor ( R . color . yellow _ fresh )) ĊĊĠĠĠĠĠĠĠ Ġ// ĠLoads Ġthe Ġphoto Ġand Ġthe Ġfirst Ġname Ġof Ġthe Ġuser ĊĠĠĠĠĠĠĠ Ġval ĠfirstName : ĠString ? Ġ= Ġaccount . getString (" firstName ") ĊĠĠĠĠĠĠĠ Ġvar Ġurl Photo : ĠString ? Ġ= Ġ"" ĊĊĠĠĠĠĠĠĠ Ġif Ġ( access Info . get (" access With ") Ġ== Ġ" facebook ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfacebook Account Ġ= Ġaccess Info . get (" facebook Account ") Ġas ĠBundle ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl Photo Ġ= Ġfacebook Account . get (" url User Photo ") Ġas ĠString ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgoogle Account Ġ= Ġaccess Info . get (" google Account ") Ġas ĠGoogle SignIn Account ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl Photo Ġ= Ġgoogle Account . photoUrl . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġview . findViewById < TextView >( R . id . txt _ g ret tings ). setText (" H ola , Ġ"+ ĠfirstName ) ĊĠĠĠĠĠĠĠ ĠG lide . with ( this ). load ( url Photo ). into ( view . findViewById ( R . id . img _ user _ photo )) ĊĊĠĠĠĠĠĠĠ Ġ// ĠCalls Ġthe Ġfunction Ġresponsible Ġfor Ġchecking Ġwhether Ġthe Ġuser Ġhas Ġcurrently ĊĠĠĠĠĠĠĠ Ġ// Ġactive Ġinvest ments ĊĠĠĠĠĠĠĠ Ġget Invest ments () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġview ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠFunction Ġthat Ġloads Ġa Ġchart ĊĠĠĠ Ġfun Ġset Chart ( chart : ĠHorizontal Bar Chart , Ġdescription : ĠString , ĠtextColor : ĠInt , Ġbackground : ĠInt , Ġanimate Y : ĠInt ): ĠHorizontal Bar Chart Ġ{ ĊĠĠĠĠĠĠĠ Ġchart . description . text Ġ= Ġdescription ĊĠĠĠĠĠĠĠ Ġchart . description . text Size Ġ= Ġ 1 5 F ĊĠĠĠĠĠĠĠ Ġchart . description . textColor Ġ= ĠtextColor ĊĠĠĠĠĠĠĠ Ġchart . set BackgroundColor ( background ) ĊĠĠĠĠĠĠĠ Ġchart . animate Y ( animate Y ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġchart ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠFunction Ġthat Ġconfigure Ġthe Ġlegend ĊĠĠĠ Ġfun Ġlegend ( chart : ĠHorizontal Bar Chart ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlegend : ĠLegend Ġ= Ġchart . legend ĊĊĠĠĠĠĠĠĠ Ġlegend . form Ġ= ĠLegend . Legend Form . CIR CLE ĊĠĠĠĠĠĠĠ Ġlegend . horizontal Alignment Ġ= ĠLegend . Legend Horizontal Alignment . CENTER ĊĊĠĠĠĠĠĠĠ Ġval Ġentries : ĠArrayList < Legend Entry > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. titles . size Ġ- Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġentry Ġ= ĠLegend Entry () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġentry . form Color Ġ= Ġcolors [ i ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġentry . label Ġ= Ġtitles [ i ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġentries . add ( entry ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġlegend . set Custom ( entries ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠFunction Ġthat Ġget Ġentries ĊĠĠĠ Ġfun Ġget Entries (): ĠArrayList < Bar Entry > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġentries : ĠArrayList < Bar Entry > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. values . size Ġ- Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġentries . add ( Bar Entry ( i . toFloat (), Ġvalues [ i ]. toFloat ())) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġentries ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠFunction Ġto Ġset Ġthe Ġaxes ĊĠĠĠ Ġfun Ġaxis X ( axis : ĠX Axis ) Ġ{ ĊĠĠĠĠĠĠĠ Ġaxis . is Gran ularity Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġaxis . position Ġ= ĠX Axis . X Axis Position . BOTTOM ĊĠĠĠĠĠĠĠ Ġaxis . value Formatter Ġ= ĠIndex Axis Value Formatter ( titles ) ĊĠĠĠĠĠĠĠ Ġaxis . isEnabled Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġaxis Left ( axis : ĠY Axis ) Ġ{ ĊĠĠĠĠĠĠĠ Ġaxis . space Top Ġ= Ġ 3 0 F ĊĠĠĠĠĠĠĠ Ġaxis . axis Minimum Ġ= Ġ 0 F ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġaxis R ig th ( axis : ĠY Axis ) Ġ{ ĊĠĠĠĠĠĠĠ Ġaxis . isEnabled Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠFunction Ġthat Ġcreates Ġa Ġchart ĊĠĠĠ Ġfun Ġcreate Chart () Ġ{ ĊĠĠĠĠĠĠĠ Ġbar Chart Ġ= Ġset Chart ( bar Chart , Ġ"", ĠColor . BLACK , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresources . getColor ( R . color . gray _ lite ), Ġ 3 0 0 0 ) ĊĠĠĠĠĠĠĠ Ġlegend ( bar Chart ) ĊĠĠĠĠĠĠĠ Ġbar Chart . set Draw Grid Background ( true ) ĊĠĠĠĠĠĠĠ Ġbar Chart . set Draw Bar Shadow ( true ) ĊĠĠĠĠĠĠĠ Ġbar Chart . data Ġ= Ġget Bar Data () ĊĠĠĠĠĠĠĠ Ġbar Chart . invalidate () ĊĊĠĠĠĠĠĠĠ Ġaxis X ( bar Chart . xAxis ) ĊĠĠĠĠĠĠĠ Ġaxis Left ( bar Chart . axis Left ) ĊĠĠĠĠĠĠĠ Ġaxis R ig th ( bar Chart . axis Right ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun ĠgetData (): ĠBar DataSet Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠdataSet Ġ= ĠBar DataSet ( get Entries (), Ġ"") ĊĠĠĠĠĠĠĠ ĠdataSet . colors Ġ= Ġcolors ĊĠĠĠĠĠĠĠ ĠdataSet . value TextColor Ġ= ĠColor . BLACK ĊĠĠĠĠĠĠĠ ĠdataSet . bar Shadow Color Ġ= ĠColor . TRANSP ARENT ĊĠĠĠĠĠĠĠ ĠdataSet . value Text Size Ġ= Ġ 1 0 F ĊĊĠĠĠĠĠĠĠ Ġreturn ĠdataSet ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġget Bar Data (): ĠBar Data Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbar Data Ġ= ĠBar Data ( getData ()) ĊĠĠĠĠĠĠĠ Ġbar Data . bar Width Ġ= Ġ 0 . 4 5 F ĊĠĠĠĠĠĠĠ Ġreturn Ġbar Data ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠFunction Ġthat Ġmakes Ġthe Ġrequest Ġto Ġthe Ġserver Ġto Ġget Ġuser Ġinvest ments ĊĠĠĠ Ġfun Ġget Invest ments () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġaccount . get (" userId ") ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġ" http :// loan ppi . ke ving iral do . tech / app / api / v 1 / my _ invest ments ? id Invest or =" Ġ+ Ġid ĊĠĠĠĠĠĠĠ Ġval Ġqueue Ġ= ĠVol ley . new Request Queue ( context ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠRequest Ġa ĠJSON Ġresponse Ġfrom Ġthe Ġprovided ĠURL . ĊĠĠĠĠĠĠĠ Ġ// ĠCreate Ġthe Ġrequest . ĠIf Ġyou Ġhave Ġany Ġactive Ġinvest ments , Ġit Ġcalculates Ġinformation Ġon ĊĠĠĠĠĠĠĠ Ġ// Ġall Ġinvest ments Ġand Ġcalls Ġthe Ġfunction Ġresponsible Ġfor Ġdisplaying Ġthis Ġdata . ĠOtherwise , ĊĠĠĠĠĠĠĠ Ġ// Ġit Ġcalls Ġthe Ġfunction Ġin Ġcharge Ġof Ġshowing Ġa Ġmessage Ġencour aging Ġto Ġinvest ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠJson Array Request ( Request . Method . GET , Ġurl , Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResponse . Listener Ġ{ Ġresponse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . length () Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. ( response . length () Ġ- Ġ 1 )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfull Inv ested Amount Ġ+= Ġresponse . getJSONObject ( i ). get (" money Invest ment "). toString (). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfull E ar ns Ġ+= Ġresponse . getJSONObject ( i ). get (" total Return "). toString (). toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload Main Info (" show ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalues Ġ= ĠarrayOf ( full Inv ested Amount , Ġfull E ar ns . toInt ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Chart () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload Main Info (" hide ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResponse . Error Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Error Ġal Ġc argar Ġin version es : Ġ" Ġ+ Ġit . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( context , Ġ" Error Ġal Ġintent ar Ġc argar Ġlas Ġin version es .", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġ// ĠAdd Ġthe Ġrequest Ġto Ġthe ĠRequest Queue . ĊĠĠĠĠĠĠĠ Ġqueue . add ( request ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠLoads Ġthe Ġinformation Ġobtained Ġto Ġthe Ġuser 's Ġmain Ġfragment Ġdepending Ġon Ġwhether Ġor Ġnot Ġhe ĊĠĠĠ Ġ// Ġhas Ġat Ġleast Ġone Ġactive Ġinvestment ĊĠĠĠ Ġfun Ġload Main Info ( status : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( status Ġ== Ġ" hide ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. findViewById < TextView >( R . id . txt _ is _ empty )?. isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. findViewById < TextView >( R . id . txt _ is _ not _ empty )?. isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. findViewById < TextView >( R . id . txt _ main _ full _ ear ns )?. isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. findViewById < TextView >( R . id . txt _ main _ full _ inv ested _ amount )?. isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. findViewById < TextView >( R . id . txt _ main _ sub _ ear ns )?. isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbar Chart . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Full E ar ns . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Full Inv ested Amount . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. findViewById < TextView >( R . id . txt _ is _ empty )?. isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. findViewById < TextView >( R . id . txt _ is _ not _ empty )?. isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. findViewById < TextView >( R . id . txt _ main _ full _ ear ns )?. isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. findViewById < TextView >( R . id . txt _ main _ full _ inv ested _ amount )?. isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. findViewById < TextView >( R . id . txt _ main _ sub _ ear ns )?. isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbar Chart . isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Full E ar ns . isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Full Inv ested Amount . isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcop Format . maximum Fraction Digits Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvalue Full Inv ested Amount . setText ( cop Format . format ( full Inv ested Amount )) ĊĠĠĠĠĠĠĠ Ġvalue Full E ar ns . setText ( cop Format . format ( full E ar ns )) ĊĠĠĠ Ġ} Ċ } Ċ