Skip to content

Conversation

@mic-mart
Copy link
Collaborator

Summary

  • Replaces placeholder views with real Kotlin SDK composables
  • Ensures prop mapping matches iOS implementation
  • Integrates BibleText, VerseOfTheDay, and BibleWidget composables

Test plan

  • BibleTextView renders Bible text correctly
  • VotdView shows Verse of the Day
  • BibleWidgetView displays formatted passage
  • Example app runs on Android without crashes (cd example && npx expo run:android)

- Integrate BibleText composable in YVPBibleTextView
- Integrate VerseOfTheDay composable in YVPVotdView
- Integrate BibleWidget composable in YVPBibleWidgetView
- Add BibleReaderView placeholder with BibleText
@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

Replaced placeholder Android views with real Kotlin SDK composables (BibleText, VerseOfTheDay, and BibleWidget), enabling actual Bible content rendering and proper integration with the platform SDK.

  • Integrated BibleText composable with verse tap event handling
  • Implemented VerseOfTheDay with color scheme support
  • Added BibleWidget with MaterialTheme integration
  • BibleReaderView uses temporary scrollable implementation pending full platform-reader availability
  • Default wocColor has incorrect hex value (#F04C59 instead of iOS's #FF3D4D)
  • fontFamily prop hardcoded to FontFamily.Serif, ignoring user input
  • paragraphSpacing prop not passed to BibleTextOptions

Confidence Score: 3/5

  • This PR has several prop mapping issues that cause inconsistencies with the iOS implementation
  • Score reflects successful integration of core SDK composables, but penalized for color mismatch in default wocColor and missing prop mappings (fontFamily and paragraphSpacing) that create inconsistencies between iOS and Android behavior
  • Pay close attention to YVPBibleTextView.kt for prop mapping corrections to ensure iOS/Android parity

Important Files Changed

Filename Overview
android/src/main/java/com/youversion/reactnativesdk/views/YVPBibleTextView.kt Replaced placeholder with real BibleText composable, but has color mismatch and missing prop mappings (fontFamily, paragraphSpacing)
android/src/main/java/com/youversion/reactnativesdk/views/YVPBibleReaderView.kt Temporary scrollable BibleText implementation pending full BibleReaderView availability in platform-reader

Sequence Diagram

sequenceDiagram
    participant RN as React Native
    participant View as YVPBibleTextView
    participant Props as BibleTextViewProps
    participant SDK as Kotlin Platform SDK
    participant UI as BibleText Composable
    
    RN->>View: Set props (versionId, bookUSFM, chapter, etc.)
    View->>Props: Update MutableState values
    Props-->>View: Props updated
    
    RN->>View: Trigger recomposition
    View->>View: bibleReference()
    View->>View: textOptions()
    View->>SDK: Create BibleReference
    SDK-->>View: BibleReference instance
    
    View->>UI: BibleText(reference, textOptions, onVerseTap)
    UI->>SDK: Fetch Bible text data
    SDK-->>UI: Bible text content
    UI-->>View: Rendered text
    
    Note over UI,RN: User taps verse
    UI->>View: onVerseTap callback
    View->>RN: Dispatch onTap event
    RN-->>View: Handle verse tap
Loading

Copy link

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

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

4 files reviewed, 3 comments

Edit Code Review Agent Settings | Greptile

- Fix wocColor default to match iOS (#FF3D4D)
- Implement fontFamily prop mapping from string to FontFamily
- Document paragraphSpacing limitation (not supported by Kotlin SDK)
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