Skip to content

Feat/add tutorial functionality - #214

Merged
kcw-grunt merged 6 commits into
developfrom
feat/add-tutorial-functionality
Apr 24, 2026
Merged

kcw-grunt merged 6 commits into
developfrom
feat/add-tutorial-functionality

Conversation

@kcw-grunt

@kcw-grunt kcw-grunt commented Apr 24, 2026 •

Copy link
Copy Markdown
Collaborator

📱 Description

This PR adds comprehensive tutorial functionality to the Brainwallet Android app, introducing guided walkthrough and send transaction tutorials accessible via new navigation routes. The feature includes interactive pager-based screens with tutorial cards, detailed step-by-step instructions, and analytics tracking for user engagement.

🤖 _Auto-generated by GitHub Copilot

Platform

  • Android

🎯 Type of Change

  • 🐛 Bug fix
  • ✨ New feature
  • 🔧 Refactoring (code change that neither fixes a bug nor adds a feature)
  • 📚 Documentation update
  • 🎨 UI/UX improvement
  • 🧪 Test addition or improvement

📋 Changes

New Components Added

  • TutorialBentoEvent.kt – Sealed class defining tutorial events (OnLoad, OnTapGeneralTutorial, OnTapSendTutorial)
  • TutorialBentoState.kt – State data class tracking dark mode preference for tutorial UI
  • TutorialsBentoViewModel.kt – MVI ViewModel managing tutorial state, subscribing to settings repository for theme changes
  • TutorialGeneralBentoScreen.kt – Bento card composable for general walkthrough tutorial preview with fruits background image
  • TutorialSendBentoScreen.kt – Bento card composable for send tutorial preview with dedicated background image
  • TutorialsBentoPagerScreen.kt – Horizontal pager container displaying tutorial cards (2 pages) with dot pagination indicator and analytics logging
  • TutorialWalkthoughPagerScreen.kt – Full-screen pager for walkthrough tutorial multi-step experience
  • TutorialWalkthroughPage1.kt – First page of walkthrough tutorial with title and callout pointer
  • TutorialWalkthroughPage2.kt – Second page of walkthrough tutorial with instructional content
  • TutorialWalkthroughPage3.kt – Third page of walkthrough tutorial with instructional content
  • TutorialWalkthroughPage4.kt – Fourth page of walkthrough tutorial with instructional content
  • TutorialSendPagerScreen.kt – Full-screen pager for send transaction tutorial experience
  • TutorialSendPage1.kt – First page of send tutorial with callout pointers
  • TutorialSendPage2.kt – Second page of send tutorial with callout pointers
  • TutorialSendPage3.kt – Third page of send tutorial with image and instructional content
  • CalloutWithPointers.kt – Reusable composable for annotated callout boxes with directional pointers
  • MoonPayButtonCallout.kt – Specialized callout component for MoonPay button tutorials
  • Gradient.kt – Theme utility for gradient definitions

Modifications

  • Route.kt – Added two new sealed class members: TutorialWalkthrough and TutorialSend routes for navigation
  • TutorialsBentoScreen.kt → TutorialsBentoPagerScreen.kt – Refactored from static "Coming Soon" placeholder to fully functional HorizontalPager with:
    • Two-page pager state management
    • Dynamic page-specific component rendering
    • Animated dot pagination indicator
    • Analytics event tracking on tutorial selection
    • Callback support for page clicks
  • MainScreen.kt – Integration of new tutorial pager screen into main UI layout
  • strings.xml – Added new string resources for tutorial titles and descriptions
  • Gradle/Build Configuration – Updated to support new composables and dependencies
  • BWSenderTest.kt – Added or improved tests for send transaction functionality

Removals

  • TutorialsBentoScreen.kt (original file) – Replaced by TutorialsBentoPagerScreen.kt with enhanced functionality
  • Removed "Coming Soon" placeholder text and logic

📊 Statistics

  • Additions: 1552 lines
  • Deletions: 30 lines
  • Files Changed: 25
  • Commits: 2

🔗 Related Issues

  • Fixes #
  • Related to #

🧪 Tests Status

  • Tests ran successfully locally?
  • Added more tests? How many? – BWSenderTest.kt updated
  • Code coverage percentage of the codebase: __%

📸 Screenshots/Videos

Action Vid
tuts

⚠️ Reviewers Notes

  1. Analytics Integration – AnalyticsManager.logCustomAdHocEvent() calls present on tutorial selection; ensure analytics backend is configured
  2. String Resources – New tutorial strings added to strings.xml; verify translations are available for supported locales
  3. Image Assets – New drawable resources added (fruits3.png, send_tut_3x.png, sendsetup.png); confirm sizes are optimized for performance
  4. Pager State Management – Using rememberPagerState() in composables; lifecycle correctness validated for configuration changes
  5. Unused Variables – Some composables declare pagerState or resizedDescriptionFontSize that may not be actively used; consider cleanup
  6. Consistency – Verify routing integration with existing navigation system and that new routes are properly handled in main navigation graph

Draft Status: This PR is currently in draft mode and ready for review feedback.

@kcw-grunt
kcw-grunt requested a review from josikie April 24, 2026 15:43
@kcw-grunt kcw-grunt self-assigned this Apr 24, 2026
@kcw-grunt kcw-grunt added enhancement New feature or request android labels Apr 24, 2026
@gruntsoftware gruntsoftware deleted a comment from github-actions Bot Apr 24, 2026
github-actions Bot and others added 2 commits April 24, 2026 16:56
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: a8d1f57
@kcw-grunt
kcw-grunt force-pushed the feat/add-tutorial-functionality branch from 9684925 to 953ac76 Compare April 24, 2026 16:22
github-actions Bot and others added 2 commits April 24, 2026 17:36
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: 953ac76
@kcw-grunt
kcw-grunt merged commit bc79335 into develop Apr 24, 2026
0 of 3 checks passed
@kcw-grunt
kcw-grunt deleted the feat/add-tutorial-functionality branch May 4, 2026 07:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

android enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant