Skip to content

Conversation

@mic-mart
Copy link
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

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
Copy link

greptile-apps bot commented Jan 23, 2026

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
Copy link

greptile-apps bot commented Jan 23, 2026

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".

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