Skip to content

Wallet modal improvements and Android package configuration - #13

Merged
jacklevin74 merged 4 commits into
masterfrom
test-hermes-no-bottomsheet
Nov 16, 2025
Merged

Wallet modal improvements and Android package configuration#13
jacklevin74 merged 4 commits into
masterfrom
test-hermes-no-bottomsheet

Conversation

@stackedPenguin

Copy link
Copy Markdown
Collaborator

Summary

This PR adds several wallet modal UX improvements and updates the Android package configuration:

  • Auto-select and scroll to current wallet - Wallet modal automatically scrolls to show the currently selected wallet when opened
  • Auto-expand for multiple wallets - Wallet modal automatically expands to full screen when there are more than 2 wallets
  • Auto-select new wallets - Newly created wallets are automatically selected and displayed after creation
  • Transaction indexer registration - New wallets are automatically registered with the transaction indexer
  • TrueSheet configuration - All modals now have proper size configuration and styling
  • Component extraction - Extracted Ledger connection screen into a separate component for better code organization
  • Android package update - Package name changed to xyz.x1.wallet and app name to X1 Wallet

Technical Details

Wallet Modal Improvements

  • Added useEffect hook in WalletManagerScreen to auto-scroll to selected wallet using measureLayout and scrollTo
  • Modified wallet creation logic to set selected: true on new wallets and deselect others
  • Added conditional auto-expand logic using walletManagerSheetRef.current?.resize(1) when wallet count > 2

Android Configuration

  • Updated android/android/app/build.gradle namespace and applicationId to xyz.x1.wallet
  • Updated android/android/app/src/main/res/values/strings.xml app_name to X1 Wallet
  • Created new package directory structure and updated Kotlin files with new package declarations

Test Plan

  • Verify wallet modal opens with current wallet visible
  • Verify modal auto-expands when there are 3+ wallets
  • Verify new wallets are auto-selected after creation
  • Build and verify APK has correct package name (xyz.x1.wallet) and app name (X1 Wallet)
  • Install APK and verify all functionality works correctly

Build Info

APK Location: android/android/app/build/outputs/apk/release/app-release.apk
Size: 37 MB
Package: xyz.x1.wallet
Version: 1.0.0

🤖 Generated with Claude Code

Jack Levin and others added 4 commits November 16, 2025 09:14
Changes:
- Keep @gorhom/bottom-sheet imports (native modules still compile)
- Override with dummy components that don't render
- Add network timeout fix (3s) for SOL price fetching
- Add reanimated import as first line in index.js

This test version allows isolating whether bottom sheet animations
are causing UI freezes on certain devices. All functionality works
except bottom sheet UI won't be visible.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Replaced worklets/reanimated-based bottom sheets with simple Modal
components to eliminate UI freezing issues on certain devices.

Changes:
- Created SimpleBottomSheet.tsx using React Native Modal
- Removed @gorhom/bottom-sheet dependency from App.js
- All bottom sheets now use Modal with slide animation
- Network timeout fix (3s) for SOL price fetching
- Reanimated import as first line in index.js

Benefits:
- No UI freezes (no worklets/reanimated animations)
- Works with both Hermes and JSC
- Simpler, more reliable bottom sheet implementation
- All functionality preserved

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Migrate from React Navigation to @lodev09/react-native-true-sheet to eliminate navigation flashing and improve performance with native bottom sheet animations.

Changes:
- Add TrueSheet package and remove React Navigation dependencies
- Extract all navigation screens to dedicated screen files:
  - SendScreen.js - Send token transactions
  - ReceiveScreen.js - Display QR code and address
  - ActivityScreen.js - Transaction history
  - WalletManagerScreen.js - Wallet selection and management
  - WalletSettingsScreen.js - Wallet edit options
  - AddressSelectorScreen.js - Address picker for send flow
- Convert navigation.navigate() to ref-based sheet.present() calls
- Replace route.params with direct prop passing
- Remove SafeAreaView (handled by TrueSheet internally)
- Implement nested sheet support (SendScreen -> AddressSelector)

Benefits:
- Smoother, native bottom sheet animations
- Eliminates navigation fade flashing
- Better performance with imperative API
- Cleaner component architecture
- Auto-select and scroll to current wallet when wallet modal opens
- Auto-expand wallet modal to full screen when more than 2 wallets exist
- Auto-select newly created wallet after wallet creation
- Register new wallets with transaction indexer
- Add TrueSheet configuration with proper sizes and styling for all modals
- Extract Ledger connection screen into separate component

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@jacklevin74
jacklevin74 merged commit c34163e into master Nov 16, 2025
8 checks passed
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.

3 participants