fix: resolve circular references & Conjugate target compilation errors#634
fix: resolve circular references & Conjugate target compilation errors#634prince-0408 wants to merge 7 commits intoscribe-org:mainfrom
Conversation
When a Scribe keyboard is installed but language data has not been
downloaded yet, a blue 'Please download language data' button now
appears at the top of the keyboard. Tapping it opens the Scribe app
and navigates directly to the Download Data screen.
Changes:
- KeyboardViewController.swift
- Added downloadDataBtn (UIButton?) property
- Added hasLanguageData() to check if the language SQLite file
exists in the shared app group container
- Added showDownloadDataBtn() to create and layout the blue CTA
button at the top of the keyboard view
- Added conditionallyShowDownloadDataBtn() to show/hide the button
based on data availability and current command state (only shown
in .idle state, hidden during translate/conjugate/plural/info)
- Added openScribeApp() using the UIResponder chain to open the
scribe:// URL scheme and direct the user to the download screen
- Called conditionallyShowDownloadDataBtn() at the end of loadKeys()
- Button is also hidden during displayInformation state
- CommandVariables.swift
- Added downloadDataMsg variable with default English fallback text
'Please download language data'
- Language interface variables (all 11 keyboards)
- ENInterfaceVariables: 'Please download language data'
- DEInterfaceVariables: 'Bitte Sprachdaten herunterladen'
- FRInterfaceVariables: 'Veuillez télécharger les données linguistiques'
- ESInterfaceVariables: 'Por favor descarga los datos del idioma'
- ITInterfaceVariables: 'Scarica i dati della lingua'
- PTInterfaceVariables: 'Por favor baixe os dados do idioma'
- RUInterfaceVariables: 'Загрузите языковые данные'
- SVInterfaceVariables: 'Ladda ner språkdata'
- NBInterfaceVariables: 'Last ned språkdata'
- HEInterfaceVariables: 'אנא הורד נתוני שפה'
- IDInterfaceVariables: 'Unduh data bahasa'
- Scribe/Info.plist
- Registered scribe:// URL scheme (CFBundleURLSchemes) so the app
can be opened from the keyboard extension
- Scribe/AppDelegate.swift
- Added application(_:open:options:) handler for the scribe:// URL
- Posts NavigateToDownloadScreen notification which InstallationVC
already handles to push the DownloadDataScreen
Closes scribe-org#627
…project memberships
Thank you for the pull request! 💙🩵The Scribe-iOS team will do our best to address your contribution as soon as we can. The following are some important points:
Note Scribe uses Conventional Comments in reviews to make sure that communication is as clear as possible. |
Maintainer ChecklistThe 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 :) |
|
Let us know when this is ready for review, @prince-0408 :) |
|
Hi @andrewtavis! The PR is ready for review. I've resolved the merge conflict in |
|
Sounds good, @prince-0408! I'll check this out later. Feel free to continue to work on #633 and #626 😊 |
Context
Addresses persistent compilation failures in the
Conjugatebuild target and resolves circular reference issues that were blocking the build across multiple targets.Changes
1. Resolved Circular References
Refactored
NavigationLevel(NavigationStructure.swift) andDeclensionNode(DataContract.swift) fromstructtoclass.NavigationLevelNavigationStructure.swiftstructclassDeclensionNodeDataContract.swiftstructclassThis resolves
Codablesynthesis failures and recursive value-type errors that were causing circular reference warnings onmain.2. Conjugate Target Restoration
PBXBuildFileentries inproject.pbxprojrequired for theConjugatetargetDataManagerandDataContractssynchronized groups for theConjugatetargetDownloadButton.swift,CTAButton.swift, andConfirmDialogView.swiftYamsframework and Swift Package to resolve theCYamlmodule resolution error3. Entry Point Conflict
Removed
AppDelegate.swiftfrom theConjugatetarget's sources to resolve the@mainattribute conflict between theScribe(UIKit) andConjugate(SwiftUI) app entry points.Verification
ConjugateScribeRelated Issues