Skip to content

Staging -> Main (Optimize Plugin first release 5.0.0) - #175

Merged
akhiljain1907 merged 24 commits into
mainfrom
staging
Jul 31, 2026
Merged

Staging -> Main (Optimize Plugin first release 5.0.0)#175
akhiljain1907 merged 24 commits into
mainfrom
staging

Conversation

@akhiljain1907

Copy link
Copy Markdown
Contributor

Description

Related Issue

Motivation and Context

How Has This Been Tested?

Screenshots (if appropriate):

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

  • I have signed the Adobe Open Source CLA.
  • My code follows the code style of this project.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have read the CONTRIBUTING document.
  • I have added tests to cover my changes.
  • All new and existing tests passed.

akhiljain1907 and others added 24 commits June 20, 2026 16:54
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>
… 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
-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
Added Optimize Plugin for Flutter

@navratan-soni navratan-soni left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Staging to main merge

@akhiljain1907
akhiljain1907 merged commit 9d5d942 into main Jul 31, 2026
20 checks passed
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.

3 participants