Exclude withdrawn currencies from the picker, keep precious metals
Currency.getAvailableCurrencies() (JVM/Android) and NSLocale.ISOCurrencyCodes (iOS/macOS) return every ISO 4217 code the platform has ever known about — withdrawn currencies like the Deutsche Mark and French Franc, and test/ placeholder codes (XTS, XXX), included. Measured on the JVM: 232 total codes, only 156 still assigned to a country. Filters the list down to currencies actually assigned to an ISO country today, which drops the withdrawn ones without needing a maintained exclusion list. Precious metals (XAU, XAG, XPD, XPT) are added back in since they're still actively traded despite not being tied to any country. Web is left unfiltered — there's no reliable country-to-currency API there. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QpjMKWGoiT5aJBzhxvXkwp
This commit is contained in:
@@ -2,6 +2,14 @@ package xyz.tyiu.satsprice
|
||||
|
||||
data class CurrencyInfo(val code: String, val displayName: String)
|
||||
|
||||
/**
|
||||
* ISO 4217 codes for the precious metals actively traded today. These aren't tied to any
|
||||
* country, so a currently-used-currency filter derived from country/locale data (as the
|
||||
* Android/JVM/Apple [systemCurrencies] implementations do, to drop long-withdrawn currencies
|
||||
* like the Deutsche Mark) would otherwise exclude them too.
|
||||
*/
|
||||
val PRECIOUS_METAL_CURRENCY_CODES: Set<String> = setOf("XAU", "XAG", "XPD", "XPT")
|
||||
|
||||
/** All ISO 4217 currencies the current platform knows about, with localized display names. */
|
||||
expect fun systemCurrencies(): List<CurrencyInfo>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user