[SDK-706] Replace deep-link AsyncTask with SDK executors - #1094
franco-zalamena-iterable wants to merge 4 commits into
Conversation
9673361 to
8fe0331
Compare
8fe0331 to
8563c92
Compare
|
Stack review update after the rebase:
Check, BCIT, instrumentation, changelog, Java analysis, and CodeQL passed. I have rerun the unit job after its notification-image and request-ordering failures; the updated top branch passes the affected request tests locally. Ready for another review. |
|
Rerun follow-up: instrumentation remains green, and the unit rerun now fails only on the repository-wide external IterableNotificationTest.testNotificationImage assertion. The earlier request-ordering failure did not recur. |
| val attribution = parseAttributionCookies(connection) | ||
|
|
||
| return IterableDeeplinkRedirectResult( | ||
| redirectUrl, |
There was a problem hiding this comment.
Every 3xx response passes getHeaderField("Location") directly to nullable redirectUrl.
If the header is missing or blank, that violates the failure fallback contract to return the original URL, and handleAppLink then creates no action, so the link is silently not opened.
Suggest treating a missing or blank Location as a failed redirect and return originalUrl, with coverage that also asserts main-thread delivery.
8563c92 to
cb4710b
Compare
📝 Summary
Moves Iterable deep-link redirect work off the process-wide AsyncTask queue while preserving callback behavior.
🎟️ Jira Ticket: SDK-706
📖 Description
This PR is stacked on #1093 (SDK-705).
🧪 How to test?
Passed:
The required standalone inbox-customization sample still fails on its existing Kotlin language-version mismatch: the sample uses Kotlin 1.8 while iterableapi-ui contains Kotlin 1.9 data object declarations.
🧾 Changelog
Updated the existing executor entry to include Iterable deep-link redirects and preserved main-thread callbacks.
📹 Loom recording if applicable
Not applicable.
🐞 Github Issues solved
None.
📚 Docs PR if applicable
Not applicable.