Only auto-refresh the currencies needed by the app #352
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The CurrencyManager is currently fetching data from 5 different sources. This is largely unnecessary work for most users. For example, if you're only using the Euro or the US Dollar, then you only really need to fetch from 1 source.
This PR optimizes the auto-refresh task to only fetch the currencies needed by the app. For example, if the user is only using COP (Colombian Pesos), then the currency manager will only fetch:
and we'll see something like this in the logs:
The key to this optimization is the existing
AppConfigurationManager.preferredFiatCurrencies
:(Where
primary
is the user's configured fiat currency, andothers
includes those in the Currency Converter)So as long as the UI code properly updates
AppConfigurationManager.preferredFiatCurrencies
, then theCurrencyManager
can optimize the auto-refresh logic, and perform much less work.