[SDK-337] Fix for status bar overlap on in-app messages#988
[SDK-337] Fix for status bar overlap on in-app messages#988franco-zalamena-iterable wants to merge 8 commits intomasterfrom
Conversation
79b5978 to
44f314a
Compare
iterableapi/src/main/java/com/iterable/iterableapi/IterableInAppFragmentHTMLNotification.java
Dismissed
Show dismissed
Hide dismissed
iterableapi/src/main/java/com/iterable/iterableapi/IterableInAppFragmentHTMLNotification.java
Show resolved
Hide resolved
iterableapi/src/main/java/com/iterable/iterableapi/IterableInAppFragmentHTMLNotification.java
Show resolved
Hide resolved
iterableapi/src/main/java/com/iterable/iterableapi/IterableInAppFragmentHTMLNotification.java
Fixed
Show fixed
Hide fixed
…r in the app. Changing default bahaviour to follow the app layout
de2b8af to
eccf755
Compare
- Replace Java 14 switch expression in shouldApplySystemBarInsets() with traditional switch/case for broader JDK compatibility - Remove unused InAppLayout parameter from configureSystemBarsFollowingApp() and the unused local variable in configureSystemBarsForMode() - Change default IterableInAppDisplayMode from FOLLOW_APP_LAYOUT to FORCE_EDGE_TO_EDGE to preserve existing SDK behavior (no breaking change) - Update changelog and javadoc to reflect new default Made-with: Cursor
There was a problem hiding this comment.
Great work! Overall looks good to me but there is a docs issue we should resolve before merging :)
The enum's javadoc on FOLLOW_APP_LAYOUT says "Default.", but the actual Builder default and resolveDisplayMode() fallback are both FORCE_EDGE_TO_EDGE. The CHANGELOG also documents FORCE_EDGE_TO_EDGE as the default.
This is also inconsistent with the original PR description, which said the default would be FOLLOW_APP_LAYOUT so "clients implementing it will not have to think about it."
Can you clarify which was intended?
- Opt-in (current behavior) — existing clients keep hitting the obscured close-button bug until they explicitly set a different mode. If this is right, just move the "Default." note from
FOLLOW_APP_LAYOUTtoFORCE_EDGE_TO_EDGEinIterableInAppDisplayMode.java. - Auto-fix (per original description) — change the Builder default and
resolveDisplayMode()fallback toFOLLOW_APP_LAYOUT, and update the CHANGELOG.
This is a product call but it needs to be consistent across javadoc, Builder default, fallback, and CHANGELOG before merge.
|
One more thing — given this touches system-bar handling across a range of API levels (pre-R legacy flags, R+ WindowInsetsController, API 35+ default-transparent bars) and four display modes, please do thorough manual testing before merge. Specifically:
Worth looping QA in for a pass on this one. cc @jena-chakour |
|
The default should remain what we had before, force edge to edge, i am fixing the javadoc to reflect that |
Move the "Default." annotation from FOLLOW_APP_LAYOUT to FORCE_EDGE_TO_EDGE to match the actual Builder default, the resolveDisplayMode() fallback, and the CHANGELOG. Made-with: Cursor
🔹 Jira Ticket(s) if any
✏️ Description
We had a problem with fullscreen in-app messages, some clients were getting the close button behind the status bar and losing the ability to close the message.
The flag
FLAG_FULLSCREENwas just making the content appear under the status bar but blocking clicks and obstructing the view.The fix is to have new flags:
These are meant to control the way the in-app will be drawn in relation to the status bar of the app. The default behavior will be FORCE_EDGE_TO_EDGE so clients implementing it will not have to migrate or opt out