Skip to content

YPE-1125: feat: add Android view module stubs for RN bridging#31

Merged
mic-mart merged 1 commit into
mainfrom
mm/android-view-stubs
Jan 31, 2026
Merged

YPE-1125: feat: add Android view module stubs for RN bridging#31
mic-mart merged 1 commit into
mainfrom
mm/android-view-stubs

Conversation

@mic-mart

Copy link
Copy Markdown
Collaborator

Summary

  • Adds placeholder implementations for missing Android view modules
  • Mirrors iOS module structure for parity
  • Includes RNBibleTextViewModule, RNVotdViewModule, RNBibleReaderViewModule, RNBibleWidgetViewModule

Test plan

  • npm run build passes
  • Example app runs on Android without crashes

- Add RNBibleTextViewModule placeholder
- Add RNVotdViewModule placeholder
- Add RNBibleReaderViewModule placeholder
- Add RNBibleWidgetViewModule placeholder
- Update expo-module.config.json
@chatgpt-codex-connector

Copy link
Copy Markdown

Codex usage limits have been reached for code reviews. Please check with the admins of this repo to increase the limits by adding credits.
Credits must be used to enable repository wide code reviews.

@greptile-apps

greptile-apps Bot commented Jan 23, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

Added placeholder Android implementations for four Bible view modules to achieve platform parity with iOS. The implementations include RNBibleTextViewModule, RNVotdViewModule, RNBibleReaderViewModule, and RNBibleWidgetViewModule, each with corresponding Jetpack Compose view components.

  • Properly registered all four modules in expo-module.config.json Android section
  • Created module definitions following Expo module patterns (Name, View registration)
  • Implemented placeholder views using ExpoComposeView with comprehensive prop definitions matching iOS
  • Added event handling for BibleTextView (onTap event declared in module and EventDispatcher in view)
  • Used Compose best practices with MutableState props and @Composable Content functions
  • Included color scheme support with dark/light mode handling in applicable views

All implementations are marked with TODO comments indicating they're placeholders awaiting the Kotlin SDK.

Confidence Score: 5/5

  • This PR is safe to merge with minimal risk
  • The code is well-structured placeholder implementation that follows established patterns in the codebase, achieves platform parity with iOS, and includes clear TODO markers for future implementation
  • No files require special attention

Important Files Changed

Filename Overview
android/src/main/java/com/youversion/reactnativesdk/RNBibleTextViewModule.kt Added module definition for BibleTextView with onTap event registration
android/src/main/java/com/youversion/reactnativesdk/views/YVPBibleTextView.kt Added placeholder view with styling props, EventDispatcher declared but unused (placeholder)
expo-module.config.json Registered four new Android modules to match iOS module list

Sequence Diagram

sequenceDiagram
    participant RN as React Native App
    participant Expo as Expo Module System
    participant Module as RN*ViewModule
    participant View as YVP*View
    participant Compose as Jetpack Compose

    RN->>Expo: Request to render Bible view component
    Expo->>Module: Load module via expo-module.config.json
    Module->>Expo: Register view class with Name()
    Expo->>View: Instantiate ExpoComposeView with props
    View->>View: Initialize props data class with MutableStates
    View->>Compose: Render Content() composable
    Compose->>View: Display placeholder UI with props values
    
    Note over View,Compose: Future implementation will replace<br/>placeholder with actual Kotlin SDK views
    
    alt Event handling (e.g., BibleTextView)
        Compose->>View: User interaction triggers event
        View->>Module: Dispatch event via EventDispatcher
        Module->>Expo: Forward event to React Native
        Expo->>RN: Deliver event to JS callback
    end
Loading

@greptile-apps

greptile-apps Bot commented Jan 23, 2026

Copy link
Copy Markdown
Contributor

Greptile found no issues!

From now on, if a review finishes and we haven't found any issues, we will not post anything, but you can confirm that we reviewed your changes in the status check section.

This feature can be toggled off in your Code Review Settings by deselecting "Create a status check for each PR".

@mic-mart mic-mart changed the title feat: add Android view module stubs for RN bridging YPE-1125: feat: add Android view module stubs for RN bridging Jan 26, 2026

@sidorchukandrew sidorchukandrew left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I think this works!!

@mic-mart mic-mart merged commit 66cf642 into main Jan 31, 2026
2 checks passed
@mic-mart mic-mart deleted the mm/android-view-stubs branch January 31, 2026 21:11
jhampton pushed a commit that referenced this pull request Jan 31, 2026
## 0.9.0 (2026-01-31)

* feat: Update Kotlin SDK and fix all breaking changes (#36) ([0e03b0e](0e03b0e)), closes [#36](#36)
* feat (android): add view module stubs for RN bridging (#31) ([66cf642](66cf642)), closes [#31](#31)
@github-actions

Copy link
Copy Markdown

🎉 This PR is included in version 0.9.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants