Repository navigation
chore: [SDK-5526] add sticky log view to demo app - #1192
Merged
Merged
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
Multi-model review (Claude Opus 5.5, GPT 5.6 Sol, Grok 4.7) of the demo sticky log view. Demo-only; isolate updates, listener lifecycle, and the 100-entry copy are fine.
Act on
- Incomplete
[OneSignal]migration: init and missing-API-key stilldebugPrintinmain.dart(~111, 121). All three models flagged this. Route those two throughLogService.logso testers see them on screen. - Header Clear/Collapse targets are ~14–18px in a 24px bar (2 models). Clear is destructive.
excludeSemantics: truealso likely strips the screen-reader activate action.
Consider
- Auto-scroll always jumps to the end, interrupting testers reading older lines.
- Fixed ~124px panel can overflow a short body (keyboard / landscape).
- Timestamp
osGrey600on#1E1E1Eis under WCAG AA.
Noted / dismissed
- Secondary screen has no panel (home stays mounted; buffer still updates).
- Other demo variants /
build.mdnot updated. - Optional
mountedguard on the post-frame scroll callback. - Thread safety, listener pairing, collapsed scroll: not defects.
Sent by Cursor Automation: PR Reviews
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Collaborator
Author
|
Thanks. Keeping init and missing API key as console-only to match Capacitor and RN, where the log view only shows listener events. Skipping the short body overflow and timestamp contrast since the panel size and colors come from the shared demo spec. |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
abdulraqeeb33
approved these changes
Oct 20, 2026
abdulraqeeb33
left a comment
Contributor
There was a problem hiding this comment.
Approve. One contract note on collapse, on the line. Spec 02 and 13 leave the panel expanded, so they still pass.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ubuntu-latest now defaults to a JDK that Gradle 8.7 cannot run. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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
One Line Summary
Add a logcat-style log view to the demo app that shows SDK listener events, so E2E tests can assert Dart events.
Details
Motivation
The shared Appium suite (sdk-shared) checks that listeners fire, e.g. that a notification
clickfires exactly once after a cold-start or background tap. The demo shows these events on screen so Appium can read them. Followssdk-shared/demo/build.md(Prompt 1.5, 2.0, 6.2) andstyles.md(Log View), matching the Capacitor (OneSignal/OneSignal-Capacitor-SDK#74) and React Native demos.Depends on OneSignal/sdk-shared#60 for the Android log assertions (Flutter exposes text as
content-desc).Scope
Demo app only; no SDK changes.
services/log_service.dart: in-memory log store (max 100 entries, never persisted).LogService.show()anderror()add to the view,info()is console only; all write[OneSignal] {message}to the consolewidgets/log_view.dart: sticky panel under the app bar with entry count, clear and collapse buttons, auto-scroll to newestmain.dart,app_viewmodel.dart: SDK listeners useLogService.show(), login/logout failureserror(), other actionsinfo(); notification click and foregroundWillDisplay now includenotificationIdhome_screen.dart: log view above the scroll view (most of the diff is re-indentation)theme.dart: replace unused log colors withosLogBackground/osLogTextfrom the speclog_view,log_entry_{index},log_clear_button,log_toggle_buttonSpec divergence: collapsing removes the
log_entry_*nodes, unlike the "entries stay in the view hierarchy while collapsed" line in build.md Prompt 2.0. This matches the RN and Capacitor demos. A zero-height clip drops the semantics nodes, andVisibility(maintainSemantics: true)needsmaintainSize, which would keep the 100px body.Testing
Unit testing
No new unit tests; demo UI only.
flutter analyzereports no new issues.Manual testing
Ran sdk-shared
run-local --sdk=flutterwith OneSignal/sdk-shared#60, log assertions executed (not skipped):--spec=023/3,--spec=132/2--spec=023/3,--spec=132/2Checked the UI hierarchy on Android: entries show the expected
foregroundWillDisplayandclickmessages with matching notification ids.Affected code checklist
Checklist
Overview
Testing
Final pass
🤖 Generated with Claude Code