Skip to content

[camera_android_camerax] Swap out BroadcastReceiver for OrientationEventListener #9261

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 8 commits into from
May 19, 2025

Conversation

camsim99
Copy link
Contributor

@camsim99 camsim99 commented May 16, 2025

Replaces usage of BroadcastReceiver (that is registered with the ACTION_CONFIGURATION_CHANGED intent) with an OrientationEventListener to notify the plugin of changes in device orientation.

Using an OrientationEventListener allows the plugin to more regularly to orientation updates, whereas listening to the ACTION_CONFIGURATION_CHANGED only reports changes in device configuration. This is an issue because sometimes, a device changing from a landscape orientation to another landscape orientation is not considered a change in configuration.

Fixes flutter/flutter#168565.
Inherently fixes flutter/flutter#163818 (no more BroadcastReceiver).
Should also inherently fix flutter/flutter#162854 (no more BroadcastReceiver, but don't worry--we already stop listening to changes in device orientation when the plugin is disposed).

Pre-Review Checklist

If you need help, consider asking for advice on the #hackers-new channel on Discord.

Footnotes

  1. Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling. 2 3

@camsim99 camsim99 marked this pull request as ready for review May 16, 2025 14:57
@camsim99 camsim99 requested a review from a team May 16, 2025 14:57
@jesswrd jesswrd self-requested a review May 19, 2025 10:27
…o/flutter/plugins/camerax/DeviceOrientationManager.java

Co-authored-by: jesswrd <jessiewong401@gmail.com>
@camsim99 camsim99 added the autosubmit Merge PR when tree becomes green via auto submit App label May 19, 2025
@auto-submit auto-submit bot merged commit c2f8201 into flutter:main May 19, 2025
82 checks passed
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request May 20, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request May 27, 2025
github-merge-queue bot pushed a commit to flutter/flutter that referenced this pull request May 27, 2025
flutter/packages@af0b9a9...6eebe72

2025-05-27 github@benprice.ca [flutter_lints] Bump lints dependency to
6.0.0 and bump package to 6.0.0 (flutter/packages#9108)
2025-05-26 engine-flutter-autoroll@skia.org Roll Flutter from
60050a0 to 4372bfb (6 revisions) (flutter/packages#9322)
2025-05-26 robert.odrowaz@leancode.pl [video_player_android] Add note
about Android platform views known issue (flutter/packages#9312)
2025-05-24 engine-flutter-autoroll@skia.org Roll Flutter from
85564cb to 60050a0 (17 revisions) (flutter/packages#9318)
2025-05-23 43054281+camsim99@users.noreply.github.com
[camera_android_camerax] Implement `enableAudio` for video recording
(flutter/packages#9264)
2025-05-23 65381000+raju-muliyashiya@users.noreply.github.com
[video_player_android] isBuffering flag always return true after calling
seekTo method - fixed (flutter/packages#9198)
2025-05-23 stuartmorgan@google.com [camera,video_player] replace
onSurfaceDestroyed with onSurfaceCleanup (flutter/packages#9316)
2025-05-23 stuartmorgan@google.com [camera,video_player] Update Android
to 3.29 minimum (flutter/packages#9317)
2025-05-23 engine-flutter-autoroll@skia.org Roll Flutter from
33cdd8e to 85564cb (39 revisions) (flutter/packages#9315)
2025-05-23 stuartmorgan@google.com Update repo for 3.32 stable
(flutter/packages#9311)
2025-05-23 robert.odrowaz@leancode.pl [camera_avfoundation] Correct
pigeon configuration output paths (flutter/packages#9313)
2025-05-23 stuartmorgan@google.com [process] Remove from the repository
(flutter/packages#9310)
2025-05-22 jessiewong401@gmail.com Ensure Example Packages Work on
Android API 36 (flutter/packages#9241)
2025-05-22 engine-flutter-autoroll@skia.org Roll Flutter (stable) from
c236373 to be698c4 (1274 revisions) (flutter/packages#9300)
2025-05-22 magder@google.com Remove CODEOWNER for generated iOS files
(flutter/packages#9272)
2025-05-22 52160996+FMorschel@users.noreply.github.com
[google_maps_flutter] Removes unnecessary parentheses
(flutter/packages#9273)
2025-05-21 magder@google.com Rebalance Android plugin CODEOWNERS
(flutter/packages#9298)
2025-05-21 engine-flutter-autoroll@skia.org Roll Flutter from
9a78af5 to 33cdd8e (60 revisions) (flutter/packages#9305)
2025-05-21 stuartmorgan@google.com [ci] Update repository for 3.29
release (flutter/packages#9270)
2025-05-21 stuartmorgan@google.com Ignore .cxx/ directories
(flutter/packages#9268)
2025-05-21 stuartmorgan@google.com [video_player] Skip some integration
tests on web (flutter/packages#9302)
2025-05-21 10687576+bparrishMines@users.noreply.github.com
[webview_flutter] Adds support to respond to recoverable SSL certificate
errors (flutter/packages#9150)
2025-05-19 43054281+camsim99@users.noreply.github.com
[camera_android_camerax] Swap out `BroadcastReceiver` for
`OrientationEventListener` (flutter/packages#9261)
2025-05-19 54174311+marvin-kolja@users.noreply.github.com
[video_player_android] Fix incorrect dimensions swap
(flutter/packages#9199)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages-flutter-autoroll
Please CC flutter-ecosystem@google.com on the revert to ensure that a
human
is aware of the problem.

To file a bug in Flutter:
https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
FMorschel pushed a commit to FMorschel/packages that referenced this pull request Jun 9, 2025
…nEventListener` (flutter#9261)

Replaces usage of [`BroadcastReceiver`](https://developer.android.com/reference/android/content/BroadcastReceiver) (that is registered with the [`ACTION_CONFIGURATION_CHANGED`](https://developer.android.com/reference/android/content/Intent#ACTION_CONFIGURATION_CHANGED) intent) with an [`OrientationEventListener`](https://developer.android.com/reference/android/view/OrientationEventListener) to notify the plugin of changes in device orientation.

Using an `OrientationEventListener` allows the plugin to more regularly to orientation updates, whereas listening to the  `ACTION_CONFIGURATION_CHANGED` only reports changes in device configuration. This is an issue because sometimes, a device changing from a landscape orientation to another landscape orientation is not considered a change in configuration.

Fixes flutter/flutter#168565.
Inherently fixes flutter/flutter#163818 (no more `BroadcastReceiver`).
Should also inherently fix flutter/flutter#162854 (no more `BroadcastReceiver`, but don't worry--we already stop listening to changes in device orientation when the plugin is disposed).

## Pre-Review Checklist

[^1]: Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling.
Ortes pushed a commit to Ortes/packages that referenced this pull request Jun 25, 2025
…nEventListener` (flutter#9261)

Replaces usage of [`BroadcastReceiver`](https://developer.android.com/reference/android/content/BroadcastReceiver) (that is registered with the [`ACTION_CONFIGURATION_CHANGED`](https://developer.android.com/reference/android/content/Intent#ACTION_CONFIGURATION_CHANGED) intent) with an [`OrientationEventListener`](https://developer.android.com/reference/android/view/OrientationEventListener) to notify the plugin of changes in device orientation.

Using an `OrientationEventListener` allows the plugin to more regularly to orientation updates, whereas listening to the  `ACTION_CONFIGURATION_CHANGED` only reports changes in device configuration. This is an issue because sometimes, a device changing from a landscape orientation to another landscape orientation is not considered a change in configuration.

Fixes flutter/flutter#168565.
Inherently fixes flutter/flutter#163818 (no more `BroadcastReceiver`).
Should also inherently fix flutter/flutter#162854 (no more `BroadcastReceiver`, but don't worry--we already stop listening to changes in device orientation when the plugin is disposed).

## Pre-Review Checklist

[^1]: Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
autosubmit Merge PR when tree becomes green via auto submit App p: camera platform-android
Projects
None yet
2 participants