Refactor GPlay billing error handling and translations

This commit introduces localized error messages for Google Play billing issues and refactors the error handling in `UpgradeRepoGplay`.

- `BillingException` and `BillingResultException` now implement `HasLocalizedError` to provide user-friendly error messages.
- New string translations for billing error labels and descriptions have been added for various languages.
- `UpgradeRepoGplay` now includes an `error` field in its `Info` state to propagate billing errors.
- The `upgradeInfo` flow in `UpgradeRepoGplay` has been updated with a `retryWhen` operator to handle errors more gracefully. If an error occurs but the pro state was recent, it emits a grace period state. Otherwise, it emits the error.
- `OverviewFragmentVM` now observes `upgradeState` and posts any non-pro errors to `errorEvents` for display.
This commit is contained in:
darken
2025-08-30 17:12:36 +02:00
committed by Matthias Urhahn
parent 2fa33b13a3
commit 02ff7089c0
81 changed files with 353 additions and 9 deletions
@@ -17,6 +17,8 @@ interface UpgradeRepo {
val isPro: Boolean
val upgradedAt: Instant?
val error: Throwable?
}
enum class Type {