Skip to content

Conversation

@ovitrif
Copy link
Collaborator

@ovitrif ovitrif commented Jan 9, 2026

This PR:

  1. Localizes most of the remaining hardcoded strings
    • Some toast messages aren't yet localized but the plan is to refactor the toast apis so we can pass either resourceId or string and localize the remaining texts in the PR for that work.
  2. Adds dynamic boost fee time confirmation estimates
    • Although on UI it will almost always still show the same estimate as the hardcoded one, that is because of the values of the fee rates.
  3. Implements weather widget API response caching
  4. Fixes WalletRepo state management by replacing uiState with individual repo states
  5. Cleans up deprecated code, warnings, and TODOs across the codebase
  6. Fixes all errors to use class instead of data class or data object
  7. Adds context to logs where it was missing
  8. Refactors most try/catch statements to runCatching
  9. Restructures Env constants
  10. Replaces combined main uiState with direct use of the separated node & wallet state
  11. Simplifies LightningService by removing redundant state management
  12. Removes deprecated migration test
  13. Remove completed TODOs and fixes or suppresses remaining ones
  14. Updates AGP & adds compose-stability-analyzer plugin
  15. Fixes or suppress all lint warnings
  16. Updates README and documentation adding recommended IDE plugins with setup guide
  17. Localizes articles timestamps using modern android APIs for relative time texts
  18. Captures and cancels job for LDK event listener
  19. Fixes toast blur on wallet restore error screen
  20. Removes logs reset on wallet wipe (now only for debug builds)

Preview

N/A

QA Notes

Tests:

1. Boost Fee Estimates

  • Open a pending on-chain transaction
  • Tap boost/accelerate
  • Verify fee slider shows dynamic time estimates (e.g., "~10 min", "~30 min")

3. Weather Widget

  • Enable weather widget
  • Observe API calls are cached (check logs)
  • Widget should still update but without excessive network requests

4. Regression Testing

  • Verify wallet balance displays correctly
  • Test sending and receiving Lightning payments
  • Confirm background notifications work as expected

5️⃣ - Check timestamps of articles in widget using different languages - should be localized

@ovitrif ovitrif self-assigned this Jan 9, 2026
@ovitrif ovitrif changed the title chore: fix warnings and cleanup codebase chore: fix all warnings and cleanup codebase Jan 9, 2026
@ovitrif ovitrif changed the title chore: fix all warnings and cleanup codebase chore: fix all warnings and code cleanup Jan 9, 2026
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR performs comprehensive code cleanup and quality improvements across the codebase, addressing warnings, localizing hardcoded strings, and implementing new features for boost fee estimation and weather widget caching.

Changes:

  • Adds dynamic boost fee time estimates based on fee rates
  • Implements API response caching for weather widget
  • Localizes remaining hardcoded strings throughout the UI
  • Refactors error handling to use runCatching pattern consistently
  • Removes deprecated code and updates dependencies
  • Converts NotificationUtils object functions to extension functions
  • Simplifies state management by removing combined MainUiState in favor of direct repository state usage

Reviewed changes

Copilot reviewed 174 out of 176 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
gradle/libs.versions.toml Updates AGP to 8.13.2 and adds compose stability analyzer plugin
docs/strings.md Adds comprehensive documentation of dev-only strings that don't need translation
config/detekt/detekt.yml Expands magic number ignore list for common technical values
app/src/main/res/values/strings.xml Adds numerous localized strings for errors, settings, and UI elements
app/src/main/java/to/bitkit/ui/sheets/BoostTransactionViewModel.kt Implements dynamic fee time estimation based on blocktank fee rates
app/src/main/java/to/bitkit/viewmodels/WalletViewModel.kt Removes deprecated combined uiState in favor of individual state flows
app/src/main/java/to/bitkit/services/LightningService.kt Extensive cleanup including better logging, error handling, and removing deprecated fee conversion
app/src/main/java/to/bitkit/utils/Errors.kt Converts sealed class error objects to classes for proper exception cause chains
app/src/main/java/to/bitkit/ui/utils/NotificationUtils.kt Deleted file - functions converted to Context extensions
app/src/main/java/to/bitkit/ui/Notifications.kt Adds notification utility extension functions for Context

@ovitrif ovitrif enabled auto-merge January 14, 2026 02:56
@claude

This comment has been minimized.

@claude

This comment has been minimized.

@ovitrif
Copy link
Collaborator Author

ovitrif commented Jan 14, 2026

@claude what are the steps of the failing e2e tests and which tests are specifically failing, so we can test manually and fix the implementation on this PR as needed

@claude

This comment has been minimized.

@ovitrif ovitrif marked this pull request as draft January 14, 2026 12:01
auto-merge was automatically disabled January 14, 2026 12:01

Pull request was converted to draft

@ovitrif
Copy link
Collaborator Author

ovitrif commented Jan 14, 2026

Drafted to expand the work and address the e2e failures.

@ovitrif ovitrif requested a review from jvsena42 January 14, 2026 15:03
@ovitrif ovitrif marked this pull request as ready for review January 14, 2026 17:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants