Conversation
# Conflicts: # Sources/CrowdinSDK/Providers/Crowdin/LocalizationDownloader/CrowdinLocalizationDownloader.swift # Sources/CrowdinSDK/Providers/Crowdin/SupportedLanguages/CrowdinSupportedLanguages.swift
…d and add unit tests for supported languages cache behavior and JSON parsing
…it test for custom language handling
… integration issues
…h placeholders in SceneDelegate
|
You have run out of free Bugbot PR reviews for this billing cycle. This will reset on February 17. To receive reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial. |
Generated by 🚫 Danger Swift against e60a15c |
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #373 +/- ##
==========================================
+ Coverage 55.83% 56.84% +1.02%
==========================================
Files 136 134 -2
Lines 6320 6475 +155
==========================================
+ Hits 3528 3680 +152
- Misses 2792 2795 +3 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Pull request overview
This PR migrates “supported languages” fetching/caching from the Crowdin API models to a CDN-based languages.json per distribution hash, updates manifest language resolution to use the new representation, and adjusts/extends test coverage (including integration test gating).
Changes:
- Replace the old
LanguagesAPI/LanguagesResponsemodel flow with alanguages.json(CDN) downloader and newDistributionLanguagemodel. - Update
ManifestManagerlanguage resolution and cache-clearing behavior to align with the new supported-languages storage. - Update/add tests and test project configuration for the new supported-languages behavior (plus some Settings UI table cell sizing improvements).
Reviewed changes
Copilot reviewed 16 out of 20 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| Sources/CrowdinSDK/Providers/Crowdin/SupportedLanguages/CrowdinSupportedLanguages.swift | Implements CDN languages.json fetch, ETag handling, and caching for supported languages. |
| Sources/CrowdinSDK/Providers/Crowdin/ManifestManager/ManifestManager.swift | Wires supported-languages updates into manifest lifecycle and adds language merging helper. |
| Sources/CrowdinSDK/Providers/Crowdin/ManifestManager/ManifestManager+LanguageResolver.swift | Updates language resolution to use the new supported-languages representation + merged custom languages. |
| Sources/CrowdinSDK/Providers/Crowdin/CrowdinRemoteLocalizationStorage.swift | Moves supported-languages refresh to occur alongside/after manifest download and refactors localization selection. |
| Sources/CrowdinSDK/Settings/CrowdinLogsVC/CrowdinLogsVC.swift | Enables dynamic cell heights for logs UI. |
| Sources/CrowdinSDK/Settings/CrowdinLogsVC/CrowdinLogCell/CrowdinLogCell.swift | Improves Auto Layout for log cell content and simplifies accessory handling. |
| Sources/Tests/CrowdinProvider/CrowdinSupportedLanguagesTests.swift | Adds unit tests for supported-languages caching and parsing of languages.json. |
| Sources/Tests/CrowdinProvider/ManifestManagerTests.swift | Updates manifest tests to use the new CrowdinLanguage-based supported languages array; adds custom-language content test. |
| Tests/UnitTests/CrowdinSupportedLanguagesThreadSafetyTests.swift | Updates thread-safety tests to match the new supported-languages structure. |
| Tests/Tests.xcodeproj/xcshareddata/xcschemes/TestsTests.xcscheme | Adds RUN_INTEGRATION_TESTS=1 environment variable to the shared scheme. |
| Tests/Tests.xcodeproj/project.pbxproj | Adds integration test sources to the Xcode test target. |
| Sources/Tests/CrowdinAPI/LanguagesAPITests.swift | Removes tests for the old LanguagesAPI. |
| Sources/CrowdinSDK/CrowdinAPI/LanguagesAPI/LanguagesAPI.swift | Removes the old Crowdin API client for languages. |
| Sources/CrowdinSDK/CrowdinAPI/LanguagesAPI/Models/LanguagesResponse.swift | Removes the old languages response models. |
| Resources/Tests/SupportedLanguages.json | Removes the old large test fixture for languages API response. |
| CrowdinSDK.podspec | Removes the supported-languages JSON fixture from the test spec resources. |
| Example/AppleReminders/Controllers/MainVC.swift | Adds conditional search bar placement logic + a KVC-based toggle helper. |
| Tests/Podfile.lock / Example/Podfile.lock / ObjCExample/Podfile.lock | Updates CrowdinSDK pod checksum references. |
Sources/CrowdinSDK/Providers/Crowdin/SupportedLanguages/CrowdinSupportedLanguages.swift
Outdated
Show resolved
Hide resolved
Tests/Tests.xcodeproj/xcshareddata/xcschemes/TestsTests.xcscheme
Outdated
Show resolved
Hide resolved
Sources/CrowdinSDK/Providers/Crowdin/SupportedLanguages/CrowdinSupportedLanguages.swift
Outdated
Show resolved
Hide resolved
…y toolbar integration method refactor: streamline supported languages cache management in CrowdinSupportedLanguages chore: remove unused environment variable from Tests scheme
…rtedLanguagesTests
…ving logic in CrowdinSupportedLanguages
|
@copilot perform review. |
|
@serhii-londar I've opened a new pull request, #376, to work on those changes. Once the pull request is ready, I'll request review from you. |
Note
Low Risk
Mostly regenerated CocoaPods/Xcode project metadata plus a small UI-only change; minimal impact on runtime SDK behavior.
Overview
Updates CocoaPods integration artifacts across the Swift and ObjC examples (Xcode project
.pbxprojreferences/build phases andPodfile.lockchecksums), likely reflecting apod installregeneration.Tweaks the AppleReminders example search UI by setting
navigationItem.preferredSearchBarPlacement = .stackedon iOS 16+.Removes the
CrowdinProvider_Testsresource entry fromCrowdinSDK.podspecand updates exampleLocalizable.stringsvalues to include explicit locale tags (e.g.,[en][L],[fr][L],[uk][L]).Written by Cursor Bugbot for commit e60a15c. This will update automatically on new commits. Configure here.