package co.smartreceipts.android.model.utils;
import android.support.annotation.NonNull;
import java.util.ArrayList;
import java.util.List;
public class CurrencyUtils {
@NonNull
public static List<String> getAllCurrencies() {
final List<String> currencies = new ArrayList<>();
currencies.addAll(getIso4217CurrencyCodes());
currencies.addAll(getNonIso4217CurrencyCodes());
return currencies;
}
/**
* Returns a list of all ISO 4127 currencies
* http://en.wikipedia.org/wiki/ISO_4217
*
* @return a List<String> containing all ISO 4217 Currencies
*/
@NonNull
public static List<String> getIso4217CurrencyCodes() {
final ArrayList<String> iso4217Currencies = new ArrayList<>();
iso4217Currencies.add("AED");
iso4217Currencies.add("AFN");
iso4217Currencies.add("ALL");
iso4217Currencies.add("AMD");
iso4217Currencies.add("ANG");
iso4217Currencies.add("AOA");
iso4217Currencies.add("ARS");
iso4217Currencies.add("AUD");
iso4217Currencies.add("AWG");
iso4217Currencies.add("AZN");
iso4217Currencies.add("BAM");
iso4217Currencies.add("BBD");
iso4217Currencies.add("BDT");
iso4217Currencies.add("BGN");
iso4217Currencies.add("BHD");
iso4217Currencies.add("BIF");
iso4217Currencies.add("BMD");
iso4217Currencies.add("BND");
iso4217Currencies.add("BOB");
iso4217Currencies.add("BOV");
iso4217Currencies.add("BRL");
iso4217Currencies.add("BSD");
iso4217Currencies.add("BTN");
iso4217Currencies.add("BWP");
iso4217Currencies.add("BYR");
iso4217Currencies.add("BZD");
iso4217Currencies.add("CAD");
iso4217Currencies.add("CDF");
iso4217Currencies.add("CHE");
iso4217Currencies.add("CHF");
iso4217Currencies.add("CHW");
iso4217Currencies.add("CLF");
iso4217Currencies.add("CLP");
iso4217Currencies.add("CNY");
iso4217Currencies.add("COP");
iso4217Currencies.add("COU");
iso4217Currencies.add("CRC");
iso4217Currencies.add("CUC");
iso4217Currencies.add("CUP");
iso4217Currencies.add("CVE");
iso4217Currencies.add("CZK");
iso4217Currencies.add("DJF");
iso4217Currencies.add("DKK");
iso4217Currencies.add("DOP");
iso4217Currencies.add("DZD");
iso4217Currencies.add("EGP");
iso4217Currencies.add("ERN");
iso4217Currencies.add("ETB");
iso4217Currencies.add("EUR");
iso4217Currencies.add("FJD");
iso4217Currencies.add("FKP");
iso4217Currencies.add("GBP");
iso4217Currencies.add("GEL");
iso4217Currencies.add("GHS");
iso4217Currencies.add("GIP");
iso4217Currencies.add("GMD");
iso4217Currencies.add("GNF");
iso4217Currencies.add("GTQ");
iso4217Currencies.add("GYD");
iso4217Currencies.add("HKD");
iso4217Currencies.add("HNL");
iso4217Currencies.add("HRK");
iso4217Currencies.add("HTG");
iso4217Currencies.add("HUF");
iso4217Currencies.add("IDR");
iso4217Currencies.add("ILS");
iso4217Currencies.add("INR");
iso4217Currencies.add("IQD");
iso4217Currencies.add("IRR");
iso4217Currencies.add("ISK");
iso4217Currencies.add("JMD");
iso4217Currencies.add("JOD");
iso4217Currencies.add("JPY");
iso4217Currencies.add("KES");
iso4217Currencies.add("KGS");
iso4217Currencies.add("KHR");
iso4217Currencies.add("KMF");
iso4217Currencies.add("KPW");
iso4217Currencies.add("KRW");
iso4217Currencies.add("KWD");
iso4217Currencies.add("KYD");
iso4217Currencies.add("KZT");
iso4217Currencies.add("LAK");
iso4217Currencies.add("LBP");
iso4217Currencies.add("LKR");
iso4217Currencies.add("LRD");
iso4217Currencies.add("LSL");
iso4217Currencies.add("LTL");
iso4217Currencies.add("LVL");
iso4217Currencies.add("LYD");
iso4217Currencies.add("MAD");
iso4217Currencies.add("MDL");
iso4217Currencies.add("MGA");
iso4217Currencies.add("MKD");
iso4217Currencies.add("MMK");
iso4217Currencies.add("MNT");
iso4217Currencies.add("MOP");
iso4217Currencies.add("MRO");
iso4217Currencies.add("MUR");
iso4217Currencies.add("MVR");
iso4217Currencies.add("MWK");
iso4217Currencies.add("MXN");
iso4217Currencies.add("MXV");
iso4217Currencies.add("MYR");
iso4217Currencies.add("MZN");
iso4217Currencies.add("NAD");
iso4217Currencies.add("NGN");
iso4217Currencies.add("NIO");
iso4217Currencies.add("NIS");
iso4217Currencies.add("NOK");
iso4217Currencies.add("NPR");
iso4217Currencies.add("NZD");
iso4217Currencies.add("OMR");
iso4217Currencies.add("PAB");
iso4217Currencies.add("PEN");
iso4217Currencies.add("PGK");
iso4217Currencies.add("PHP");
iso4217Currencies.add("PKR");
iso4217Currencies.add("PLN");
iso4217Currencies.add("PYG");
iso4217Currencies.add("QAR");
iso4217Currencies.add("RON");
iso4217Currencies.add("RSD");
iso4217Currencies.add("RUB");
iso4217Currencies.add("RWF");
iso4217Currencies.add("SAR");
iso4217Currencies.add("SBD");
iso4217Currencies.add("SCR");
iso4217Currencies.add("SDG");
iso4217Currencies.add("SEK");
iso4217Currencies.add("SGD");
iso4217Currencies.add("SHP");
iso4217Currencies.add("SLL");
iso4217Currencies.add("SOS");
iso4217Currencies.add("SRD");
iso4217Currencies.add("SSP");
iso4217Currencies.add("STD");
iso4217Currencies.add("SYP");
iso4217Currencies.add("SZL");
iso4217Currencies.add("THB");
iso4217Currencies.add("TJS");
iso4217Currencies.add("TMT");
iso4217Currencies.add("TND");
iso4217Currencies.add("TOP");
iso4217Currencies.add("TRY");
iso4217Currencies.add("TTD");
iso4217Currencies.add("TWD");
iso4217Currencies.add("TZS");
iso4217Currencies.add("UAH");
iso4217Currencies.add("UGX");
iso4217Currencies.add("USD");
iso4217Currencies.add("USN");
iso4217Currencies.add("USS");
iso4217Currencies.add("UYI");
iso4217Currencies.add("UYU");
iso4217Currencies.add("UZS");
iso4217Currencies.add("VEF");
iso4217Currencies.add("VND");
iso4217Currencies.add("VUV");
iso4217Currencies.add("WST");
iso4217Currencies.add("XAF");
iso4217Currencies.add("XAG");
iso4217Currencies.add("XAU");
iso4217Currencies.add("XBA");
iso4217Currencies.add("XBB");
iso4217Currencies.add("XBC");
iso4217Currencies.add("XBD");
iso4217Currencies.add("XCD");
iso4217Currencies.add("XDR");
iso4217Currencies.add("XFU");
iso4217Currencies.add("XOF");
iso4217Currencies.add("XPD");
iso4217Currencies.add("XPF");
iso4217Currencies.add("XPT");
iso4217Currencies.add("XTS");
iso4217Currencies.add("XXX");
iso4217Currencies.add("YER");
iso4217Currencies.add("ZAR");
iso4217Currencies.add("ZMW");
iso4217Currencies.add("ZWL");
return iso4217Currencies;
}
/**
* Returns a list of non ISO 4217 Currency Codes (e.g. crypto-currencies, non-official ones, etc.)
* Mostly ones that have been requested over time.
*
* @return a {@link List} of extra currency codes
*/
@NonNull
public static List<String> getNonIso4217CurrencyCodes() {
final ArrayList<String> nonIso4217Currencies = new ArrayList<>();
nonIso4217Currencies.add("BSF");
nonIso4217Currencies.add("BTC"); // Bitcoin
nonIso4217Currencies.add("BYN"); // New Belarus Currency
nonIso4217Currencies.add("DOGE"); // Dogecoin
nonIso4217Currencies.add("DRC");
nonIso4217Currencies.add("GHS");
nonIso4217Currencies.add("GST");
nonIso4217Currencies.add("LTC"); // Litecoin
nonIso4217Currencies.add("PPC"); // Peercoin
nonIso4217Currencies.add("SJCX"); // Storjcoin
nonIso4217Currencies.add("XCP"); // CounterParty
nonIso4217Currencies.add("XOF");
nonIso4217Currencies.add("ZMK");
nonIso4217Currencies.add("ZWD");
return nonIso4217Currencies;
}
}