Format test store price strings with same currency code and locale as localizedPriceString #5784
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.
Checklist
purchases-androidand hybridsMotivation
Some internal context here. Basically the
localizedPriceString(the pre-formatted product price) was formatted using theprice.currencyfrom the actual product here . Whereas all the other prices were formatted using theTestStoreProduct's priceFormatter, which was configured to use theTestStoreProduct'slocale.rc_currencyCode, which was AFAIK alwaysLocale.current, which means that the formatted prices would be formatted according to the device's locale. Which will often be different from the product's currency.TL;DR.
localizePriceStringused the product's currency, all other formatted strings used the device's locale's currency, causing discrepancies.Description
This was fixed by passing the
currencyCodeto theTestStoreProduct, ensuring it can format prices using the correct currencyCode. A fallback using the old behavior is still in place in order to maintain backwards compatibility (the public API of theTestStoreProductinitializer).