Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
a2d6d61
Roll Flutter from bf18e3958a05 to 2fa45e01aa5c (19 revisions) (#11497)
engine-flutter-autoroll Apr 13, 2026
ca2647a
[mustache_template] Fix auto-generated specification tests, run with …
jslater89 Apr 13, 2026
06fee7a
Sync release-go_router to main (#11499)
fluttergithubbot Apr 13, 2026
41628b5
[local_auth] Switch to Kotlin Pigeon (#11482)
stuartmorgan-g Apr 14, 2026
3d6b4eb
Roll Flutter from 2fa45e01aa5c to c1b14e92dcfb (19 revisions) (#11506)
engine-flutter-autoroll Apr 14, 2026
749abe9
[camera_platform_interface] Add setJpegImageQuality method (#11454)
Bolling88 Apr 14, 2026
0c3e551
[pr-fix] Run all flutter/packages macOS tests using Xcode 26 and iOS …
okorohelijah Apr 14, 2026
ce82c02
[url_launcher] Switch to Kotlin Pigeon (#11473)
stuartmorgan-g Apr 14, 2026
e8184df
[go_router] Fix pop() restoring stale configuration when route has on…
dkajiwara Apr 14, 2026
3b783d1
Skip dependabot updates for minor versions of gradle and kotlin (#11509)
jmagman Apr 14, 2026
d7a935c
Bump lewagon/wait-on-check-action from 1.6.0 to 1.7.0 in the all-gith…
dependabot[bot] Apr 15, 2026
3d1d1f2
[quick_actions] Remove manual thread hop in Android response (#11445)
stuartmorgan-g Apr 15, 2026
a9d6c1c
[tool] Update java formatter (#11508)
stuartmorgan-g Apr 15, 2026
25774d6
Roll Flutter from c1b14e92dcfb to 31f1802cb859 (46 revisions) (#11518)
engine-flutter-autoroll Apr 16, 2026
80cac95
[google_maps_flutter] Use super parameters in more places in examples…
srawlins Apr 16, 2026
934ba21
[google_maps_flutter] Fix various Java warnings (#11516)
stuartmorgan-g Apr 17, 2026
2060cd3
Roll Flutter from 31f1802cb859 to 8e8a194923dc (22 revisions) (#11523)
engine-flutter-autoroll Apr 17, 2026
e0f15e0
Roll Flutter (stable) from db50e20168db to cc0734ac716f (8 revisions)…
engine-flutter-autoroll Apr 17, 2026
ac617c1
[google_maps_fluter] Switch to Kotlin Pigeon (#11522)
stuartmorgan-g Apr 17, 2026
01c505f
Roll Flutter from 8e8a194923dc to 2844af6a7134 (13 revisions) (#11531)
engine-flutter-autoroll Apr 20, 2026
f465c3c
[packages/packages/go_router] Prepare for batch release
fluttergithubbot Apr 20, 2026
234501b
Merge branch 'release-go_router' into go_router-24678095354-1
chunhtai Apr 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -95,25 +95,25 @@ platform_properties:
[
{"dependency": "ruby", "version": "ruby_3.1-pod_1.13"}
]
os: Mac-15.5|Mac-15.7
os: Mac-15.7
device_type: none
cpu: arm64
$flutter/osx_sdk : >-
{
"sdk_version": "16c5032a"
"sdk_version": "17c52"
}
mac_x64:
properties:
dependencies: >-
[
{"dependency": "ruby", "version": "ruby_3.1-pod_1.13"}
]
os: Mac-15.5|Mac-15.7
os: Mac-15.7
device_type: none
cpu: x86
$flutter/osx_sdk : >-
{
"sdk_version": "16c5032a"
"sdk_version": "17c52"
}

targets:
Expand Down
2 changes: 1 addition & 1 deletion .ci/flutter_master.version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
bf18e3958a05cd8cc098d4bfcbe9163d596cf3af
2844af6a713467da39a34658fb889a61a953cb67
2 changes: 1 addition & 1 deletion .ci/flutter_stable.version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
db50e20168db8fee486b9abf32fc912de3bc5b6a
cc0734ac716fbb8b90f3f9db8020958b1553afa7
2 changes: 1 addition & 1 deletion .ci/legacy_project/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ and then deleting everything but `android/` from it:
imperative apply (this includes moving where the Android Gradle
Plugin (AGP) version is set from `build.gradle` to `settings.gradle`).
- Modifies `settings.gradle` to upgrade the Kotlin Gradle Plugin (KGP)
from version 1.9.0 to 2.1.0. If a user runs into an error with the AGP version,
from version 1.9.0 to 2.2.20. If a user runs into an error with the AGP version,
the warning is clear on how to upgrade the version to one that we support.
- Modifies `gradle.properties` to not set android.enableJetifier=true.
- Update `app/build.gradle` to enable library desugaring to support
Expand Down
2 changes: 1 addition & 1 deletion .ci/legacy_project/all_packages/android/settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ pluginManagement {
plugins {
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
id "com.android.application" version "8.9.1" apply false
id "org.jetbrains.kotlin.android" version "2.1.0" apply false
id "org.jetbrains.kotlin.android" version "2.2.20" apply false
}

include ":app"
2 changes: 1 addition & 1 deletion .ci/scripts/create_simulator.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ set -o pipefail
# The name here must match remove_simulator.sh
readonly DEVICE_NAME=Flutter-iPhone
readonly DEVICE=com.apple.CoreSimulator.SimDeviceType.iPhone-14
readonly OS=com.apple.CoreSimulator.SimRuntime.iOS-18-2
readonly OS=com.apple.CoreSimulator.SimRuntime.iOS-26-2

# Delete any existing devices named Flutter-iPhone. Having more than one may
# cause issues when builds target the device.
Expand Down
2 changes: 1 addition & 1 deletion .ci/targets/ios_platform_tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ tasks:
- name: native test
script: .ci/scripts/tool_runner.sh
# Simulator name and version must match name and version in create_simulator.sh
args: ["native-test", "--ios", "--ios-destination", "platform=iOS Simulator,name=Flutter-iPhone,OS=18.2", "--xcode-warnings-exceptions=script/configs/xcode_warnings_exceptions.yaml"]
args: ["native-test", "--ios", "--ios-destination", "platform=iOS Simulator,name=Flutter-iPhone,OS=26.2", "--xcode-warnings-exceptions=script/configs/xcode_warnings_exceptions.yaml"]
- name: boot simulator
# Ensure simulator is still booted
script: .ci/scripts/boot_simulator.sh
Expand Down
10 changes: 6 additions & 4 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -125,15 +125,17 @@ updates:
patterns:
- "androidx.annotation:annotation"
ignore:
- dependency-name: "androidx.test:*"
update-types: ["version-update:semver-patch"]
- dependency-name: "com.android.tools.build:gradle"
update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- dependency-name: "io.mockk:mockk:*"
update-types: ["version-update:semver-patch"]
- dependency-name: "junit:junit"
update-types: ["version-update:semver-patch"]
- dependency-name: "org.jetbrains.kotlin:*"
update-types: ["version-update:semver-minor", "version-update:semver-patch"]
- dependency-name: "org.mockito:*"
update-types: ["version-update:semver-patch"]
- dependency-name: "androidx.test:*"
update-types: ["version-update:semver-patch"]
- dependency-name: "org.robolectric:*"
update-types: ["version-update:semver-patch"]
- dependency-name: "io.mockk:mockk:*"
update-types: ["version-update:semver-patch"]
4 changes: 2 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ jobs:
# because there doesn't appear to be anything to wait for. To avoid that,
# explicitly wait for one LUCI test by name first.
- name: Wait for test check-in
uses: lewagon/wait-on-check-action@a08fbe2b86f9336198f33be6ad9c16b96f92799c
uses: lewagon/wait-on-check-action@9312864dfbc9fd208e9c0417843430751c042800
with:
ref: ${{ github.sha }}
check-name: 'Linux ci_yaml packages roller'
Expand All @@ -52,7 +52,7 @@ jobs:

# This workflow should be the last to run. So wait for all the other tests to succeed.
- name: Wait on all tests
uses: lewagon/wait-on-check-action@a08fbe2b86f9336198f33be6ad9c16b96f92799c
uses: lewagon/wait-on-check-action@9312864dfbc9fd208e9c0417843430751c042800
with:
ref: ${{ github.sha }}
running-workflow-name: 'release'
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/reusable_release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ jobs:
# explicitly wait for one LUCI test by name first.
- name: Wait for test check-in
if: inputs.branch-name == 'main'
uses: lewagon/wait-on-check-action@a08fbe2b86f9336198f33be6ad9c16b96f92799c
uses: lewagon/wait-on-check-action@9312864dfbc9fd208e9c0417843430751c042800
with:
ref: ${{ github.sha }}
check-name: 'Linux ci_yaml packages roller'
Expand All @@ -56,7 +56,7 @@ jobs:
# This workflow should be the last to run. So wait for all the other tests to succeed.
- name: Wait on all tests
if: inputs.branch-name == 'main'
uses: lewagon/wait-on-check-action@a08fbe2b86f9336198f33be6ad9c16b96f92799c
uses: lewagon/wait-on-check-action@9312864dfbc9fd208e9c0417843430751c042800
with:
ref: ${{ github.sha }}
running-workflow-name: 'release'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -107,8 +107,10 @@ class Camera
private CameraProperties cameraProperties;
private final CameraFeatureFactory cameraFeatureFactory;
private final Activity activity;

/** A {@link CameraCaptureSession.CaptureCallback} that handles events related to JPEG capture. */
private final CameraCaptureCallback cameraCaptureCallback;

/** A {@link Handler} for running tasks in the background. */
Handler backgroundHandler;

Expand All @@ -119,19 +121,23 @@ class Camera
CameraCaptureSession captureSession;
@VisibleForTesting ImageReader pictureImageReader;
ImageStreamReader imageStreamReader;

/** {@link CaptureRequest.Builder} for the camera preview */
CaptureRequest.Builder previewRequestBuilder;

@VisibleForTesting MediaRecorder mediaRecorder;

/** True when recording video. */
boolean recordingVideo;

/** True when the preview is paused. */
@VisibleForTesting boolean pausedPreview;

private File captureFile;

/** Holds the current capture timeouts */
private CaptureTimeoutsWrapper captureTimeouts;

/** Holds the last known capture properties */
private CameraCaptureProperties captureProps;

Expand Down Expand Up @@ -271,8 +277,9 @@ private void prepareMediaRecorder(String outputFilePath) throws IOException {

MediaRecorderBuilder mediaRecorderBuilder;

// TODO(camsim99): Revert changes that allow legacy code to be used when recordingProfile is null
// once this has largely been fixed on the Android side. https://github.com/flutter/flutter/issues/119668
// TODO(camsim99): Revert changes that allow legacy code to be used when recordingProfile
// is null once this has largely been fixed on the Android side.
// https://github.com/flutter/flutter/issues/119668
if (SdkCapabilityChecker.supportsEncoderProfiles() && getRecordingProfile() != null) {
mediaRecorderBuilder =
new MediaRecorderBuilder(
Expand Down Expand Up @@ -1157,7 +1164,8 @@ public void resumePreview() {

public void startPreview(@Nullable Runnable onSuccessCallback)
throws CameraAccessException, InterruptedException {
// If recording is already in progress, the camera is being flipped, so send it through the VideoRenderer to keep the correct orientation.
// If recording is already in progress, the camera is being flipped, so send it through the
// VideoRenderer to keep the correct orientation.
if (recordingVideo) {
startPreviewWithVideoRendererStream(onSuccessCallback);
} else {
Expand Down Expand Up @@ -1379,7 +1387,8 @@ public void setDescriptionWhileRecording(CameraProperties properties) {
"setDescriptionWhileRecordingFailed", "Device was not recording", null);
}

// See VideoRenderer.java; support for this EGL extension is required to switch camera while recording.
// See VideoRenderer.java; support for this EGL extension is required to switch camera while
// recording.
if (!SdkCapabilityChecker.supportsEglRecordableAndroid()) {
throw new Messages.FlutterError(
"setDescriptionWhileRecordingFailed",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,8 +89,9 @@ private Long instantiateCamera(String cameraName, Messages.PlatformMediaSettings
@SuppressWarnings("ConstantConditions")
private <T> void handleException(Exception exception, Messages.Result<T> result) {
// The code below exactly preserves the format of the native exceptions generated by pre-Pigeon
// code. Since `camera` currently leaks the raw platform exceptions to clients, there may be client
// code that relies on specific string values here, so these should not be changed. See
// code. Since `camera` currently leaks the raw platform exceptions to clients, there may
// be client code that relies on specific string values here, so these should not be changed.
// See
// https://github.com/flutter/flutter/blob/master/docs/ecosystem/contributing/README.md#platform-exception-handling
// for longer-term solutions to this.
if (exception instanceof CameraAccessException) {
Expand All @@ -102,8 +103,9 @@ private <T> void handleException(Exception exception, Messages.Result<T> result)

private void handleException(Exception exception, Messages.VoidResult result) {
// The code below exactly preserves the format of the native exceptions generated by pre-Pigeon
// code. Since `camera` currently leaks the raw platform exceptions to clients, there may be client
// code that relies on specific string values here, so these should not be changed. See
// code. Since `camera` currently leaks the raw platform exceptions to clients, there may
// be client code that relies on specific string values here, so these should not be changed.
// See
// https://github.com/flutter/flutter/blob/master/docs/ecosystem/contributing/README.md#platform-exception-handling
// for longer-term solutions to this.
if (exception instanceof CameraAccessException) {
Expand Down
Loading