Conversation
📝 WalkthroughWalkthroughIntroduces a suppression-based mechanism in RingingEventBroadcaster to prevent repeated mute toggle loops on iOS CallKit by replacing silent/un-silence flows with event suppression. Adds comprehensive test coverage, initializes complete Flutter example projects with Android and iOS configurations, and documents the fix in changelogs. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~22 minutes Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 1 | ❌ 2❌ Failed checks (2 warnings)
✅ Passed checks (1 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 6
🤖 Fix all issues with AI agents
In
`@packages/stream_video_noise_cancellation/example/android/gradle/wrapper/gradle-wrapper.properties`:
- Around line 1-5: The gradle-wrapper.properties is missing
distributionSha256Sum to pin the Gradle distribution; add a line
distributionSha256Sum=<official SHA-256 for gradle-8.12-all.zip> alongside the
existing distributionUrl entry (keep distributionUrl as-is) so the wrapper
verifies the downloaded archive; fetch the exact SHA-256 from the official
Gradle release page for gradle-8.12-all.zip and insert it as the value.
In
`@packages/stream_video_noise_cancellation/example/android/settings.gradle.kts`:
- Around line 20-24: The plugins block declares AGP as
id("com.android.application") version "8.9.1" while Kotlin is
id("org.jetbrains.kotlin.android") version "2.1.0", which is incompatible;
either change the AGP version to a supported one (e.g., "8.7.2") or bump the
Kotlin plugin to a release that explicitly supports AGP 8.9.x—update the version
string in the plugins block accordingly so the AGP and Kotlin plugin versions
are compatible.
In
`@packages/stream_video_noise_cancellation/example/ios/Runner.xcodeproj/project.pbxproj`:
- Around line 361-379: The build configuration in project.pbxproj hardcodes
DEVELOPMENT_TEAM = EHV7XZLAHA in the buildSettings for the Profile configuration
(and similarly in Debug and Release), which causes signing errors for other
contributors; remove the DEVELOPMENT_TEAM entry (or set it to an empty value)
from the buildSettings blocks for Profile, Debug and Release so Xcode will
prompt each developer to select their own team (locate the buildSettings map
containing DEVELOPMENT_TEAM and delete that line for the configurations named
Profile, Debug and Release).
In `@packages/stream_video_noise_cancellation/example/pubspec.yaml`:
- Around line 13-18: The example's pubspec mistakenly lists runtime packages
under dev_dependencies; move the two packages "stream_video" and
"stream_video_noise_cancellation" from the dev_dependencies block into the
dependencies block (i.e., ensure there is a top-level dependencies: section and
place those package entries there) so the example app has them as runtime
dependencies rather than dev-only.
In
`@packages/stream_video_push_notification/example/android/app/build.gradle.kts`:
- Around line 1-5: The plugins block currently uses the shorthand plugin
id("kotlin-android"); update it to the fully qualified plugin
id("org.jetbrains.kotlin.android") to match the declaration in
settings.gradle.kts and ensure consistent plugin resolution; edit the plugins
block where id("kotlin-android") appears (next to id("com.android.application")
and id("dev.flutter.flutter-gradle-plugin")) and replace that identifier with
id("org.jetbrains.kotlin.android").
In `@packages/stream_video_push_notification/example/pubspec.yaml`:
- Around line 13-18: The pubspec.yaml places runtime packages under
dev_dependencies causing them to be unavailable at runtime; move the two
packages stream_video and stream_video_push_notification from the
dev_dependencies section into the top-level dependencies section of the
example's pubspec.yaml so they are bundled into the built app; update the
dependencies block to include stream_video: ^1.2.2 and
stream_video_push_notification: ^1.2.2 and remove them from dev_dependencies
(verify flutter_lints and flutter_test remain under dev_dependencies).
🧹 Nitpick comments (5)
packages/stream_video_noise_cancellation/example/android/app/src/main/res/drawable/launch_background.xml (1)
4-11: Consider theme-aware background to avoid white flash in dark mode.
If you want the splash to respect dark theme, use the system background color (or add a night resource).♻️ Suggested tweak
- <item android:drawable="@android:color/white" /> + <item android:drawable="?android:colorBackground" />packages/stream_video_push_notification/example/android/gradle.properties (1)
1-3: Aggressive JVM memory settings for an example project.The 8G heap and 4G metaspace allocations are quite high for an example project and may cause build failures on developer machines with limited RAM. Consider using more conservative values (e.g.,
-Xmx4G -XX:MaxMetaspaceSize=1G) that work on a wider range of machines.Additionally,
android.enableJetifieris being phased out as most libraries are now AndroidX-native. Verify if it's still needed for your dependencies; if not, consider removing it to speed up builds.packages/stream_video_push_notification/example/android/build.gradle.kts (1)
14-20: Consider merging duplicatesubprojectsblocks.The two
subprojectsblocks can be consolidated into one for better readability.♻️ Suggested consolidation
subprojects { val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) project.layout.buildDirectory.value(newSubprojectBuildDir) -} -subprojects { project.evaluationDependsOn(":app") }packages/stream_video_noise_cancellation/example/android/build.gradle.kts (1)
14-20: Consider merging duplicatesubprojectsblocks.Same as the push_notification example - the two
subprojectsblocks can be consolidated into one for better readability.♻️ Suggested consolidation
subprojects { val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) project.layout.buildDirectory.value(newSubprojectBuildDir) -} -subprojects { project.evaluationDependsOn(":app") }packages/stream_video_push_notification/example/android/settings.gradle.kts (1)
2-8: Add a clearer error when local.properties is missing.
If the file doesn’t exist, the current code throws a FileNotFoundException before therequiremessage. A small guard improves diagnosability.♻️ Proposed tweak
pluginManagement { val flutterSdkPath = run { val properties = java.util.Properties() - file("local.properties").inputStream().use { properties.load(it) } + val localProps = file("local.properties") + require(localProps.exists()) { "local.properties not found; set flutter.sdk in local.properties" } + localProps.inputStream().use { properties.load(it) } val flutterSdkPath = properties.getProperty("flutter.sdk") require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } flutterSdkPath }
📜 Review details
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Disabled knowledge base sources:
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
⛔ Files ignored due to path filters (46)
packages/stream_video_noise_cancellation/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.pngis excluded by!**/*.pngpackages/stream_video_noise_cancellation/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.pngis excluded by!**/*.pngpackages/stream_video_noise_cancellation/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.pngis excluded by!**/*.pngpackages/stream_video_noise_cancellation/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.pngis excluded by!**/*.pngpackages/stream_video_noise_cancellation/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.pngis excluded by!**/*.pngpackages/stream_video_noise_cancellation/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.pngis excluded by!**/*.pngpackages/stream_video_noise_cancellation/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.pngis excluded by!**/*.pngpackages/stream_video_noise_cancellation/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.pngis excluded by!**/*.pngpackages/stream_video_noise_cancellation/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.pngis excluded by!**/*.pngpackages/stream_video_noise_cancellation/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.pngis excluded by!**/*.pngpackages/stream_video_noise_cancellation/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.pngis excluded by!**/*.pngpackages/stream_video_noise_cancellation/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.pngis excluded by!**/*.pngpackages/stream_video_noise_cancellation/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.pngis excluded by!**/*.pngpackages/stream_video_noise_cancellation/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.pngis excluded by!**/*.pngpackages/stream_video_noise_cancellation/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.pngis excluded by!**/*.pngpackages/stream_video_noise_cancellation/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.pngis excluded by!**/*.pngpackages/stream_video_noise_cancellation/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.pngis excluded by!**/*.pngpackages/stream_video_noise_cancellation/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.pngis excluded by!**/*.pngpackages/stream_video_noise_cancellation/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.pngis excluded by!**/*.pngpackages/stream_video_noise_cancellation/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.pngis excluded by!**/*.pngpackages/stream_video_noise_cancellation/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.pngis excluded by!**/*.pngpackages/stream_video_noise_cancellation/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.pngis excluded by!**/*.pngpackages/stream_video_noise_cancellation/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.pngis excluded by!**/*.pngpackages/stream_video_push_notification/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.pngis excluded by!**/*.pngpackages/stream_video_push_notification/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.pngis excluded by!**/*.pngpackages/stream_video_push_notification/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.pngis excluded by!**/*.pngpackages/stream_video_push_notification/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.pngis excluded by!**/*.pngpackages/stream_video_push_notification/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.pngis excluded by!**/*.pngpackages/stream_video_push_notification/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.pngis excluded by!**/*.pngpackages/stream_video_push_notification/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.pngis excluded by!**/*.pngpackages/stream_video_push_notification/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.pngis excluded by!**/*.pngpackages/stream_video_push_notification/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.pngis excluded by!**/*.pngpackages/stream_video_push_notification/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.pngis excluded by!**/*.pngpackages/stream_video_push_notification/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.pngis excluded by!**/*.pngpackages/stream_video_push_notification/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.pngis excluded by!**/*.pngpackages/stream_video_push_notification/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.pngis excluded by!**/*.pngpackages/stream_video_push_notification/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.pngis excluded by!**/*.pngpackages/stream_video_push_notification/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.pngis excluded by!**/*.pngpackages/stream_video_push_notification/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.pngis excluded by!**/*.pngpackages/stream_video_push_notification/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.pngis excluded by!**/*.pngpackages/stream_video_push_notification/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.pngis excluded by!**/*.pngpackages/stream_video_push_notification/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.pngis excluded by!**/*.pngpackages/stream_video_push_notification/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.pngis excluded by!**/*.pngpackages/stream_video_push_notification/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.pngis excluded by!**/*.pngpackages/stream_video_push_notification/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.pngis excluded by!**/*.pngpackages/stream_video_push_notification/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.pngis excluded by!**/*.png
📒 Files selected for processing (80)
packages/stream_video_noise_cancellation/example/.gitignorepackages/stream_video_noise_cancellation/example/.metadatapackages/stream_video_noise_cancellation/example/README.mdpackages/stream_video_noise_cancellation/example/analysis_options.yamlpackages/stream_video_noise_cancellation/example/android/.gitignorepackages/stream_video_noise_cancellation/example/android/app/build.gradle.ktspackages/stream_video_noise_cancellation/example/android/app/src/debug/AndroidManifest.xmlpackages/stream_video_noise_cancellation/example/android/app/src/main/AndroidManifest.xmlpackages/stream_video_noise_cancellation/example/android/app/src/main/kotlin/com/example/example/MainActivity.ktpackages/stream_video_noise_cancellation/example/android/app/src/main/res/drawable-v21/launch_background.xmlpackages/stream_video_noise_cancellation/example/android/app/src/main/res/drawable/launch_background.xmlpackages/stream_video_noise_cancellation/example/android/app/src/main/res/values-night/styles.xmlpackages/stream_video_noise_cancellation/example/android/app/src/main/res/values/styles.xmlpackages/stream_video_noise_cancellation/example/android/app/src/profile/AndroidManifest.xmlpackages/stream_video_noise_cancellation/example/android/build.gradle.ktspackages/stream_video_noise_cancellation/example/android/gradle.propertiespackages/stream_video_noise_cancellation/example/android/gradle/wrapper/gradle-wrapper.propertiespackages/stream_video_noise_cancellation/example/android/settings.gradle.ktspackages/stream_video_noise_cancellation/example/ios/.gitignorepackages/stream_video_noise_cancellation/example/ios/Flutter/AppFrameworkInfo.plistpackages/stream_video_noise_cancellation/example/ios/Flutter/Debug.xcconfigpackages/stream_video_noise_cancellation/example/ios/Flutter/Release.xcconfigpackages/stream_video_noise_cancellation/example/ios/Runner.xcodeproj/project.pbxprojpackages/stream_video_noise_cancellation/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedatapackages/stream_video_noise_cancellation/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plistpackages/stream_video_noise_cancellation/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettingspackages/stream_video_noise_cancellation/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcschemepackages/stream_video_noise_cancellation/example/ios/Runner.xcworkspace/contents.xcworkspacedatapackages/stream_video_noise_cancellation/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plistpackages/stream_video_noise_cancellation/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettingspackages/stream_video_noise_cancellation/example/ios/Runner/AppDelegate.swiftpackages/stream_video_noise_cancellation/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.jsonpackages/stream_video_noise_cancellation/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.jsonpackages/stream_video_noise_cancellation/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.mdpackages/stream_video_noise_cancellation/example/ios/Runner/Base.lproj/LaunchScreen.storyboardpackages/stream_video_noise_cancellation/example/ios/Runner/Base.lproj/Main.storyboardpackages/stream_video_noise_cancellation/example/ios/Runner/Info.plistpackages/stream_video_noise_cancellation/example/ios/Runner/Runner-Bridging-Header.hpackages/stream_video_noise_cancellation/example/ios/RunnerTests/RunnerTests.swiftpackages/stream_video_noise_cancellation/example/pubspec.yamlpackages/stream_video_push_notification/example/.gitignorepackages/stream_video_push_notification/example/.metadatapackages/stream_video_push_notification/example/README.mdpackages/stream_video_push_notification/example/analysis_options.yamlpackages/stream_video_push_notification/example/android/.gitignorepackages/stream_video_push_notification/example/android/app/build.gradle.ktspackages/stream_video_push_notification/example/android/app/src/debug/AndroidManifest.xmlpackages/stream_video_push_notification/example/android/app/src/main/AndroidManifest.xmlpackages/stream_video_push_notification/example/android/app/src/main/kotlin/com/example/example/MainActivity.ktpackages/stream_video_push_notification/example/android/app/src/main/res/drawable-v21/launch_background.xmlpackages/stream_video_push_notification/example/android/app/src/main/res/drawable/launch_background.xmlpackages/stream_video_push_notification/example/android/app/src/main/res/values-night/styles.xmlpackages/stream_video_push_notification/example/android/app/src/main/res/values/styles.xmlpackages/stream_video_push_notification/example/android/app/src/profile/AndroidManifest.xmlpackages/stream_video_push_notification/example/android/build.gradle.ktspackages/stream_video_push_notification/example/android/gradle.propertiespackages/stream_video_push_notification/example/android/gradle/wrapper/gradle-wrapper.propertiespackages/stream_video_push_notification/example/android/settings.gradle.ktspackages/stream_video_push_notification/example/ios/.gitignorepackages/stream_video_push_notification/example/ios/Flutter/AppFrameworkInfo.plistpackages/stream_video_push_notification/example/ios/Flutter/Debug.xcconfigpackages/stream_video_push_notification/example/ios/Flutter/Release.xcconfigpackages/stream_video_push_notification/example/ios/Runner.xcodeproj/project.pbxprojpackages/stream_video_push_notification/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedatapackages/stream_video_push_notification/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plistpackages/stream_video_push_notification/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettingspackages/stream_video_push_notification/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcschemepackages/stream_video_push_notification/example/ios/Runner.xcworkspace/contents.xcworkspacedatapackages/stream_video_push_notification/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plistpackages/stream_video_push_notification/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettingspackages/stream_video_push_notification/example/ios/Runner/AppDelegate.swiftpackages/stream_video_push_notification/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.jsonpackages/stream_video_push_notification/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.jsonpackages/stream_video_push_notification/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.mdpackages/stream_video_push_notification/example/ios/Runner/Base.lproj/LaunchScreen.storyboardpackages/stream_video_push_notification/example/ios/Runner/Base.lproj/Main.storyboardpackages/stream_video_push_notification/example/ios/Runner/Info.plistpackages/stream_video_push_notification/example/ios/Runner/Runner-Bridging-Header.hpackages/stream_video_push_notification/example/ios/RunnerTests/RunnerTests.swiftpackages/stream_video_push_notification/example/pubspec.yaml
✅ Files skipped from review due to trivial changes (33)
- packages/stream_video_push_notification/example/README.md
- packages/stream_video_push_notification/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
- packages/stream_video_noise_cancellation/example/android/gradle.properties
- packages/stream_video_noise_cancellation/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
- packages/stream_video_push_notification/example/.gitignore
- packages/stream_video_push_notification/example/android/app/src/main/res/drawable/launch_background.xml
- packages/stream_video_noise_cancellation/example/android/app/src/main/res/drawable-v21/launch_background.xml
- packages/stream_video_push_notification/example/android/gradle/wrapper/gradle-wrapper.properties
- packages/stream_video_push_notification/example/ios/.gitignore
- packages/stream_video_push_notification/example/ios/Flutter/AppFrameworkInfo.plist
- packages/stream_video_noise_cancellation/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
- packages/stream_video_noise_cancellation/example/ios/Flutter/Release.xcconfig
- packages/stream_video_push_notification/example/analysis_options.yaml
- packages/stream_video_noise_cancellation/example/android/.gitignore
- packages/stream_video_push_notification/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
- packages/stream_video_noise_cancellation/example/README.md
- packages/stream_video_push_notification/example/android/.gitignore
- packages/stream_video_push_notification/example/ios/Flutter/Debug.xcconfig
- packages/stream_video_noise_cancellation/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
- packages/stream_video_push_notification/example/android/app/src/debug/AndroidManifest.xml
- packages/stream_video_push_notification/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json
- packages/stream_video_noise_cancellation/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
- packages/stream_video_noise_cancellation/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
- packages/stream_video_noise_cancellation/example/ios/Flutter/AppFrameworkInfo.plist
- packages/stream_video_push_notification/example/ios/Runner.xcworkspace/contents.xcworkspacedata
- packages/stream_video_noise_cancellation/example/ios/Runner/Base.lproj/LaunchScreen.storyboard
- packages/stream_video_noise_cancellation/example/ios/Flutter/Debug.xcconfig
- packages/stream_video_push_notification/example/ios/RunnerTests/RunnerTests.swift
- packages/stream_video_noise_cancellation/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md
- packages/stream_video_noise_cancellation/example/ios/Runner.xcworkspace/contents.xcworkspacedata
- packages/stream_video_noise_cancellation/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
- packages/stream_video_push_notification/example/ios/Runner/Info.plist
- packages/stream_video_push_notification/example/ios/Runner.xcodeproj/project.pbxproj
🧰 Additional context used
🪛 Clang (14.0.6)
packages/stream_video_push_notification/example/ios/Runner/Runner-Bridging-Header.h
[error] 1-1: 'GeneratedPluginRegistrant.h' file not found
(clang-diagnostic-error)
packages/stream_video_noise_cancellation/example/ios/Runner/Runner-Bridging-Header.h
[error] 1-1: 'GeneratedPluginRegistrant.h' file not found
(clang-diagnostic-error)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
- GitHub Check: stream_video
- GitHub Check: analyze
- GitHub Check: build
- GitHub Check: iOS Build (Dogfooding)
🔇 Additional comments (45)
packages/stream_video_noise_cancellation/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json (1)
1-22: Looks good for Xcode asset catalog format.packages/stream_video_push_notification/example/ios/Flutter/Release.xcconfig (1)
1-1: LGTM — aligns Release config with generated settings.This mirrors standard Flutter iOS config practice and keeps Release in sync with Debug.
packages/stream_video_push_notification/example/ios/Runner/Base.lproj/LaunchScreen.storyboard (1)
1-36: LGTM — clean, minimal launch screen layout.
Centered image with constraints and a solid background is appropriate for a static Launch Screen.packages/stream_video_push_notification/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme (1)
1-101: LGTM — scheme configuration looks standard and complete.No issues spotted in the Build/Test/Launch/Profile/Analyze/Archive setup.
packages/stream_video_noise_cancellation/example/ios/RunnerTests/RunnerTests.swift (1)
1-12: LGTM for scaffolding test file.Standard XCTest template with a placeholder test; no issues.
packages/stream_video_push_notification/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings (1)
1-8: LGTM!Standard Xcode workspace settings file disabling SwiftUI Previews. This is appropriate for a Flutter iOS project and aligns with the similar project-level settings file added in this PR.
packages/stream_video_push_notification/example/ios/Runner/Base.lproj/Main.storyboard (1)
1-26: LGTM!This is standard Flutter iOS boilerplate for the example project's main storyboard. The
FlutterViewControlleris correctly set as the initial view controller, and the structure follows the expected Flutter iOS template conventions.packages/stream_video_noise_cancellation/example/analysis_options.yaml (1)
1-1: LGTM!Standard Flutter lints configuration for the example project. This aligns with the similar configuration added for other example projects in this PR.
packages/stream_video_push_notification/example/.metadata (1)
1-33: LGTM!This is a standard Flutter-generated metadata file for the push notification example project. The file correctly tracks the Flutter SDK revision, project type, and migration state. The unmanaged files list appropriately excludes
lib/main.dartand the iOS project file from migration tooling.packages/stream_video_noise_cancellation/example/.metadata (1)
1-33: LGTM!This is a standard Flutter-generated metadata file for the noise cancellation example project, consistent with the push notification example's metadata. The file structure and content follow Flutter conventions.
packages/stream_video_push_notification/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md (1)
1-5: LGTM!The documentation is clear, accurate, and provides helpful guidance for customizing launch screen assets in the iOS example project. Both methods (direct file replacement and Xcode drag-and-drop) are valid approaches.
packages/stream_video_noise_cancellation/example/ios/Runner/Runner-Bridging-Header.h (1)
1-1: LGTM - Standard Flutter iOS bridging header.This is the expected boilerplate for Flutter iOS projects. The static analysis error about
GeneratedPluginRegistrant.hnot being found is a false positive—this file is auto-generated by Flutter during the build process (viaflutter buildor when runningpod install).packages/stream_video_push_notification/example/ios/Runner/AppDelegate.swift (1)
1-13: LGTM - Standard Flutter iOS AppDelegate.This is the correct boilerplate for a Flutter iOS app delegate. The implementation properly registers Flutter plugins and delegates to the superclass.
packages/stream_video_noise_cancellation/example/ios/Runner/AppDelegate.swift (1)
1-13: LGTM - Standard Flutter iOS AppDelegate.Identical to the push_notification example's AppDelegate, which is expected for separate example projects. The implementation is correct.
packages/stream_video_noise_cancellation/example/ios/.gitignore (1)
1-34: LGTM! Standard iOS/Flutter .gitignore patterns.The ignore patterns comprehensively cover Xcode artifacts, Flutter build outputs, CocoaPods dependencies, and derived data. The exceptions for default configuration files (lines 31-34) follow iOS best practices.
packages/stream_video_noise_cancellation/example/.gitignore (1)
1-45: LGTM! Standard Flutter .gitignore patterns.The ignore patterns are comprehensive and appropriate for a Flutter example project, covering build artifacts, IDE configurations, dependency caches, and platform-specific files.
packages/stream_video_push_notification/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist (1)
1-8: LGTM!Standard Xcode-generated workspace metadata file. The
IDEDidComputeMac32BitWarningflag is boilerplate that suppresses repeated 32-bit deprecation warnings in the IDE.packages/stream_video_push_notification/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata (1)
1-7: LGTM!Standard Xcode-generated workspace contents file with the typical self-referencing
FileRefstructure.packages/stream_video_push_notification/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist (1)
1-8: LGTM!Standard Xcode-generated workspace metadata, appropriately placed at the
Runner.xcworkspacelevel (complementing the one atproject.xcworkspace).packages/stream_video_push_notification/example/ios/Runner/Runner-Bridging-Header.h (1)
1-1: No issue—this is standard Flutter iOS build pattern.
GeneratedPluginRegistrant.his not part of the repository because it's dynamically generated by the Flutter build system during compilation (viaflutter run,flutter build, orpub get). The bridging header import is correct and necessary. This pattern is consistently used across all iOS example projects in the repo and is part of Flutter's standard plugin registration mechanism.Likely an incorrect or invalid review comment.
packages/stream_video_push_notification/example/android/app/src/main/kotlin/com/example/example/MainActivity.kt (1)
1-5: LGTM!This is standard Flutter Android boilerplate for the example app's entry point.
packages/stream_video_noise_cancellation/example/android/app/src/debug/AndroidManifest.xml (1)
1-7: LGTM!Standard Flutter debug manifest with INTERNET permission for development tooling.
packages/stream_video_push_notification/example/android/app/src/profile/AndroidManifest.xml (1)
1-7: LGTM!Standard Flutter profile manifest with INTERNET permission for development tooling.
packages/stream_video_noise_cancellation/example/android/app/src/main/res/values-night/styles.xml (1)
1-18: LGTM!Standard Flutter night mode theme definitions following Android embedding V2 conventions.
packages/stream_video_noise_cancellation/example/android/app/src/profile/AndroidManifest.xml (1)
1-7: LGTM!Standard Flutter profile manifest with INTERNET permission for development tooling.
packages/stream_video_push_notification/example/android/app/src/main/res/values-night/styles.xml (1)
3-17: Night-mode themes look consistent and correct.
LaunchTheme/NormalTheme are aligned with Flutter V2 embedding expectations.packages/stream_video_push_notification/example/android/app/src/main/res/drawable-v21/launch_background.xml (1)
3-11: Looks good for API 21+ launch background.
Theme-aware base layer is appropriate here.packages/stream_video_push_notification/example/android/app/src/main/res/values/styles.xml (1)
3-17: Day-mode themes look correct.
Matches expected Flutter V2 embedding theme setup.packages/stream_video_noise_cancellation/example/android/app/src/main/kotlin/com/example/example/MainActivity.kt (1)
1-5: Package alignment confirmed. The MainActivity package (com.example.example) matches the namespace and applicationId in build.gradle, and the relative activity reference in AndroidManifest.xml resolves correctly.packages/stream_video_noise_cancellation/example/android/app/src/main/res/values/styles.xml (1)
1-18: Standard Flutter Android styles template.This is boilerplate Flutter Android theme configuration for the example app. The
LaunchThemeandNormalThemedefinitions follow Flutter's standard Android embedding V2 conventions correctly.packages/stream_video_noise_cancellation/example/android/app/src/main/AndroidManifest.xml (1)
1-45: Standard Flutter Android manifest configuration.This is boilerplate Flutter Android manifest for the example app. The activity configuration, theme references, Flutter embedding v2 meta-data, and PROCESS_TEXT query declaration all follow Flutter's standard conventions correctly.
packages/stream_video_push_notification/example/android/app/src/main/AndroidManifest.xml (1)
1-45: Standard Flutter Android manifest configuration.This is boilerplate Flutter Android manifest for the push notification example app. The configuration is correct and follows Flutter conventions.
Note: For a push notification example, you may eventually need to declare permissions like
android.permission.POST_NOTIFICATIONS(required for Android 13+) andandroid.permission.INTERNET. These might be declared in a different location or added by the Flutter plugin automatically, but verify they're included if users encounter notification permission issues.packages/stream_video_noise_cancellation/example/ios/Runner/Base.lproj/Main.storyboard (1)
1-26: LGTM!Standard Flutter iOS storyboard boilerplate. The FlutterViewController configuration and layout setup are correct.
packages/stream_video_noise_cancellation/example/ios/Runner/Info.plist (1)
1-49: LGTM!Standard Flutter iOS Info.plist configuration. Build variables are correctly used for bundle identifiers and versioning.
packages/stream_video_noise_cancellation/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme (1)
1-101: LGTM!Standard Flutter iOS Xcode scheme with appropriate build, test, launch, profile, analyze, and archive configurations. The Flutter LLDB init file references are correct.
packages/stream_video_noise_cancellation/example/ios/Runner.xcodeproj/project.pbxproj (1)
1-619: Overall structure is correct for a Flutter iOS example project.The project file properly configures:
- Build phases with Flutter tooling hooks (
xcode_backend.sh)- Debug/Release/Profile configurations
- RunnerTests target with proper dependency on Runner
- iOS 13.0 deployment target
Apart from the hardcoded
DEVELOPMENT_TEAMnoted above, the configuration follows Flutter iOS project conventions.packages/stream_video_push_notification/example/pubspec.yaml (3)
2-4: LGTM!Standard metadata additions for an example project. Setting
publish_to: "none"correctly prevents accidental publishing.
7-7: LGTM!Dart 3.9 was released and ^3.9.2 is a valid constraint for this example project.
26-27: LGTM!Standard Flutter section enabling Material Design assets.
packages/stream_video_noise_cancellation/example/pubspec.yaml (3)
26-27: LGTM!The
uses-material-design: trueconfiguration is appropriate for enabling Material Design icons and assets in the example app.
16-16:flutter_lintsversion 5.0.0 is valid and published on pub.dev.
2-7: Metadata additions and SDK constraint are appropriate.The
description,publish_to: "none", andversionfields are correctly configured for an example project, and the SDK constraint^3.9.2is valid and aligns with other examples in the repository (such asstream_video_push_notification/example). This constraint allows Dart 3.10.3 (the current stable release) and is appropriately future-compatible.packages/stream_video_noise_cancellation/example/android/app/build.gradle.kts (1)
1-44: LGTM!This is a well-structured Flutter Android app build configuration. The plugin ordering is correct (Flutter plugin after Android/Kotlin), Java 11 compatibility is appropriate, and the TODO comments clearly mark areas requiring customization for production use. Using debug signing for release builds is acceptable for an example project.
packages/stream_video_push_notification/example/android/app/build.gradle.kts (1)
8-44: LGTM for the Android/Flutter configuration block.
Matches the standard Flutter template setup and looks consistent.packages/stream_video_push_notification/example/android/settings.gradle.kts (1)
20-26: LGTM for plugin declarations and :app include.
Looks clean and aligned with standard Gradle settings structure.
✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.
...ges/stream_video_noise_cancellation/example/android/gradle/wrapper/gradle-wrapper.properties
Outdated
Show resolved
Hide resolved
packages/stream_video_noise_cancellation/example/android/settings.gradle.kts
Show resolved
Hide resolved
packages/stream_video_noise_cancellation/example/ios/Runner.xcodeproj/project.pbxproj
Show resolved
Hide resolved
packages/stream_video_push_notification/example/android/app/build.gradle.kts
Show resolved
Hide resolved
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #1154 +/- ##
========================================
+ Coverage 6.28% 6.42% +0.14%
========================================
Files 592 600 +8
Lines 41272 41947 +675
========================================
+ Hits 2592 2697 +105
- Misses 38680 39250 +570 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Fix all issues with AI agents
In `@packages/stream_video_push_notification/example/pubspec.yaml`:
- Around line 12-24: The dependencies in pubspec.yaml are misaligned with the
imports: replace the incorrect dependency symbol stream_video_noise_cancellation
with stream_video_push_notification in the dependencies section so the package
list matches the code imports; update the dependencies entry for
stream_video_noise_cancellation to stream_video_push_notification and keep the
existing version constraint (or adjust as needed) and ensure the
dependency_overrides still point to ../../stream_video_push_notification if
present.
♻️ Duplicate comments (2)
packages/stream_video_push_notification/android/gradle/wrapper/gradle-wrapper.properties (1)
5-5: Same checksum verification applies here.
EnsuredistributionSha256Summatches the official Gradle 8.13 distribution checksum and remains aligned withdistributionUrl.packages/stream_video_push_notification/example/android/gradle/wrapper/gradle-wrapper.properties (1)
1-6: Same checksum verification applies here.
Please confirm the checksum matches the official Gradle 8.13 distribution to avoid wrapper download failures.
This reverts commit 2066494.
Fixed the silencing of CallKit events used to prevent event looping and silent CallKit call ending.
Summary by CodeRabbit
Bug Fixes
Tests
Chores
✏️ Tip: You can customize this high-level summary in your review settings.