/* Ċ Ġ* ĠĠ ĠCopyright Ġ 2 0 2 1 ĠB eno it ĠLET OND OR Ċ Ġ* Ċ Ġ* ĠĠ ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* ĠĠ Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠĠ ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠĠ ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* ĠĠ Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠĠ ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠĠ ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* ĠĠ Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġcom . simple budget . helper Ċ Ċ import Ġcom . simple budget . prefs . App Preferences Ċ Ċ import Ġjava . text . NumberFormat Ċ import Ġjava . util . ArrayList Ċ import Ġjava . util . Currency Ċ Ċ /** Ċ Ġ* ĠHelper Ġto Ġwork Ġwith Ġc urrencies Ġand Ġdisplay Ċ Ġ* Ċ Ġ* Ġ@ author ĠB eno it ĠLET OND OR Ċ Ġ*/ Ċ object ĠCurrency Helper Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠList Ġof Ġmain Ġc urrencies ĠISO Ġ 4 2 1 7 Ġcode ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval ĠMAIN _ CUR REN CI ES Ġ= ĊĠĠĠĠĠĠĠ ĠarrayOf (" USD ", Ġ" EUR ", Ġ" GBP ", Ġ" IR N ", Ġ" AUD ", Ġ" CAD ", Ġ" SG D ", Ġ" CH F ", Ġ" MY R ", Ġ" J PY ", Ġ" CN Y ", Ġ" NZ D ") Ċ Ċ // Ġ---------------------------------------- -> ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturn Ġa Ġlist Ġof Ġavailable Ġmain Ġc urrencies Ġbased Ġon Ġ[. MAIN _ CUR REN CI ES ] Ġcodes ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġa Ġlist Ġof Ġc urrencies ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Main Available C urrencies (): ĠList < Currency > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmain C urrencies Ġ= ĠArrayList < Currency >( MAIN _ CUR REN CI ES . size ) ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( currency Code Ġin ĠMAIN _ CUR REN CI ES ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurrency Ġ= ĠCurrency . getInstance ( currency Code ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( currency Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmain C urrencies . add ( currency ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLogger . debug (" Unable Ġto Ġfind Ġcurrency Ġwith Ġcode : Ġ$ currency Code ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġmain C urrencies ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturn Ġa Ġlist Ġof Ġavailable Ġc urrencies Ġminus Ġmain Ġones ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġa Ġlist Ġof Ġother Ġavailable Ġc urrencies ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Other Available C urrencies (): ĠList < Currency > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmain C urrencies Ġ= Ġget Main Available C urrencies () ĊĊĠĠĠĠĠĠĠ Ġreturn ĠCurrency . get Available C urrencies (). filter Ġ{ Ġ! main C urrencies . contains ( it ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġthe Ġcurrency Ġdisplay Ġname ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Currency DisplayName ( currency : ĠCurrency ): ĠString Ġ= ĊĠĠĠĠĠĠĠ Ġcurrency . symbol Ġ+ Ġ" Ġ- Ġ" Ġ+ Ġcurrency . displayName ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠHelper Ġto Ġdisplay Ġan Ġamount Ġusing Ġthe Ġuser Ġcurrency ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Formatted Currency String ( app Preferences : ĠApp Preferences , Ġamount : ĠDouble ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcurrency Format Ġ= ĠNumber Format . getC urrency Instance () ĊĊĠĠĠĠĠĠĠ Ġ// ĠNo Ġfraction Ġdigits ĊĠĠĠĠĠĠĠ Ġcurrency Format . maximum Fraction Digits Ġ= Ġ 2 ĊĠĠĠĠĠĠĠ Ġcurrency Format . minimum Fraction Digits Ġ= Ġ 2 ĊĊĠĠĠĠĠĠĠ Ġcurrency Format . currency Ġ= Ġapp Preferences . getUser Currency () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġcurrency Format . format ( amount ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠHelper Ġto Ġdisplay Ġan Ġamount Ġinto Ġan Ġedit Ġtext ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Formatted Amount Value ( amount : ĠDouble ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġformat Ġ= ĠNumber Format . getInstance () ĊĊĠĠĠĠĠĠĠ Ġformat . maximum Fraction Digits Ġ= Ġ 2 ĊĠĠĠĠĠĠĠ Ġformat . minimum Fraction Digits Ġ= Ġ 2 ĊĠĠĠĠĠĠĠ Ġformat . is Grouping Used Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġformat . format ( amount ). replace (",", Ġ". ") ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠThe Ġchosen ĠISO Ġcode Ġof Ġthe Ġcurrency Ġ( string ) Ċ Ġ*/ Ċ private Ġconst Ġval ĠCUR RE NCY _ ISO _ PARAMETERS _ KEY Ġ= Ġ" currency _ iso " Ċ Ċ fun ĠApp Preferences . getUser Currency (): ĠCurrency Ġ= ĊĠĠĠ ĠCurrency . getInstance ( getString ( CUR RE NCY _ ISO _ PARAMETERS _ KEY )) Ċ Ċ fun ĠApp Preferences . setUser Currency ( currency : ĠCurrency ) Ġ{ ĊĠĠĠ Ġput String ( CUR RE NCY _ ISO _ PARAMETERS _ KEY , Ġcurrency . currency Code ) Ċ } Ċ