feat(banner): expose windowFullscreen setting on android bridge - #201
Merged
asadraza-usercentrics merged 1 commit intoAug 27, 2026
Merged
Conversation
MSDK-4637: windowFullscreen already existed in the core SDK's GeneralStyleSettings but was never plumbed through the Flutter bridge, so publishers relying on the fullscreen backward-compat workaround had no way to set it from Flutter — the same gap already closed on the React Native bridge (MSDK-4636). Adds the field to the Dart model and its Dart/Kotlin serializers, commits the example app's edge-to-edge opt-in, and wires an example scenario to exercise the new field end-to-end. Updates the two bridge test fixtures that assert exact serialized argument maps.
uc-brunosilva
approved these changes
Aug 24, 2026
islameldesoky95
approved these changes
Aug 24, 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.
Summary
Part of MSDK-4637 (Flutter edge-to-edge support, epic MSDK-3513). Same gap as MSDK-4636 on the React Native bridge: the MSDK-3736 fix (
windowIsFloating=false) is already released and consumed — confirmed present inusercentrics-ui2.29.0+ and already pinned viaandroid/build.gradle'susercentrics_version = "2.30.0"— so no dependency bump was needed. What remained wasGeneralStyleSettings.windowFullscreen, which exists in the core SDK but was never exposed through the Flutter bridge, leaving publishers with no way to set the fullscreen backward-compat workaround from Flutter.Changes
lib/src/model/general_style_settings.dart— addedwindowFullscreenfield, including==,hashCode, andtoString()(this class hand-rolls value equality, no code-gen)lib/src/internal/serializer/general_style_settings_serializer.dart— serializewindowFullscreeninto the map sent over the platform channelandroid/src/main/kotlin/com/usercentrics/sdk/flutter/serializer/GeneralStyleSettingsSerializer.kt— readwindowFullscreenindeserializeGeneralStyleSettings()and pass it into the core SDK'sGeneralStyleSettings(...)example/android/app/src/main/kotlin/com/usercentrics/sdk/flutter_example/MainActivity.kt— committed the edge-to-edge opt-in (WindowCompat.setDecorFitsSystemWindows(window, false))example/lib/window_fullscreen_example.dart+example/lib/main.dart— new example scenario and "Window Fullscreen (Android)" button so the field is exercisable end-to-end, not just plumbedtest/internal/bridge/show_first_layer_bridge_test.mock.dart+show_second_layer_bridge_test.mock.dart— updated the two fixtures that assert exact serialized argument maps to include the newwindowFullscreenkeyNo iOS changes (Android-only backward-compat field, per ticket scope) and no
mobile-sdkcore changes (field already exists there).Testing
flutter analyze— 0 issuesflutter test— 64/64 passing, including the 2 updated bridge fixturesBuilt and installed the example app (
flutter build apk --debug+adb install) on an Android emulator — clean install/launch, no crashesFull banner matrix manually exercised via the example app and verified via
adb/dumpsys window:windowFullscreen: truereaches native (Window Fullscreen button)frame=[0,0][1080,2340], full display boundsshowCloseButton: trueset explicitly in that call)windowFullscreenunset8/8 scenarios passed. MSDK-4613 (dim-scrim gap on API 33) reproduces here too, as expected — already tracked, out of scope for this ticket.
Acceptance Criteria
windowFullscreenexposed in the Dart model, Dart serializer, and native Kotlin serializerMainActivityedge-to-edge opt-in committedwindowFullscreenbackward-compat scenario exercised end-to-end via FNotes
Android Kotlin compile was verified via manual signature match against the core SDK's actual
GeneralStyleSettingsconstructor inmobile-sdk; CI's Android job compiles it directly on this PR.