feat(privacy): add the refundHandling data processing purpose - #162
Draft
devin-ai-integration[bot] wants to merge 2 commits into
Draft
devin-ai-integration[bot] wants to merge 2 commits into
devin-ai-integration[bot] wants to merge 2 commits into
Conversation
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Author
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Adds
PLYDataProcessingPurpose.refundHandling(MOB-581), mirroring Purchasely-iOS-Sources#804. Dart → bridge token isREFUND_HANDLING(same SCREAMING_SNAKE convention as the others); the native SDK emits"refund-handling"inX-PRIVACY-CONSENT-REVOKED-FEATURES. Not part ofallNonEssentials, no behaviour beyond carrying the flag. Android bridge untouched — itswhendrops the unknown token.Also fixes a pre-existing iOS bridge bug:
ALL_NON_ESSENTIALSshort-circuited to[.allNonEssentials]and silently dropped any other purpose passed alongside (e.g.identifiedAnalytics, nowrefundHandling). The switch is now a plaincompactMapincludingALL_NON_ESSENTIALS; the native manager unions the façades.Dartdoc on
revokeDataProcessingConsentdocuments the replace-set semantics (call replaces the stored set,[]grants everything back,allNonEssentialsexcludesidentifiedAnalytics/refundHandling).Type of Change
Testing
flutter build ios --simulator) — see notesflutter build apk) — not touchedflutter test), plusflutter analyzeanddart format --set-exit-if-changed .Local iOS verification against the Sources repo (PR #804 branch, i.e. develop +
refundHandling): the full SwiftPMflutter build ios --simulatorrun resolved the localPurchaselypackage but aborted before compiling because this machine has no iOS 26.5 simulator runtime installed. As a substitute, the bridge'srevokeDataProcessingConsentmapping (includingcase "REFUND_HANDLING": .refundHandling) was compiled in a scratch SwiftPM package importing the localPurchaselyproduct (Mac Catalyst destination):** BUILD SUCCEEDED **. So the Swift change compiles against the 6.2.0 API; the full plugin build will be exercised by CI once the pin is bumped.Checklist
Related Issues
MOB-581
Additional Notes
Draft until Purchasely iOS 6.2.0 ships.
.refundHandlingdoes not exist in the pinned 6.1.0, soios-unit-tests,build-iosandbuild-ios-swiftpmare expected to fail on this PR. Before merging: bumppurchasely/ios/purchasely_flutter.podspec+purchasely/ios/purchasely_flutter/Package.swiftto 6.2.0 and add theVERSIONS.mdrow.No native RunnerTests added:
SwiftPurchaselyFlutterPluginTests.swifthas no helper to drivehandle(_:result:)and the private method isn't reachable otherwise.Link to Devin session: https://app.devin.ai/sessions/af425686f98f4560a674a8e5f60cce47
Open in Devin Desktop: https://app.devin.ai/desktop/session/af425686f98f4560a674a8e5f60cce47?variant=devin
Requested by: @kherembourg