Skip to content

Implement Conjugate App Scribe-Server data download functionality (#565)#608

Open
prince-0408 wants to merge 1 commit into
scribe-org:mainfrom
prince-0408:feature/conjugate-app-data-download-565
Open

Implement Conjugate App Scribe-Server data download functionality (#565)#608
prince-0408 wants to merge 1 commit into
scribe-org:mainfrom
prince-0408:feature/conjugate-app-data-download-565

Conversation

@prince-0408
Copy link
Copy Markdown

Summary

This PR implements the Conjugate App Scribe-Server data download functionality as requested in issue #565. The implementation allows the Conjugate app to download only verb data (instead of full language data) while maintaining shared infrastructure with the Keyboard app.

Key Changes

  • Verb-only downloads: Conjugate app downloads only verbs, reducing download size and storage requirements
  • Separate databases: Creates {LANG}ConjugateData.sqlite files containing only the verbs table
  • Independent state tracking: Uses separate SharedPreferences (scribe_conjugate_prefs) to track conjugate-specific updates
  • Shared API infrastructure: Reuses existing /data/{lang} endpoint but filters for verb data only

Files Added

  • ConjugateDataDownloadViewModel.kt - Specialized ViewModel for conjugate data downloads
  • ConjugateDynamicDbHelper.kt - Database helper for verb-only databases

Files Modified

  • App.kt - Integrated conjugate-specific download actions and ViewModels
  • DatabaseFileManager.kt - Added getConjugateDatabase() method
  • ConjugateDataManager.kt - Updated to use conjugate-specific databases

Implementation Details

  • Database Separation: Keyboard app uses {LANG}LanguageData.sqlite (all data), Conjugate app uses {LANG}ConjugateData.sqlite (verbs only)
  • State Management: Independent download state tracking prevents conflicts between apps
  • API Integration: Uses existing Scribe-Server endpoints with client-side filtering for verbs
  • Data Contracts: Downloads and uses the same YAML contracts for conjugation patterns

Testing

  • ✅ Successfully tested with English verb data download
  • ✅ Verified separate database file creation
  • ✅ Confirmed UI state updates and progress indicators
  • ✅ Tested conjugateDebug build variant functionality

Resolves

Note

This implementation builds on the UI foundation from issue #564 and maintains compatibility with existing Keyboard app functionality while providing optimized verb-only downloads for the Conjugate app.

Screenshots

Conjugate App Main Screen

Screenshot_20260508_015055

Download Screen - After English Download

Screenshot_20260508_015107

…ribe-org#565)

- Create ConjugateDataDownloadViewModel for verb-specific downloads
- Add ConjugateDynamicDbHelper for verb-only database creation
- Update DatabaseFileManager with getConjugateDatabase() method
- Modify ConjugateDataManager to use conjugate-specific databases
- Update App.kt to integrate conjugate download actions
- Implement separate state tracking for conjugate vs keyboard apps
- Support verb-only downloads with smaller database files
- Maintain shared API infrastructure while filtering for verbs

Resolves: scribe-org#565
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 7, 2026

Thank you for the pull request! 💙🩵

The Scribe-Android team will do our best to address your contribution as soon as we can. The following are some important points:

  • Those interested in developing their skills and expanding their role in the community should read the mentorship and growth section of the contribution guide
  • If you're not already a member of our public Matrix community, please consider joining!
    • We'd suggest that you use the Element client as well as Element X for a mobile app
    • Join the General and Android rooms once you're in
  • Also consider attending our bi-weekly Saturday developer syncs!
    • Details are shared in the General room on Matrix each Wednesday before the sync
    • It would be great to meet you 😊

Note

Scribe uses Conventional Comments in reviews to make sure that communication is as clear as possible.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 7, 2026

Maintainer Checklist

The following is a checklist for maintainers to make sure this process goes as well as possible. Feel free to address the points below yourself in further commits if you realize that actions are needed :)

  • Tests for changes have been written and the unit test, linting and formatting workflows within the PR checks do not indicate new errors in the files changed

    • Tests may need to be reran as they're at times not deterministic
  • The CHANGELOG has been updated with a description of the changes for the upcoming release and the corresponding issue (if necessary)

Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

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

First PR Commit Check

  • The commit messages for the remote branch should be checked to make sure the contributor's email is set up correctly so that they receive credit for their contribution
    • The contributor's name and icon in remote commits should be the same as what appears in the PR
    • If there's a mismatch, the contributor needs to make sure that the email they use for GitHub matches what they have for git config user.email in their local Scribe-Android repo (can be set with git config --global user.email "GITHUB_EMAIL")

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.

1 participant