Release/v4.10.4 - #244
Merged
Merged
Conversation
🚀[Release v4.4.1] Merge into Develop
This reverts commit 4e252ac. # Conflicts: # app/src/main/java/com/brainwallet/tools/manager/APIManager.kt
Add version and code to welcome screen
This reverts commit 4e252ac. # Conflicts: # app/src/main/java/com/brainwallet/tools/manager/APIManager.kt
…et-co/android into hotfix/api-manager-fix
Hotfix/api manager fix
fix: race condition when clear shared prefs values after wipeAll
Feat/new peer discovery
from the new peer discovery (v4.2.0)
* chore: update core submodule * chore: resolve conflict * Update build.gradle.kts version and code bump * chore: for now at BRPeerManager.wrapConnectV2 only using connect, since the core using hardcoded peers * fix: fix write down confirm screen (#63) * fix: fix write down confirm screen * fix: fix allow seed word item not unique * chore: cherry picked and adjust from - f2fa8e1 - 98644c4 - 9396927 - 7ad4b98 - 8e57d2a * fix: fix crash can't parse response inside LtcRepository.fetchRates * fix: fix crash (failed parse) when SelectedPeersRepository.fetchSelectedPeers got unsuccessful response * code bump * fix: ConcurrentModificationException at BRPeerManager.txStatusUpdate * feat: implement new API * code bump --------- Co-authored-by: Kerry Washington <mrkerrywashington@icloud.com>
…se the previous response is still open (#73)
* Fixed and normalized polling from a single source. Added a remote config to modulate the sync and non sync durations update the core module * Refactored the webviews * pulled in the fpf rate and the removed peers * bump
* Added remote config to shop * Match event name * Added activity indicator
polished the url
* Working Route with Bitrefill Update remote config defaults Adding and unwrapping the JSON for the cards * Version bump Working version * Seriously refactoring the BreadActivity Remvoed more cruft of BreadActivity Able to debug crash which was calling the cards before they are filled * Parsed remote data of the widget and cards * Close to layouts are well polished * Working the cards with polish * Refactored the tests
* Update bw-gdlib moved to the proper module * Updated the core from PeerManager * Fixed the negative value Added the sound
* release/v4.9.3 (#234) * Revert "Updated the APIManager" This reverts commit 4e252ac29cfb6c3ab26ae5ea4a8f6de154311f2e. # Conflicts: # app/src/main/java/com/brainwallet/tools/manager/APIManager.kt * Reverted the Kotlin APIManager. * Add version and code to welcome screen * reset padding * Revert "Updated the APIManager" This reverts commit 4e252ac29cfb6c3ab26ae5ea4a8f6de154311f2e. # Conflicts: # app/src/main/java/com/brainwallet/tools/manager/APIManager.kt * Reverted the Kotlin APIManager. * fix: fix crash when FragmentSignal dismissed * fix: fix sync after wipe * fix: fix wrong lifecycle to trigger callback at FragmentSignal * Update issue templates * updated core changes per @andhikayuana * Rename .java to .kt * chore: refactor BRApiManager & APIClient * chore: remove unused part at APIClient * feat: wip new peer discovery * feat: implement selected peer ip address from cache (fetched from API) * feat: implement selected peer ip address from cache (fetched from API) * feat: filter out peers with NODE_NETWORK, NODE_BLOOM * fix: race condition when clear shared prefs values after wipeAll * Updating the core library from the new peer discovery (v4.2.0) * Chore/revert pre peer discovery (Android) (#69) * chore: update core submodule * chore: resolve conflict * Update build.gradle.kts version and code bump * chore: for now at BRPeerManager.wrapConnectV2 only using connect, since the core using hardcoded peers * fix: fix write down confirm screen (#63) * fix: fix write down confirm screen * fix: fix allow seed word item not unique * chore: cherry picked and adjust from - f2fa8e1e4fb9c7429fa86461b24b4463a7969ecf - 98644c425b2fdae7b8b424708fb1a61ad983a9d8 - 93969278da8f95adc0c9f0f8411c8a27876a4d77 - 7ad4b9853b7d1bf7ddbaa576242d8800615a48fb - 8e57d2a67420565b40b753dec5a533776da4821f * fix: fix crash can't parse response inside LtcRepository.fetchRates * fix: fix crash (failed parse) when SelectedPeersRepository.fetchSelectedPeers got unsuccessful response * code bump * fix: ConcurrentModificationException at BRPeerManager.txStatusUpdate * feat: implement new API * code bump --------- Co-authored-by: Kerry Washington <mrkerrywashington@icloud.com> * feat: remove unused activity (ImportActivity) at AndroidManifest.xml (#71) * fix: fix crash IllegalStateException: cannot make a new request because the previous response is still open (#73) * code bump * Feat/move tx fee (#74) * chore: add new translations at strings.xml * feat: move network fee to HomeSettingDrawerSheet & remove unused code * fix: fix dismiss allow state loss (#76) * fix: fix typo at strings.xml (#75) * feat: new UI for receive and topup flow (moonpay integration) (#72) * feat: [WIP][UI] new UI for receive and topup flow * feat: [WIP][UI] implement copy address and some refactor * feat: replace webview using CustomTabsIntent from androidx.browser * feat: replace webview using CustomTabsIntent from androidx.browser * feat: add PickerWheel * chore: rename param at QRUtils.generateQR * chore: revert default startDestination at BrainwalletActivity * feat: wip moonpay integration * feat: wip moonpay integration * chore: new UI for ReceiveDialog * chore: parse error from response API at BrainwalletViewModel * chore: add /moonpay/buy-quote and remove dev base url * chore: make LegacyNavigation.showMoonPayWidget receive params for the widget url * chore: add GetMoonpayBuyQuoteResponse * chore: wip moonpay integration to call buy-quote * fix: fix wheel picker for IDR at ReceiveDialog * fix: fix invalid signature * feat: moonpay integration at onboarding flow at BuyLitecoinScreen also fix some stuffs * chore: replace base url for moonpay buy integration when debug * chore: introduce LocalCacheSource.kt and cache fetch limits * chore: adjustment receive dialog UI - debounce fiat currency to 2s - increment in 10 - remove decimal places - default value to 10% of range * chore: reorder bottom navigation item and add new strings * chore: add new translations * chore: refactor UI for buy and receive dialog * chore: cleanup ReceiveDialogViewModel * chore: using MoonpayBuyWidget * chore: adjustment moonpaywidget * chore: for now moonpay widget using CustomTabsIntent * version and code bump * Added support url (#81) - changed the language - code bump * version and code bump * Revert from eda0f532 & cherry pick (#86) * version bump * feat: new UI for receive and topup flow (moonpay integration) (#72) * feat: [WIP][UI] new UI for receive and topup flow * feat: [WIP][UI] implement copy address and some refactor * feat: replace webview using CustomTabsIntent from androidx.browser * feat: replace webview using CustomTabsIntent from androidx.browser * feat: add PickerWheel * chore: rename param at QRUtils.generateQR * chore: revert default startDestination at BrainwalletActivity * feat: wip moonpay integration * feat: wip moonpay integration * chore: new UI for ReceiveDialog * chore: parse error from response API at BrainwalletViewModel * chore: add /moonpay/buy-quote and remove dev base url * chore: make LegacyNavigation.showMoonPayWidget receive params for the widget url * chore: add GetMoonpayBuyQuoteResponse * chore: wip moonpay integration to call buy-quote * fix: fix wheel picker for IDR at ReceiveDialog * fix: fix invalid signature * feat: moonpay integration at onboarding flow at BuyLitecoinScreen also fix some stuffs * chore: replace base url for moonpay buy integration when debug * chore: introduce LocalCacheSource.kt and cache fetch limits * chore: adjustment receive dialog UI - debounce fiat currency to 2s - increment in 10 - remove decimal places - default value to 10% of range * chore: reorder bottom navigation item and add new strings * chore: add new translations * chore: refactor UI for buy and receive dialog * chore: cleanup ReceiveDialogViewModel * chore: using MoonpayBuyWidget * chore: adjustment moonpaywidget * chore: for now moonpay widget using CustomTabsIntent * chore: set allowSpend to false when recommend rescan click * fix: add delete transaction data from local database * Removed chatty event * chore: add analytics at BRWalletManager.publishCallback * chore: make sure calculation and static fee same as iOS, add setting for selected fee type --------- Co-authored-by: Kerry Washington <mrkerrywashington@icloud.com> * build bump * chore: open bread activity first then open moonpay widget (#88) * Adjustment for circleci (#89) * chore: wip adjustment for screengrab * chore: [circleci] adjust config.yml * chore: [circleci] update config.yml, Fastfile, Gemfile.lock, RecoverWalletScreenGrabsTest.kt * chore: [circleci] for now just unit-test * fix: android: Footer version label is obfuscated (#92) * fix: android: Footer version label is obfuscated * fix: [#92] android: Footer version label is obfuscated * fix: You saved it right screen reset button covers words (#93) * fix: [#84] change seed words layout to lazy vertical grid * fix: [#84] refactor seed words layout * tiny resizing (#94) * code and version bump * change break (#97) adds a android user agent and externalID * build code number fix: [#96] remove bottom_nav_menu_us and just using bottom_nav_menu for consistency (#98) * fix: [#137] fix: Reset fiat options in Buy / Receive modal (#99) * Chore/update device data (#100) * change break adds a android user agent and externalID * Update ReceiveDialogViewModel.kt * chore: refactor request params for fetchMoonpaySignedUrl --------- Co-authored-by: andhikayuana <andhikayuana@gmail.com> * Add agent string obfuscation (#103) * updated metadata (#105) * chore: remove screen lock detection (#106) * 🧰 Fx/seed words UI polish (#108) * changed to tap * Added instruction label -added localizations * Added 'empty string for when confirm is completed * version and code bump * fix typo replaced click file with mp3 added error sound * ❇️ Feat/add polish punjabi farsi (#109) * changed to tap * Added instruction label -added localizations * Added 'empty string for when confirm is completed * version and code bump * fix typo replaced click file with mp3 added error sound * added 3 languages * Removed unused audio files * polished tests * removed unused asset pack * code bump * fix: fix YourSeedProveItState.isWordUsedCorrectly (#111) * Upgrade targetSdk 36 (#113) * chore: change drawable with density for brainwallet_logotype_white * chore: adjustment WelcomeScreen.kt * chore: adjustment for targetSdk 36 also support 16KB page size * feat(#195): adopt koin annotation for dependency injection (#120) * Create PULL_REQUEST_TEMPLATE.md Create PULL_REQUEST_TEMPLATE.md * bump for test (#121) * bump for test * Updated the template * polishes * feat(#174): initiate games module (#119) * Force pushed the version and code bump and catch up with Prod. * 🚀[Release v4.7.2] Merge into Develop (#127) * 🚀[Release v4.4.7] Merge into Main (#70) * Revert "Updated the APIManager" This reverts commit 4e252ac29cfb6c3ab26ae5ea4a8f6de154311f2e. # Conflicts: # app/src/main/java/com/brainwallet/tools/manager/APIManager.kt * Reverted the Kotlin APIManager. * Add version and code to welcome screen * reset padding * Revert "Updated the APIManager" This reverts commit 4e252ac29cfb6c3ab26ae5ea4a8f6de154311f2e. # Conflicts: # app/src/main/java/com/brainwallet/tools/manager/APIManager.kt * Reverted the Kotlin APIManager. * fix: fix crash when FragmentSignal dismissed * fix: fix sync after wipe * fix: fix wrong lifecycle to trigger callback at FragmentSignal * Update issue templates * updated core changes per @andhikayuana * Rename .java to .kt * chore: refactor BRApiManager & APIClient * chore: remove unused part at APIClient * feat: wip new peer discovery * feat: implement selected peer ip address from cache (fetched from API) * feat: implement selected peer ip address from cache (fetched from API) * feat: filter out peers with NODE_NETWORK, NODE_BLOOM * fix: race condition when clear shared prefs values after wipeAll * Updating the core library from the new peer discovery (v4.2.0) * Chore/revert pre peer discovery (Android) (#69) * chore: update core submodule * chore: resolve conflict * Update build.gradle.kts version and code bump * chore: for now at BRPeerManager.wrapConnectV2 only using connect, since the core using hardcoded peers * fix: fix write down confirm screen (#63) * fix: fix write down confirm screen * fix: fix allow seed word item not unique * chore: cherry picked and adjust from - f2fa8e1e4fb9c7429fa86461b24b4463a7969ecf - 98644c425b2fdae7b8b424708fb1a61ad983a9d8 - 93969278da8f95adc0c9f0f8411c8a27876a4d77 - 7ad4b9853b7d1bf7ddbaa576242d8800615a48fb - 8e57d2a67420565b40b753dec5a533776da4821f * fix: fix crash can't parse response inside LtcRepository.fetchRates * fix: fix crash (failed parse) when SelectedPeersRepository.fetchSelectedPeers got unsuccessful response * code bump * fix: ConcurrentModificationException at BRPeerManager.txStatusUpdate * feat: implement new API * code bump --------- Co-authored-by: Kerry Washington <mrkerrywashington@icloud.com> --------- Co-authored-by: andhikayuana <andhikayuana@gmail.com> * 🚀[Release v4.5.0] Merge into Main (#78) * Revert "Updated the APIManager" This reverts commit 4e252ac29cfb6c3ab26ae5ea4a8f6de154311f2e. # Conflicts: # app/src/main/java/com/brainwallet/tools/manager/APIManager.kt * Reverted the Kotlin APIManager. * Add version and code to welcome screen * reset padding * Revert "Updated the APIManager" This reverts commit 4e252ac29cfb6c3ab26ae5ea4a8f6de154311f2e. # Conflicts: # app/src/main/java/com/brainwallet/tools/manager/APIManager.kt * Reverted the Kotlin APIManager. * fix: fix crash when FragmentSignal dismissed * fix: fix sync after wipe * fix: fix wrong lifecycle to trigger callback at FragmentSignal * Update issue templates * updated core changes per @andhikayuana * Rename .java to .kt * chore: refactor BRApiManager & APIClient * chore: remove unused part at APIClient * feat: wip new peer discovery * feat: implement selected peer ip address from cache (fetched from API) * feat: implement selected peer ip address from cache (fetched from API) * feat: filter out peers with NODE_NETWORK, NODE_BLOOM * fix: race condition when clear shared prefs values after wipeAll * Updating the core library from the new peer discovery (v4.2.0) * Chore/revert pre peer discovery (Android) (#69) * chore: update core submodule * chore: resolve conflict * Update build.gradle.kts version and code bump * chore: for now at BRPeerManager.wrapConnectV2 only using connect, since the core using hardcoded peers * fix: fix write down confirm screen (#63) * fix: fix write down confirm screen * fix: fix allow seed word item not unique * chore: cherry picked and adjust from - f2fa8e1e4fb9c7429fa86461b24b4463a7969ecf - 98644c425b2fdae7b8b424708fb1a61ad983a9d8 - 93969278da8f95adc0c9f0f8411c8a27876a4d77 - 7ad4b9853b7d1bf7ddbaa576242d8800615a48fb - 8e57d2a67420565b40b753dec5a533776da4821f * fix: fix crash can't parse response inside LtcRepository.fetchRates * fix: fix crash (failed parse) when SelectedPeersRepository.fetchSelectedPeers got unsuccessful response * code bump * fix: ConcurrentModificationException at BRPeerManager.txStatusUpdate * feat: implement new API * code bump --------- Co-authored-by: Kerry Washington <mrkerrywashington@icloud.com> * feat: remove unused activity (ImportActivity) at AndroidManifest.xml (#71) * fix: fix crash IllegalStateException: cannot make a new request because the previous response is still open (#73) * code bump * Feat/move tx fee (#74) * chore: add new translations at strings.xml * feat: move network fee to HomeSettingDrawerSheet & remove unused code * fix: fix dismiss allow state loss (#76) * fix: fix typo at strings.xml (#75) * feat: new UI for receive and topup flow (moonpay integration) (#72) * feat: [WIP][UI] new UI for receive and topup flow * feat: [WIP][UI] implement copy address and some refactor * feat: replace webview using CustomTabsIntent from androidx.browser * feat: replace webview using CustomTabsIntent from androidx.browser * feat: add PickerWheel * chore: rename param at QRUtils.generateQR * chore: revert default startDestination at BrainwalletActivity * feat: wip moonpay integration * feat: wip moonpay integration * chore: new UI for ReceiveDialog * chore: parse error from response API at BrainwalletViewModel * chore: add /moonpay/buy-quote and remove dev base url * chore: make LegacyNavigation.showMoonPayWidget receive params for the widget url * chore: add GetMoonpayBuyQuoteResponse * chore: wip moonpay integration to call buy-quote * fix: fix wheel picker for IDR at ReceiveDialog * fix: fix invalid signature * feat: moonpay integration at onboarding flow at BuyLitecoinScreen also fix some stuffs * chore: replace base url for moonpay buy integration when debug * chore: introduce LocalCacheSource.kt and cache fetch limits * chore: adjustment receive dialog UI - debounce fiat currency to 2s - increment in 10 - remove decimal places - default value to 10% of range * chore: reorder bottom navigation item and add new strings * chore: add new translations * chore: refactor UI for buy and receive dialog * chore: cleanup ReceiveDialogViewModel * chore: using MoonpayBuyWidget * chore: adjustment moonpaywidget * chore: for now moonpay widget using CustomTabsIntent * version and code bump --------- Co-authored-by: andhikayuana <andhikayuana@gmail.com> * 🚀[Release v4.5.4] Merge into Main (#87) * Revert "Updated the APIManager" This reverts commit 4e252ac29cfb6c3ab26ae5ea4a8f6de154311f2e. # Conflicts: # app/src/main/java/com/brainwallet/tools/manager/APIManager.kt * Reverted the Kotlin APIManager. * Add version and code to welcome screen * reset padding * Revert "Updated the APIManager" This reverts commit 4e252ac29cfb6c3ab26ae5ea4a8f6de154311f2e. # Conflicts: # app/src/main/java/com/brainwallet/tools/manager/APIManager.kt * Reverted the Kotlin APIManager. * fix: fix crash when FragmentSignal dismissed * fix: fix sync after wipe * fix: fix wrong lifecycle to trigger callback at FragmentSignal * Update issue templates * updated core changes per @andhikayuana * Rename .java to .kt * chore: refactor BRApiManager & APIClient * chore: remove unused part at APIClient * feat: wip new peer discovery * feat: implement selected peer ip address from cache (fetched from API) * feat: implement selected peer ip address from cache (fetched from API) * feat: filter out peers with NODE_NETWORK, NODE_BLOOM * fix: race condition when clear shared prefs values after wipeAll * Updating the core library from the new peer discovery (v4.2.0) * Chore/revert pre peer discovery (Android) (#69) * chore: update core submodule * chore: resolve conflict * Update build.gradle.kts version and code bump * chore: for now at BRPeerManager.wrapConnectV2 only using connect, since the core using hardcoded peers * fix: fix write down confirm screen (#63) * fix: fix write down confirm screen * fix: fix allow seed word item not unique * chore: cherry picked and adjust from - f2fa8e1e4fb9c7429fa86461b24b4463a7969ecf - 98644c425b2fdae7b8b424708fb1a61ad983a9d8 - 93969278da8f95adc0c9f0f8411c8a27876a4d77 - 7ad4b9853b7d1bf7ddbaa576242d8800615a48fb - 8e57d2a67420565b40b753dec5a533776da4821f * fix: fix crash can't parse response inside LtcRepository.fetchRates * fix: fix crash (failed parse) when SelectedPeersRepository.fetchSelectedPeers got unsuccessful response * code bump * fix: ConcurrentModificationException at BRPeerManager.txStatusUpdate * feat: implement new API * code bump --------- Co-authored-by: Kerry Washington <mrkerrywashington@icloud.com> * feat: remove unused activity (ImportActivity) at AndroidManifest.xml (#71) * fix: fix crash IllegalStateException: cannot make a new request because the previous response is still open (#73) * code bump * Feat/move tx fee (#74) * chore: add new translations at strings.xml * feat: move network fee to HomeSettingDrawerSheet & remove unused code * fix: fix dismiss allow state loss (#76) * fix: fix typo at strings.xml (#75) * feat: new UI for receive and topup flow (moonpay integration) (#72) * feat: [WIP][UI] new UI for receive and topup flow * feat: [WIP][UI] implement copy address and some refactor * feat: replace webview using CustomTabsIntent from androidx.browser * feat: replace webview using CustomTabsIntent from androidx.browser * feat: add PickerWheel * chore: rename param at QRUtils.generateQR * chore: revert default startDestination at BrainwalletActivity * feat: wip moonpay integration * feat: wip moonpay integration * chore: new UI for ReceiveDialog * chore: parse error from response API at BrainwalletViewModel * chore: add /moonpay/buy-quote and remove dev base url * chore: make LegacyNavigation.showMoonPayWidget receive params for the widget url * chore: add GetMoonpayBuyQuoteResponse * chore: wip moonpay integration to call buy-quote * fix: fix wheel picker for IDR at ReceiveDialog * fix: fix invalid signature * feat: moonpay integration at onboarding flow at BuyLitecoinScreen also fix some stuffs * chore: replace base url for moonpay buy integration when debug * chore: introduce LocalCacheSource.kt and cache fetch limits * chore: adjustment receive dialog UI - debounce fiat currency to 2s - increment in 10 - remove decimal places - default value to 10% of range * chore: reorder bottom navigation item and add new strings * chore: add new translations * chore: refactor UI for buy and receive dialog * chore: cleanup ReceiveDialogViewModel * chore: using MoonpayBuyWidget * chore: adjustment moonpaywidget * chore: for now moonpay widget using CustomTabsIntent * version and code bump * Added support url (#81) - changed the language - code bump * version and code bump * Revert from eda0f532 & cherry pick (#86) * version bump * feat: new UI for receive and topup flow (moonpay integration) (#72) * feat: [WIP][UI] new UI for receive and topup flow * feat: [WIP][UI] implement copy address and some refactor * feat: replace webview using CustomTabsIntent from androidx.browser * feat: replace webview using CustomTabsIntent from androidx.browser * feat: add PickerWheel * chore: rename param at QRUtils.generateQR * chore: revert default startDestination at BrainwalletActivity * feat: wip moonpay integration * feat: wip moonpay integration * chore: new UI for ReceiveDialog * chore: parse error from response API at BrainwalletViewModel * chore: add /moonpay/buy-quote and remove dev base url * chore: make LegacyNavigation.showMoonPayWidget receive params for the widget url * chore: add GetMoonpayBuyQuoteResponse * chore: wip moonpay integration to call buy-quote * fix: fix wheel picker for IDR at ReceiveDialog * fix: fix invalid signature * feat: moonpay integration at onboarding flow at BuyLitecoinScreen also fix some stuffs * chore: replace base url for moonpay buy integration when debug * chore: introduce LocalCacheSource.kt and cache fetch limits * chore: adjustment receive dialog UI - debounce fiat currency to 2s - increment in 10 - remove decimal places - default value to 10% of range * chore: reorder bottom navigation item and add new strings * chore: add new translations * chore: refactor UI for buy and receive dialog * chore: cleanup ReceiveDialogViewModel * chore: using MoonpayBuyWidget * chore: adjustment moonpaywidget * chore: for now moonpay widget using CustomTabsIntent * chore: set allowSpend to false when recommend rescan click * fix: add delete transaction data from local database * Removed chatty event * chore: add analytics at BRWalletManager.publishCallback * chore: make sure calculation and static fee same as iOS, add setting for selected fee type --------- Co-authored-by: Kerry Washington <mrkerrywashington@icloud.com> * build bump * Updated README * code bump * chore: open bread activity first then open moonpay widget (#88) * code bump --------- Co-authored-by: andhikayuana <andhikayuana@gmail.com> * 🚀[Release v4.5.5] Merge into Main (#101) * Revert "Updated the APIManager" This reverts commit 4e252ac29cfb6c3ab26ae5ea4a8f6de154311f2e. # Conflicts: # app/src/main/java/com/brainwallet/tools/manager/APIManager.kt * Reverted the Kotlin APIManager. * Add version and code to welcome screen * reset padding * Revert "Updated the APIManager" This reverts commit 4e252ac29cfb6c3ab26ae5ea4a8f6de154311f2e. # Conflicts: # app/src/main/java/com/brainwallet/tools/manager/APIManager.kt * Reverted the Kotlin APIManager. * fix: fix crash when FragmentSignal dismissed * fix: fix sync after wipe * fix: fix wrong lifecycle to trigger callback at FragmentSignal * Update issue templates * updated core changes per @andhikayuana * Rename .java to .kt * chore: refactor BRApiManager & APIClient * chore: remove unused part at APIClient * feat: wip new peer discovery * feat: implement selected peer ip address from cache (fetched from API) * feat: implement selected peer ip address from cache (fetched from API) * feat: filter out peers with NODE_NETWORK, NODE_BLOOM * fix: race condition when clear shared prefs values after wipeAll * Updating the core library from the new peer discovery (v4.2.0) * Chore/revert pre peer discovery (Android) (#69) * chore: update core submodule * chore: resolve conflict * Update build.gradle.kts version and code bump * chore: for now at BRPeerManager.wrapConnectV2 only using connect, since the core using hardcoded peers * fix: fix write down confirm screen (#63) * fix: fix write down confirm screen * fix: fix allow seed word item not unique * chore: cherry picked and adjust from - f2fa8e1e4fb9c7429fa86461b24b4463a7969ecf - 98644c425b2fdae7b8b424708fb1a61ad983a9d8 - 93969278da8f95adc0c9f0f8411c8a27876a4d77 - 7ad4b9853b7d1bf7ddbaa576242d8800615a48fb - 8e57d2a67420565b40b753dec5a533776da4821f * fix: fix crash can't parse response inside LtcRepository.fetchRates * fix: fix crash (failed parse) when SelectedPeersRepository.fetchSelectedPeers got unsuccessful response * code bump * fix: ConcurrentModificationException at BRPeerManager.txStatusUpdate * feat: implement new API * code bump --------- Co-authored-by: Kerry Washington <mrkerrywashington@icloud.com> * feat: remove unused activity (ImportActivity) at AndroidManifest.xml (#71) * fix: fix crash IllegalStateException: cannot make a new request because the previous response is still open (#73) * code bump * Feat/move tx fee (#74) * chore: add new translations at strings.xml * feat: move network fee to HomeSettingDrawerSheet & remove unused code * fix: fix dismiss allow state loss (#76) * fix: fix typo at strings.xml (#75) * feat: new UI for receive and topup flow (moonpay integration) (#72) * feat: [WIP][UI] new UI for receive and topup flow * feat: [WIP][UI] implement copy address and some refactor * feat: replace webview using CustomTabsIntent from androidx.browser * feat: replace webview using CustomTabsIntent from androidx.browser * feat: add PickerWheel * chore: rename param at QRUtils.generateQR * chore: revert default startDestination at BrainwalletActivity * feat: wip moonpay integration * feat: wip moonpay integration * chore: new UI for ReceiveDialog * chore: parse error from response API at BrainwalletViewModel * chore: add /moonpay/buy-quote and remove dev base url * chore: make LegacyNavigation.showMoonPayWidget receive params for the widget url * chore: add GetMoonpayBuyQuoteResponse * chore: wip moonpay integration to call buy-quote * fix: fix wheel picker for IDR at ReceiveDialog * fix: fix invalid signature * feat: moonpay integration at onboarding flow at BuyLitecoinScreen also fix some stuffs * chore: replace base url for moonpay buy integration when debug * chore: introduce LocalCacheSource.kt and cache fetch limits * chore: adjustment receive dialog UI - debounce fiat currency to 2s - increment in 10 - remove decimal places - default value to 10% of range * chore: reorder bottom navigation item and add new strings * chore: add new translations * chore: refactor UI for buy and receive dialog * chore: cleanup ReceiveDialogViewModel * chore: using MoonpayBuyWidget * chore: adjustment moonpaywidget * chore: for now moonpay widget using CustomTabsIntent * version and code bump * Added support url (#81) - changed the language - code bump * version and code bump * Revert from eda0f532 & cherry pick (#86) * version bump * feat: new UI for receive and topup flow (moonpay integration) (#72) * feat: [WIP][UI] new UI for receive and topup flow * feat: [WIP][UI] implement copy address and some refactor * feat: replace webview using CustomTabsIntent from androidx.browser * feat: replace webview using CustomTabsIntent from androidx.browser * feat: add PickerWheel * chore: rename param at QRUtils.generateQR * chore: revert default startDestination at BrainwalletActivity * feat: wip moonpay integration * feat: wip moonpay integration * chore: new UI for ReceiveDialog * chore: parse error from response API at BrainwalletViewModel * chore: add /moonpay/buy-quote and remove dev base url * chore: make LegacyNavigation.showMoonPayWidget receive params for the widget url * chore: add GetMoonpayBuyQuoteResponse * chore: wip moonpay integration to call buy-quote * fix: fix wheel picker for IDR at ReceiveDialog * fix: fix invalid signature * feat: moonpay integration at onboarding flow at BuyLitecoinScreen also fix some stuffs * chore: replace base url for moonpay buy integration when debug * chore: introduce LocalCacheSource.kt and cache fetch limits * chore: adjustment receive dialog UI - debounce fiat currency to 2s - increment in 10 - remove decimal places - default value to 10% of range * chore: reorder bottom navigation item and add new strings * chore: add new translations * chore: refactor UI for buy and receive dialog * chore: cleanup ReceiveDialogViewModel * chore: using MoonpayBuyWidget * chore: adjustment moonpaywidget * chore: for now moonpay widget using CustomTabsIntent * chore: set allowSpend to false when recommend rescan click * fix: add delete transaction data from local database * Removed chatty event * chore: add analytics at BRWalletManager.publishCallback * chore: make sure calculation and static fee same as iOS, add setting for selected fee type --------- Co-authored-by: Kerry Washington <mrkerrywashington@icloud.com> * build bump * chore: open bread activity first then open moonpay widget (#88) * Adjustment for circleci (#89) * chore: wip adjustment for screengrab * chore: [circleci] adjust config.yml * chore: [circleci] update config.yml, Fastfile, Gemfile.lock, RecoverWalletScreenGrabsTest.kt * chore: [circleci] for now just unit-test * fix: android: Footer version label is obfuscated (#92) * fix: android: Footer version label is obfuscated * fix: [#92] android: Footer version label is obfuscated * fix: You saved it right screen reset button covers words (#93) * fix: [#84] change seed words layout to lazy vertical grid * fix: [#84] refactor seed words layout * tiny resizing (#94) * code and version bump * change break (#97) adds a android user agent and externalID * build code number fix: [#96] remove bottom_nav_menu_us and just using bottom_nav_menu for consistency (#98) * fix: [#137] fix: Reset fiat options in Buy / Receive modal (#99) * Chore/update device data (#100) * change break adds a android user agent and externalID * Update ReceiveDialogViewModel.kt * chore: refactor request params for fetchMoonpaySignedUrl --------- Co-authored-by: andhikayuana <andhikayuana@gmail.com> * Update build.gradle.kts --------- Co-authored-by: andhikayuana <andhikayuana@gmail.com> * 🚀[Release v4.6.0] Merge into Main (#104) * Revert "Updated the APIManager" This reverts commit 4e252ac29cfb6c3ab26ae5ea4a8f6de154311f2e. # Conflicts: # app/src/main/java/com/brainwallet/tools/manager/APIManager.kt * Reverted the Kotlin APIManager. * Add version and code to welcome screen * reset padding * Revert "Updated the APIManager" This reverts commit 4e252ac29cfb6c3ab26ae5ea4a8f6de154311f2e. # Conflicts: # app/src/main/java/com/brainwallet/tools/manager/APIManager.kt * Reverted the Kotlin APIManager. * fix: fix crash when FragmentSignal dismissed * fix: fix sync after wipe * fix: fix wrong lifecycle to trigger callback at FragmentSignal * Update issue templates * updated core changes per @andhikayuana * Rename .java to .kt * chore: refactor BRApiManager & APIClient * chore: remove unused part at APIClient * feat: wip new peer discovery * feat: implement selected peer ip address from cache (fetched from API) * feat: implement selected peer ip address from cache (fetched from API) * feat: filter out peers with NODE_NETWORK, NODE_BLOOM * fix: race condition when clear shared prefs values after wipeAll * Updating the core library from the new peer discovery (v4.2.0) * Chore/revert pre peer discovery (Android) (#69) * chore: update core submodule * chore: resolve conflict * Update build.gradle.kts version and code bump * chore: for now at BRPeerManager.wrapConnectV2 only using connect, since the core using hardcoded peers * fix: fix write down confirm screen (#63) * fix: fix write down confirm screen * fix: fix allow seed word item not unique * chore: cherry picked and adjust from - f2fa8e1e4fb9c7429fa86461b24b4463a7969ecf - 98644c425b2fdae7b8b424708fb1a61ad983a9d8 - 93969278da8f95adc0c9f0f8411c8a27876a4d77 - 7ad4b9853b7d1bf7ddbaa576242d8800615a48fb - 8e57d2a67420565b40b753dec5a533776da4821f * fix: fix crash can't parse response inside LtcRepository.fetchRates * fix: fix crash (failed parse) when SelectedPeersRepository.fetchSelectedPeers got unsuccessful response * code bump * fix: ConcurrentModificationException at BRPeerManager.txStatusUpdate * feat: implement new API * code bump --------- Co-authored-by: Kerry Washington <mrkerrywashington@icloud.com> * feat: remove unused activity (ImportActivity) at AndroidManifest.xml (#71) * fix: fix crash IllegalStateException: cannot make a new request because the previous response is still open (#73) * code bump * Feat/move tx fee (#74) * chore: add new translations at strings.xml * feat: move network fee to HomeSettingDrawerSheet & remove unused code * fix: fix dismiss allow state loss (#76) * fix: fix typo at strings.xml (#75) * feat: new UI for receive and topup flow (moonpay integration) (#72) * feat: [WIP][UI] new UI for receive and topup flow * feat: [WIP][UI] implement copy address and some refactor * feat: replace webview using CustomTabsIntent from androidx.browser * feat: replace webview using CustomTabsIntent from androidx.browser * feat: add PickerWheel * chore: rename param at QRUtils.generateQR * chore: revert default startDestination at BrainwalletActivity * feat: wip moonpay integration * feat: wip moonpay integration * chore: new UI for ReceiveDialog * chore: parse error from response API at BrainwalletViewModel * chore: add /moonpay/buy-quote and remove dev base url * chore: make LegacyNavigation.showMoonPayWidget receive params for the widget url * chore: add GetMoonpayBuyQuoteResponse * chore: wip moonpay integration to call buy-quote * fix: fix wheel picker for IDR at ReceiveDialog * fix: fix invalid signature * feat: moonpay integration at onboarding flow at BuyLitecoinScreen also fix some stuffs * chore: replace base url for moonpay buy integration when debug * chore: introduce LocalCacheSource.kt and cache fetch limits * chore: adjustment receive dialog UI - debounce fiat currency to 2s - increment in 10 - remove decimal places - default value to 10% of range * chore: reorder bottom navigation item and add new strings * chore: add new translations * chore: refactor UI for buy and receive dialog * chore: cleanup ReceiveDialogViewModel * chore: using MoonpayBuyWidget * chore: adjustment moonpaywidget * chore: for now moonpay widget using CustomTabsIntent * version and code bump * Added support url (#81) - changed the language - code bump * version and code bump * Revert from eda0f532 & cherry pick (#86) * version bump * feat: new UI for receive and topup flow (moonpay integration) (#72) * feat: [WIP][UI] new UI for receive and topup flow * feat: [WIP][UI] implement copy address and some refactor * feat: replace webview using CustomTabsIntent from androidx.browser * feat: replace webview using CustomTabsIntent from androidx.browser * feat: add PickerWheel * chore: rename param at QRUtils.generateQR * chore: revert default startDestination at BrainwalletActivity * feat: wip moonpay integration * feat: wip moonpay integration * chore: new UI for ReceiveDialog * chore: parse error from response API at BrainwalletViewModel * chore: add /moonpay/buy-quote and remove dev base url * chore: make LegacyNavigation.showMoonPayWidget receive params for the widget url * chore: add GetMoonpayBuyQuoteResponse * chore: wip moonpay integration to call buy-quote * fix: fix wheel picker for IDR at ReceiveDialog * fix: fix invalid signature * feat: moonpay integration at onboarding flow at BuyLitecoinScreen also fix some stuffs * chore: replace base url for moonpay buy integration when debug * chore: introduce LocalCacheSource.kt and cache fetch limits * chore: adjustment receive dialog UI - debounce fiat currency to 2s - increment in 10 - remove decimal places - default value to 10% of range * chore: reorder bottom navigation item and add new strings * chore: add new translations * chore: refactor UI for buy and receive dialog * chore: cleanup ReceiveDialogViewModel * chore: using MoonpayBuyWidget * chore: adjustment moonpaywidget * chore: for now moonpay widget using CustomTabsIntent * chore: set allowSpend to false when recommend rescan click * fix: add delete transaction data from local database * Removed chatty event * chore: add analytics at BRWalletManager.publishCallback * chore: make sure calculation and static fee same as iOS, add setting for selected fee type --------- Co-authored-by: Kerry Washington <mrkerrywashington@icloud.com> * build bump * chore: open bread activity first then open moonpay widget (#88) * Adjustment for circleci (#89) * chore: wip adjustment for screengrab * chore: [circleci] adjust config.yml * chore: [circleci] update config.yml, Fastfile, Gemfile.lock, RecoverWalletScreenGrabsTest.kt * chore: [circleci] for now just unit-test * fix: android: Footer version label is obfuscated (#92) * fix: android: Footer version label is obfuscated * fix: [#92] android: Footer version label is obfuscated * fix: You saved it right screen reset button covers words (#93) * fix: [#84] change seed words layout to lazy vertical grid * fix: [#84] refactor seed words layout * tiny resizing (#94) * code and version bump * change break (#97) adds a android user agent and externalID * build code number fix: [#96] remove bottom_nav_menu_us and just using bottom_nav_menu for consistency (#98) * fix: [#137] fix: Reset fiat options in Buy / Receive modal (#99) * Chore/update device data (#100) * change break adds a android user agent and externalID * Update ReceiveDialogViewModel.kt * chore: refactor request params for fetchMoonpaySignedUrl --------- Co-authored-by: andhikayuana <andhikayuana@gmail.com> * Add agent string obfuscation (#103) * version bump * code bump --------- Co-authored-by: andhikayuana <andhikayuana@gmail.com> * 🚀[Release v4.6.1] Merge into Main (#107) * Revert "Updated the APIManager" This reverts commit 4e252ac29cfb6c3ab26ae5ea4a8f6de154311f2e. # Conflicts: # app/src/main/java/com/brainwallet/tools/manager/APIManager.kt * Reverted the Kotlin APIManager. * Add version and code to welcome screen * reset padding * Revert "Updated the APIManager" This reverts commit 4e252ac29cfb6c3ab26ae5ea4a8f6de154311f2e. # Conflicts: # app/src/main/java/com/brainwallet/tools/manager/APIManager.kt * Reverted the Kotlin APIManager. * fix: fix crash when FragmentSignal dismissed * fix: fix sync after wipe * fix: fix wrong lifecycle to trigger callback at FragmentSignal * Update issue templates * updated core changes per @andhikayuana * Rename .java to .kt * chore: refactor BRApiManager & APIClient * chore: remove unused part at APIClient * feat: wip new peer discovery * feat: implement selected peer ip address from cache (fetched from API) * feat: implement selected peer ip address from cache (fetched from API) * feat: filter out peers with NODE_NETWORK, NODE_BLOOM * fix: race condition when clear shared prefs values after wipeAll * Updating the core library from the new peer discovery (v4.2.0) * Chore/revert pre peer discovery (Android) (#69) * chore: update core submodule * chore: resolve conflict * Update build.gradle.kts version and code bump * chore: for now at BRPeerManager.wrapConnectV2 only using connect, since the core using hardcoded peers * fix: fix write down confirm screen (#63) * fix: fix write down confirm screen * fix: fix allow seed word item not unique * chore: cherry picked and adjust from - f2fa8e1e4fb9c7429fa86461b24b4463a7969ecf - 98644c425b2fdae7b8b424708fb1a61ad983a9d8 - 93969278da8f95adc0c9f0f8411c8a27876a4d77 - 7ad4b9853b7d1bf7ddbaa576242d8800615a48fb - 8e57d2a67420565b40b753dec5a533776da4821f * fix: fix crash can't parse response inside LtcRepository.fetchRates * fix: fix crash (failed parse) when SelectedPeersRepository.fetchSelectedPeers got unsuccessful response * code bump * fix: ConcurrentModificationException at BRPeerManager.txStatusUpdate * feat: implement new API * code bump --------- Co-authored-by: Kerry Washington <mrkerrywashington@icloud.com> * feat: remove unused activity (ImportActivity) at AndroidManifest.xml (#71) * fix: fix crash IllegalStateException: cannot make a new request because the previous response is still open (#73) * code bump * Feat/move tx fee (#74) * chore: add new translations at strings.xml * feat: move network fee to HomeSettingDrawerSheet & remove unused code * fix: fix dismiss allow state loss (#76) * fix: fix typo at strings.xml (#75) * feat: new UI for receive and topup flow (moonpay integration) (#72) * feat: [WIP][UI] new UI for receive and topup flow * feat: [WIP][UI] implement copy address and some refactor * feat: replace webview using CustomTabsIntent from androidx.browser * feat: replace webview using CustomTabsIntent from androidx.browser * feat: add PickerWheel * chore: rename param at QRUtils.generateQR * chore: revert default startDestination at BrainwalletActivity * feat: wip moonpay integration * feat: wip moonpay integration * chore: new UI for ReceiveDialog * chore: parse error from response API at BrainwalletViewModel * chore: add /moonpay/buy-quote and remove dev base url * chore: make LegacyNavigation.showMoonPayWidget receive params for the widget url * chore: add GetMoonpayBuyQuoteResponse * chore: wip moonpay integration to call buy-quote * fix: fix wheel picker for IDR at ReceiveDialog * fix: fix invalid signature * feat: moonpay integration at onboarding flow at BuyLitecoinScreen also fix some stuffs * chore: replace base url for moonpay buy integration when debug * chore: introduce LocalCacheSource.kt and cache fetch limits * chore: adjustment receive dialog UI - debounce fiat currency to 2s - increment in 10 - remove decimal places - default value to 10% of range * chore: reorder bottom navigation item and add new strings * chore: add new translations * chore: refactor UI for buy and receive dialog * chore: cleanup ReceiveDialogViewModel * chore: using MoonpayBuyWidget * chore: adjustment moonpaywidget * chore: for now moonpay widget using CustomTabsIntent * version and code bump * Added support url (#81) - changed the language - code bump * version and code bump * Revert from eda0f532 & cherry pick (#86) * version bump * feat: new UI for receive and topup flow (moonpay integration) (#72) * feat: [WIP][UI] new UI for receive and topup flow * feat: [WIP][UI] implement copy address and some refactor * feat: replace webview using CustomTabsIntent from androidx.browser * feat: replace webview using CustomTabsIntent from androidx.browser * feat: add PickerWheel * chore: rename param at QRUtils.generateQR * chore: revert default startDestination at BrainwalletActivity * feat: wip moonpay integration * feat: wip moonpay integration * chore: new UI for ReceiveDialog * chore: parse error from response API at BrainwalletViewModel * chore: add /moonpay/buy-quote and remove dev base url * chore: make LegacyNavigation.showMoonPayWidget receive params for the widget url * chore: add GetMoonpayBuyQuoteResponse * chore: wip moonpay integration to call buy-quote * fix: fix wheel picker for IDR at ReceiveDialog * fix: fix invalid signature * feat: moonpay integration at onboarding flow at BuyLitecoinScreen also fix some stuffs * chore: replace base url for moonpay buy integration when debug * chore: introduce LocalCacheSource.kt and cache fetch limits * chore: adjustment receive dialog UI - debounce fiat currency to 2s - increment in 10 - remove decimal places - default value to 10% of range * chore: reorder bottom navigation item and add new strings * chore: add new translations * chore: refactor UI for buy and receive dialog * chore: cleanup ReceiveDialogViewModel * chore: using MoonpayBuyWidget * chore: adjustment moonpaywidget * chore: for now moonpay widget using CustomTabsIntent * chore: set allowSpend to false when recommend rescan click * fix: add delete transaction data from local database * Removed chatty event * chore: add analytics at BRWalletManager.publishCallback * chore: make sure calculation and static fee same as iOS, add setting for selected fee type --------- Co-authored-by: Kerry Washington <mrkerrywashington@icloud.com> * build bump * chore: open bread activity first then open moonpay widget (#88) * Adjustment for circleci (#89) * chore: wip adjustment for screengrab * chore: [circleci] adjust config.yml * chore: [circleci] update config.yml, Fastfile, Gemfile.lock, RecoverWalletScreenGrabsTest.kt * chore: [circleci] for now just unit-test * fix: android: Footer version label is obfuscated (#92) * fix: android: Footer version label is obfuscated * fix: [#92] android: Footer version label is obfuscated * fix: You saved it right screen reset button covers words (#93) * fix: [#84] change seed words layout to lazy vertical grid * fix: [#84] refactor seed words layout * tiny resizing (#94) * code and version bump * change break (#97) adds a android user agent and externalID * build code number fix: [#96] remove bottom_nav_menu_us and just using bottom_nav_menu for consistency (#98) * fix: [#137] fix: Reset fiat options in Buy / Receive modal (#99) * Chore/update device data (#100) * change break adds a android user agent and externalID * Update ReceiveDialogViewModel.kt * chore: refactor request params for fetchMoonpaySignedUrl --------- Co-authored-by: andhikayuana <andhikayuana@gmail.com> * Add agent string obfuscation (#103) * updated metadata (#105) * chore: remove screen lock detection (#106) * build bump --------- Co-authored-by: andhikayuana <andhikayuana@gmail.com> * 🚀[Release v4.6.2] Merge into Main (#110) * Revert "Updated the APIManager" This reverts commit 4e252ac29cfb6c3ab26ae5ea4a8f6de154311f2e. # Conflicts: # app/src/main/java/com/brainwallet/tools/manager/APIManager.kt * Reverted the Kotlin APIManager. * Add version and code to welcome screen * reset padding * Revert "Updated the APIManager" This reverts commit 4e252ac29cfb6c3ab26ae5ea4a8f6de154311f2e. # Conflicts: # app/src/main/java/com/brainwallet/tools/manager/APIManager.kt * Reverted the Kotlin APIManager. * fix: fix crash when FragmentSignal dismissed * fix: fix sync after wipe * fix: fix wrong lifecycle to trigger callback at FragmentSignal * Update issue templates * updated core changes per @andhikayuana * Rename .java to .kt * chore: refactor BRApiManager & APIClient * chore: remove unused part at APIClient * feat: wip new peer discovery * feat: implement selected peer ip address from cache (fetched from API) * feat: implement selected peer ip address from cache (fetched from API) * feat: filter out peers with NODE_NETWORK, NODE_BLOOM * fix: race condition when clear shared prefs values after wipeAll * Updating the core library from the new peer discovery (v4.2.0) * Chore/revert pre peer discovery (Android) (#69) * chore: update core submodule * chore: resolve conflict * Update build.gradle.kts version and code bump * chore: for now at BRPeerManager.wrapConnectV2 only using connect, since the core using hardcoded peers * fix: fix write down confirm screen (#63) * fix: fix write down confirm screen * fix: fix allow seed word item not unique * chore: cherry picked and adjust from - f2fa8e1e4fb9c7429fa86461b24b4463a7969ecf - 98644c425b2fdae7b8b424708fb1a61ad983a9d8 - 93969278da8f95adc0c9f0f8411c8a27876a4d77 - 7ad4b9853b7d1bf7ddbaa576242d8800615a48fb - 8e57d2a67420565b40b753dec5a533776da4821f * fix: fix crash can't parse response inside LtcRepository.fetchRates * fix: fix crash (failed parse) when SelectedPeersRepository.fetchSelectedPeers got unsuccessful response * code bump * fix: ConcurrentModificationException at BRPeerManager.txStatusUpdate * feat: implement new API * code bump --------- Co-authored-by: Kerry Washington <mrkerrywashington@icloud.com> * feat: remove unused activity (ImportActivity) at AndroidManifest.xml (#71) * fix: fix crash IllegalStateException: cannot make a new request because the previous response is still open (#73) * code bump * Feat/move tx fee (#74) * chore: add new translations at strings.xml * feat: move network fee to HomeSettingDrawerSheet & remove unused code * fix: fix dismiss allow state loss (#76) * fix: fix typo at strings.xml (#75) * feat: new UI for receive and topup flow (moonpay integration) (#72) * feat: [WIP][UI] new UI for receive and topup flow * feat: [WIP][UI] implement copy address and some refactor * feat: replace webview using CustomTabsIntent from androidx.browser * feat: replace webview using CustomTabsIntent from androidx.browser * feat: add PickerWheel * chore: rename param at QRUtils.generateQR * chore: revert default startDestination at BrainwalletActivity * feat: wip moonpay integration * feat: wip moonpay integration * chore: new UI for ReceiveDialog * chore: parse error from response API at BrainwalletViewModel * chore: add /moonpay/buy-quote and remove dev base url * chore: make LegacyNavigation.showMoonPayWidget receive params for the widget url * chore: add GetMoonpayBuyQuoteResponse * chore: wip moonpay integration to call buy-quote * fix: fix wheel picker for IDR at ReceiveDialog * fix: fix invalid signature * feat: moonpay integration at onboarding flow at BuyLitecoinScreen also fix some stuffs * chore: replace base url for moonpay buy integration when debug * chore: introduce LocalCacheSource.kt and cache fetch limits * chore: adjustment receive dialog UI - debounce fiat currency to 2s - increment in 10 - remove decimal places - default value to 10% of range * chore: reorder bottom navigation item and add new strings * chore: add new translations * chore: refactor UI for buy and receive dialog * chore: cleanup ReceiveDialogViewModel * chore: using MoonpayBuyWidget * chore: adjustment moonpaywidget * chore: for now moonpay widget using CustomTabsIntent * version and code bump * Added support url (#81) - changed the language - code bump * version and code bump * Revert from eda0f532 & cherry pick (#86) * version bump * feat: new UI for receive and topup flow (moonpay integration) (#72) * feat: [WIP][UI] new UI for receive and topup flow * feat: [WIP][UI] implement copy address and some refactor * feat: replace webview using CustomTabsIntent from androidx.browser * feat: replace webview using CustomTabsIntent from androidx.browser * feat: add PickerWheel * chore: rename param at QRUtils.generateQR * chore: revert default startDestination at BrainwalletActivity * feat: wip moonpay integration * feat: wip moonpay integration * chore: new UI for ReceiveDialog * chore: parse error from response API at BrainwalletViewModel * chore: add /moonpay/buy-quote and remove dev base url * chore: make LegacyNavigation.showMoonPayWidget receive params for the widget url * chore: add GetMoonpayBuyQuoteResponse * chore: wip moonpay integration to call buy-quote * fix: fix wheel picker for IDR at ReceiveDialog * fix: fix invalid signature * feat: moonpay integration at onboarding flow at BuyLitecoinScreen also fix some stuffs * chore: replace base url for moonpay buy integration when debug * chore: introduce LocalCacheSource.kt and cache fetch limits * chore: adjustment receive dialog UI - debounce fiat currency to 2s - increment in 10 - remove decimal places - default value to 10% of range * chore: reorder bottom navigation item and add new strings * chore: add new translations * chore: refactor UI for buy and receive dialog * chore: cleanup ReceiveDialogViewModel * chore: using MoonpayBuyWidget * chore: adjustment moonpaywidget * chore: for now moonpay widget using CustomTabsIntent * chore: set allowSpend to false when recommend rescan click * fix: add delete transaction data from local database * Removed chatty event * chore: add analytics at BRWalletManager.publishCallback * chore: make sure calculation and static fee same as iOS, add setting for selected fee type --------- Co-authored-by: Kerry Washington <mrkerrywashington@icloud.com> * build bump * chore: open bread activity first then open moonpay widget (#88) * Adjustment for circleci (#89) * chore: wip adjustment for screengrab * chore: [circleci] adjust config.yml * chore: [circleci] update config.yml, Fastfile, Gemfile.lock, RecoverWalletScreenGrabsTest.kt * chore: [circleci] for now just unit-test * fix: android: Footer version label is obfuscated (#92) * fix: android: Footer version label is obfuscated * fix: [#92] android: Footer version label is obfuscated * fix: You saved it right screen reset button covers words (#93) * fix: [#84] change seed words layout to lazy vertical grid * fix: [#84] refactor seed words layout * tiny resizing (#94) * code and version bump * change break (#97) adds a android user agent and externalID * build code number fix: [#96] remove bottom_nav_menu_us and just using bottom_nav_menu for consistency (#98) * fix: [#137] fix: Reset fiat options in Buy / Receive modal (#99) * Chore/update device data (#100) * change break adds a android user agent and externalID * Update ReceiveDialogViewModel.kt * chore: refactor request params for fetchMoonpaySignedUrl --------- Co-authored-by: andhikayuana <andhikayuana@gmail.com> * Add agent string obfuscation (#103) * updated metadata (#105) * chore: remove screen lock detection (#106) * changed to tap * Added instruction label -added localizations * Added 'empty string for when confirm is completed * version and code bump * fix typo replaced click file with mp3 added error sound * added 3 languages * 🧰 Fx/seed words UI polish (#108) * changed to tap * Added instruction label -added localizations * Added 'empty string for when confirm is completed * version and code bump * fix typo replaced click file with mp3 added error sound * Removed unused audio files * polished tests * removed unused asset pack * code bump * code bump * ❇️ Feat/add polish punjabi farsi (#109) * changed to tap * Added instruction label -added localizations * Added 'empty string for when confirm is completed * version and code bump * fix typo replaced click file with mp3 added error sound * added 3 languages * Removed unused audio files * polished tests * removed unused asset pack * code bump * broke out completion of the seed phrase and navigation - Feedback was a user could complete seed phrase and not tap "Game and Sync" - Forced users to start all over - Saved a correct seed phrase confirmation into memory * code bump * fix for https://console.firebase.google.com/project/brainwallet-mobile/crashlytics/app/android:ltd.grunt.brainwallet/issues/1386f366ab35e9112a6b742d629bb0be?time=last-seven-days&types=crash&sessionEventKey=685DA96C00BF00015A7AFEA30E0DB49C_2098799426616143441 * measure where users tap * code bump * fix: fix YourSeedProveItState.isWordUsedCorrectly * Cleaned commented out BuyLitecoinscreen * code bump --------- Co-authored-by: andhikayuana <andhikayuana@gmail.com> * 🚀[Release v4.7.0] Merge into Main (#115) * Revert "Updated the APIManager" This reverts commit 4e252ac29cfb6c3ab26ae5ea4a8f6de154311f2e. # Conflicts: # app/src/main/java/com/brainwallet/tools/manager/APIManager.kt * Reverted the Kotlin APIManager. * Add version and code to welcome screen * reset padding * Revert "Updated the APIManager" This reverts commit 4e252ac29cfb6c3ab26ae5ea4a8f6de154311f2e. # Conflicts: # app/src/main/java/com/brainwallet/tools/manager/APIManager.kt * Reverted the Kotlin APIManager. * fix: fix crash when FragmentSignal dismissed * fix: fix sync after wipe * fix: fix wrong lifecycle to trigger callback at FragmentSignal * Update issue templates * updated core changes per @andhikayuana * Rename .java to .kt * chore: refactor BRApiManager & APIClient * chore: remove unused part at APIClient * feat: wip new peer discovery * feat: implement selected peer ip address from cache (fetched from API) * feat: implement selected peer ip address from cache (fetched from API) * feat: filter out peers with NODE_NETWORK, NODE_BLOOM * fix: race condition when clear shared prefs values after wipeAll * Updating the core library from the new peer discovery (v4.2.0) * Chore/revert pre peer discovery (Android) (#69) * chore: update core submodule * chore: resolve conflict * Update build.gradle.kts version and code bump * chore: for now at BRPeerManager.wrapConnectV2 only using connect, since the core using hardcoded peers * fix: fix write down confirm screen (#63) * fix: fix write down confirm screen * fix: fix allow seed word item not unique * chore: cherry picked and adjust from - f2fa8e1e4fb9c7429fa86461b24b4463a7969ecf - 98644c425b2fdae7b8b424708fb1a61ad983a9d8 - 93969278da8f95adc0c9f0f8411c8a27876a4d77 - 7ad4b9853b7d1bf7ddbaa576242d8800615a48fb - 8e57d2a67420565b40b753dec5a533776da4821f * fix: fix crash can't parse response inside LtcRepository.fetchRates * fix: fix crash (failed parse) when SelectedPeersRepository.fetchSelectedPeers got unsuccessful response * code bump * fix: ConcurrentModificationException at BRPeerManager.txStatusUpdate * feat: implement new API * code bump --------- Co-authored-by: Kerry Washington <mrkerrywashington@icloud.com> * feat: remove unused activity (ImportActivity) at AndroidManifest.xml (#71) * fix: fix crash IllegalStateException: cannot make a new request because the previous response is still open (#73) * code bump * Feat/move tx fee (#74) * chore: add new translations at strings.xml * feat: move network fee to HomeSettingDrawerSheet & remove unused code * fix: fix dismiss allow state loss (#76) * fix: fix typo at strings.xml (#75) * feat: new UI for receive and topup flow (moonpay integration) (#72) * feat: [WIP][UI] new UI for receive and topup flow * feat: [WIP][UI] implement copy address and some refactor * feat: replace webview using CustomTabsIntent from androidx.browser * feat: replace webview using CustomTabsIntent from androidx.browser * feat: add PickerWheel * chore: rename param at QRUtils.generateQR * chore: revert default startDestination at BrainwalletActivity * feat: wip moonpay integration * feat: wip moonpay integration * chore: new UI for ReceiveDialog * chore: parse error from response API at BrainwalletViewModel * chore: add /moonpay/buy-quote and remove dev base url * chore: make LegacyNavigation.showMoonPayWidget receive params for the widget url * chore: add GetMoonpayBuyQuoteResponse * chore: wip moonpay integration to call buy-quote * fix: fix wheel picker for IDR at ReceiveDialog * fix: fix invalid signature * feat: moonpay integration at onboarding flow at BuyLitecoinScreen also fix some stuffs * chore: replace base url for moonpay buy integration when debug * chore: introduce LocalCacheSource.kt and cache fetch limits * chore: adjustment receive dialog UI - debounce fiat currency to 2s - increment in 10 - remove decimal places - default value to 10% of range * chore: reorder bottom navigation item and add new strings * chore: add new translations * chore: refactor UI for buy and receive dialog * chore: cleanup ReceiveDialogViewModel * chore: using MoonpayBuyWidget * chore: adjustment moonpaywidget * chore: for now moonpay widget using CustomTabsIntent * version and code bump * Added support url (#81) - changed the language - code bump * version and code bump * Revert from eda0f532 & cherry pick (#86) * version bump * feat: new UI for receive and topup flow (moonpay integration) (#72) * feat: [WIP][UI] new UI for receive and topup flow * feat: [WIP][UI] implement copy address and some refactor * feat: replace webview using CustomTabsIntent from androidx.browser * feat: replace webview using CustomTabsIntent from androidx.browser * feat: add PickerWheel * chore: rename param at QRUtils.generateQR * chore: revert default startDestination at BrainwalletActivity * feat: wip moonpay integration * feat: wip moonpay integration * chore: new UI for ReceiveDialog * chore: parse error from response API at BrainwalletViewModel * chore: add /moonpay/buy-quote and remove dev base url * chore: make LegacyNavigation.showMoonPayWidget receive params for the widget url * chore: add GetMoonpayBuyQuoteResponse * chore: wip moonpay integration to call buy-quote * fix: fix wheel picker for IDR at ReceiveDialog * fix: fix invalid signature * feat: moonpay integration at onboarding flow at BuyLitecoinScreen also fix some stuffs * chore: replace base url for moonpay buy integration when debug * chore: introduce LocalCacheSource.kt and cache fetch limits * chore: adjustment receive dialog UI - debounce fiat currency to 2s - increment in 10 - remove decimal places - default value to 10% of range * chore: reorder bottom navigation item and add new strings * chore: add new translations * chore: refactor UI for buy and receive dialog * chore: cleanup ReceiveDialogViewModel * chore: using MoonpayBuyWidget * chore: adjustment moonpaywidget * chore: for now moonpay widget using CustomTabsIntent * chore: set allowSpend to false when recommend rescan click * fix: add delete transaction data from local database * Removed chatty event * chore: add analytics at BRWalletManager.publishCallback * chore: make sure calculation and static fee same as iOS, add setting for selected fee type --------- Co-authored-by: Kerry Washington <mrkerrywashington@icloud.com> * build bump * chore: open bread activity first then open moonpay widget (#88) * Adjustment for circleci (#89) * chore: wip adjustment for screengrab * chore: [circleci] adjust config.yml * chore: [circleci] update config.yml, Fastfile, Gemfile.lock, RecoverWalletScreenGrabsTest.kt * chore: [circleci] for now just unit-test * fix: android: Footer version label is obfuscated (#92) * fix: android: Footer version label is obfuscated * fix: [#92] android: Footer version label is obfuscated * fix: You saved it right screen reset button covers words (#93) * fix: [#84] change seed words layout to lazy vertical grid * fix: [#84] refactor seed words layout * tiny resizing (#94) * code and version bump * change break (#97) adds a android user agent and externalID * build code number fix: [#96] remove bottom_nav_menu_us and just using bottom_nav_menu for consistency (#98) * fix: [#137] fix: Reset fiat options in Buy / Receive modal (#99) * Chore/update device data (#100) * change break adds a android user agent and externalID * Update ReceiveDialogViewModel.kt * chore: refactor request params for fetchMoonpaySignedUrl --------- Co-authored-by: andhikayuana <andhikayuana@gmail.com> * Add agent string obfuscation (#103) * updated metadata (#105) * chore: remove screen lock detection (#106) * 🧰 Fx/seed words UI polish (#108) * changed to tap * Added instruction label -added localizations * Added 'empty string for when confirm is completed * version and code bump * fix typo replaced click file with mp3 added error sound * ❇️ Feat/add polish punjabi farsi (#109) * changed to tap * Added instruction label -added localizations * Added 'empty string for when confirm is completed * version and code bump * fix typo replaced click file with mp3 added error sound * added 3 languages * Removed unused audio files * polished tests * removed unused asset pack * code bump * fix: fix YourSeedProveItState.isWordUsedCorrectly (#111) * Upgrade targetSdk 36 (#113) * chore: change drawable with density for brainwallet_logotype_white * chore: adjustment WelcomeScreen.kt * chore: adjustment for targetSdk 36 also support 16KB page size * bump clean extra semicolon * Update pro-guard-rules * Updated the version --------- Co-authored-by: andhikayuana <andhikayuana@gmail.com> * Updated games module to v1.1.0 * Updated the games submodule * Renamed and tested with user skips --------- Co-authored-by: andhikayuana <andhikayuana@gmail.com> * Fix(#227): Crash when launching MoonPay Widget (#126) Refactored the MoonPay widget integration to a dedicated Composable (`MoonPayWidgetLauncher`) to ensure proper state handling and loading behavior. - Added `MoonPayWidgetLauncher.kt` with Composable and ViewModel for managing signed URL fetch and Custom Tab launch. - Ensures loading state covers the whole screen, preventing UI crashes. - Removed legacy static method `LegacyNavigation.showMoonPayWidget`. - Updated `ReceiveDialog.kt` and `BuyLitecoinScreen.kt` to use the new Composable. - Minor cleanup in `LegacyNavigation.kt`. * feat(#138): Improve Unlock Screen UI and add dark mode toggle (#122) * Redesign welcome screen (#123) * Redesign welcome screen * Redesign ready screen * 🚀[Release v4.7.2] Merge into Develop (#127) * 🚀[Release v4.4.7] Merge into Main (#70) * Revert "Updated the APIManager" This reverts commit 4e252ac29cfb6c3ab26ae5ea4a8f6de154311f2e. # Conflicts: # app/src/main/java/com/brainwallet/tools/manager/APIManager.kt * Reverted the Kotlin APIManager. * Add version and code to welcome screen * reset padding * Revert "Updated the APIManager" This reverts commit 4e252ac29cfb6c3ab26ae5ea4a8f6de154311f2e. # Conflicts: # app/src/main/java/com/brainwallet/tools/manager/APIManager.kt * Reverted the Kotlin APIManager. * fix: fix crash when FragmentSignal dismissed * fix: fix sync after wipe * fix: fix wrong lifecycle to trigger cal…
Removed bwgdlib cruft
* Stored emojis are working! Added pager in emoji sequence How to is done Picker in progress Built the YourEmojis route Moved the InAppReview class Created the InAppReview Service Layout the bullets Completed layout for the How to choose Added better gradients Removed the textfield Disable sheet gesture Added `deprecated` portrait setting in the Android Manifest xml Wired in the Game Hub when user doesnt have the 3 emojis Polished the layout * Cleaned up item layout in 3 emojis Added logic to show the emojis WIP: Figuring out the nav for setting emojis Relayout the Pick Emojis x close * Add label in button * Version bump
* Added a check to show/ hide the Brainwallet Phrase in Settings * Hooked in the drawerState to set and clear the emojis
Reset the name of the bw-gdlib to match
Languages updated: ar, de, es, fa, fr, hi, in, it, ja, ko, nl, pa, pl, pt-rBR, ru, sv, th, tr, uk, zh-rCN, zh-rTW Triggered by: c45fa05 Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
kcw-grunt
pushed a commit
that referenced
this pull request
Jul 29, 2026
Syncs develop with everything already shipped: Release v4.10.4 (#244) and Release v4.10.6 (#253), which develop was missing entirely (develop had been stale since before v4.10.4). Brings in the ReLinker native-lib crash fix, the BWSender flaky-test fix, the ghost-launcher-icon crash fix, and the BreadActivity NPE fix. Conflicts resolved: - app/build.gradle.kts: kept main's v4.10.6 (202506345) over develop's older v4.10.5 - gradle/libs.versions.toml: kept the ReLinker dependency addition Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
📱 Description
Release v4.10.4 introduces significant architectural improvements, UI/UX enhancements, and feature expansions across the Brainwallet Android app. This release includes updates to the game hub system, emoji picker functionality, settings screens, and underlying wallet operations, along with native library updates for multi-architecture support (arm64-v8a, armeabi-v7a, x86, x86_64).
Platform
🎯 Type of Change
📋 Changes
New Components Added
Modifications
Removals
📊 Statistics
🔗 Related Issues
🧪 Tests Status
📸 Screenshots/Videos
🎯 Reviewers
@kcw-grunt, @josikie
Draft Status: This PR is currently in draft mode and ready for review feedback.