Staging -> Main (Optimize Plugin first release 5.0.0) - #175
Merged
Conversation
Introduces a complete Flutter method-channel plugin wrapping the native AEP Optimize iOS (AEPOptimize ~>5.0) and Android (optimize via BOM 3.x) SDKs. Multiple native API overloads (no-callback, callback, callback+timeout) are consolidated into single Dart methods with optional parameters. Dart API: Optimize.updatePropositions, getPropositions, onPropositionsUpdate, clearCachedPropositions. Models: DecisionScope, OptimizeProposition, Offer, OfferType. Offer tracking: displayed(), tapped(), generateDisplayInteractionXdm(), generateTapInteractionXdm(). Proposition: generateReferenceXdm(). Includes 636 lines of Dart unit tests covering API invocation, response decoding, model roundtrips, enum conversions, listener callbacks, and edge cases. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…osition object reference to
… reference which becomes null once offer are retrieved and tracking calls are performed later on it.
…e-plugin Add flutter_aepoptimize plugin for Adobe Optimize SDK
Test App changes for AEPOptimize Plugin
-Xmx1536M → -Xmx4096M — gives Gradle enough heap to complete the build with the added Optimize plugin dependencies. enableJetifier=true → false — Jetifier is no longer needed since all AEP SDKs use AndroidX natively. Disabling it removes the JetifyTransform step that was OOM-ing and speeds up builds.
…e-plugin minor changes for CI fix for AEP Optimize Plugin feature PR
…e-plugin Addressed Code Review Comments for Optimize Plugin
The propositions array was inadvertently removed in acc612d while addressing code review comments. Without it, the loop-scoped proposition objects are deallocated before the SDK batch call, causing the weak Offer.proposition references to become nil and producing empty propositions in the Edge tracking payload.
…e-plugin Restore proposition retention in batch tracking methods
…pty payloads Offer holds a SoftReference to its parent proposition on Android (weak on iOS). In batch methods, the loop-scoped variable is the only strong reference — once it goes out of scope, GC can clear the SoftReference, producing empty tracking payloads. Added the same retention pattern already applied on iOS, along with explanatory comments on both platforms.
…e-plugin Android - retain propositions in batch tracking methods to prevent empty payloads
The native SDK includes activity and placement in every tracking XDM payload, but the Flutter bridge was not carrying these fields from native → Dart → native. This caused reconstructed propositions to have empty activity/placement, producing tracking payloads that differ from pure native apps. Added the pass-through across Dart model, iOS bridge, and Android bridge so the full proposition context is preserved in tracking calls.
…e-plugin Added github documentation for Optimize Flutter Plugin
…e-plugin Updated offers key to items
…e-plugin Updated Copyright & Doc Update
Added Optimize Plugin for Flutter
navratan-soni
approved these changes
Jul 31, 2026
navratan-soni
left a comment
Contributor
There was a problem hiding this comment.
Staging to main merge
Harjot1508
approved these changes
Jul 31, 2026
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
Related Issue
Motivation and Context
How Has This Been Tested?
Screenshots (if appropriate):
Types of changes
Checklist: