From 12f90b352ed359060aae1b21cc4aaed5ccd7b865 Mon Sep 17 00:00:00 2001 From: jesswrd Date: Wed, 8 Oct 2025 10:11:12 -0700 Subject: [PATCH 1/5] packages ci updated to test against jdk 21 --- .ci.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.ci.yaml b/.ci.yaml index f3d00869e1b..fc062d644ee 100644 --- a/.ci.yaml +++ b/.ci.yaml @@ -29,7 +29,7 @@ platform_properties: dependencies: >- [ {"dependency": "android_sdk", "version": "version:36v3"}, - {"dependency": "open_jdk", "version": "version:17"}, + {"dependency": "open_jdk", "version": "version:21"}, {"dependency": "curl", "version": "version:7.64.0"}, {"dependency": "avd_cipd_version", "version": "build_id:8719362231152674241"} ] @@ -127,7 +127,7 @@ targets: dependencies: >- [ {"dependency": "clang", "version": "git_revision:5d5aba78dbbee75508f01bcaa69aedb2ab79065a"}, - {"dependency": "open_jdk", "version": "version:17"} + {"dependency": "open_jdk", "version": "version:21"} ] env_variables: >- { From 7c9f7e40e3f1d7fd0b2901ad05029d4aa71a48d3 Mon Sep 17 00:00:00 2001 From: jesswrd Date: Wed, 8 Oct 2025 15:24:00 -0700 Subject: [PATCH 2/5] ensure we are not calling overrideable methods from the constructor --- .../plugins/camera/features/resolution/ResolutionFeature.java | 2 +- .../features/sensororientation/SensorOrientationFeature.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/camera/camera_android/android/src/main/java/io/flutter/plugins/camera/features/resolution/ResolutionFeature.java b/packages/camera/camera_android/android/src/main/java/io/flutter/plugins/camera/features/resolution/ResolutionFeature.java index def498b9666..9cc243fa150 100644 --- a/packages/camera/camera_android/android/src/main/java/io/flutter/plugins/camera/features/resolution/ResolutionFeature.java +++ b/packages/camera/camera_android/android/src/main/java/io/flutter/plugins/camera/features/resolution/ResolutionFeature.java @@ -112,7 +112,7 @@ public void setValue(@NonNull ResolutionPreset value) { } @Override - public boolean checkIsSupported() { + public final boolean checkIsSupported() { return cameraId >= 0; } diff --git a/packages/camera/camera_android/android/src/main/java/io/flutter/plugins/camera/features/sensororientation/SensorOrientationFeature.java b/packages/camera/camera_android/android/src/main/java/io/flutter/plugins/camera/features/sensororientation/SensorOrientationFeature.java index 67b61cfab19..27707f927f7 100644 --- a/packages/camera/camera_android/android/src/main/java/io/flutter/plugins/camera/features/sensororientation/SensorOrientationFeature.java +++ b/packages/camera/camera_android/android/src/main/java/io/flutter/plugins/camera/features/sensororientation/SensorOrientationFeature.java @@ -58,7 +58,7 @@ public Integer getValue() { } @Override - public void setValue(@NonNull Integer value) { + public final void setValue(@NonNull Integer value) { this.currentSetting = value; } From 75a93bbe57285d6038643cade2a509de4b350f69 Mon Sep 17 00:00:00 2001 From: jesswrd Date: Thu, 16 Oct 2025 13:54:05 -0700 Subject: [PATCH 3/5] updated mockito plugin --- .../google_sign_in/google_sign_in_android/android/build.gradle | 2 +- packages/local_auth/local_auth_android/android/build.gradle | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/google_sign_in/google_sign_in_android/android/build.gradle b/packages/google_sign_in/google_sign_in_android/android/build.gradle index 2b29433ce5d..bb96e13ccd3 100644 --- a/packages/google_sign_in/google_sign_in_android/android/build.gradle +++ b/packages/google_sign_in/google_sign_in_android/android/build.gradle @@ -73,5 +73,5 @@ dependencies { implementation("com.google.android.libraries.identity.googleid:googleid:1.1.1") implementation("com.google.android.gms:play-services-auth:21.4.0") testImplementation("junit:junit:4.13.2") - testImplementation("org.mockito:mockito-inline:5.2.0") + testImplementation("org.mockito:mockito-core:5.17.0") } diff --git a/packages/local_auth/local_auth_android/android/build.gradle b/packages/local_auth/local_auth_android/android/build.gradle index 637744fc53e..d186322f2dd 100644 --- a/packages/local_auth/local_auth_android/android/build.gradle +++ b/packages/local_auth/local_auth_android/android/build.gradle @@ -60,7 +60,7 @@ dependencies { api("androidx.biometric:biometric:1.1.0") api("androidx.fragment:fragment:1.8.9") testImplementation("junit:junit:4.13.2") - testImplementation("org.mockito:mockito-inline:5.2.0") + testImplementation("org.mockito:mockito-core:5.17.0") testImplementation("org.robolectric:robolectric:4.15.1") androidTestImplementation("androidx.test:runner:1.7.0") androidTestImplementation("androidx.test:rules:1.7.0") From 715c989fe21abd7ad888ae45aa7a6ef44519d0f1 Mon Sep 17 00:00:00 2001 From: jesswrd Date: Wed, 29 Oct 2025 12:49:11 -0700 Subject: [PATCH 4/5] fixed mockito tests failing from using old mockito vers --- .../camera/camera_android/android/build.gradle | 2 +- .../flutter/plugins/camera/ImageSaverTests.java | 16 ++-------------- 2 files changed, 3 insertions(+), 15 deletions(-) diff --git a/packages/camera/camera_android/android/build.gradle b/packages/camera/camera_android/android/build.gradle index 3f521d2c800..b1562abd58c 100644 --- a/packages/camera/camera_android/android/build.gradle +++ b/packages/camera/camera_android/android/build.gradle @@ -68,7 +68,7 @@ buildFeatures { dependencies { implementation("androidx.annotation:annotation:1.9.1") testImplementation("junit:junit:4.13.2") - testImplementation("org.mockito:mockito-inline:5.2.0") + testImplementation("org.mockito:mockito-core:5.17.0") testImplementation("androidx.test:core:1.7.0") testImplementation("org.robolectric:robolectric:4.15.1") } diff --git a/packages/camera/camera_android/android/src/test/java/io/flutter/plugins/camera/ImageSaverTests.java b/packages/camera/camera_android/android/src/test/java/io/flutter/plugins/camera/ImageSaverTests.java index 6393d8c8b98..698da3abd2b 100644 --- a/packages/camera/camera_android/android/src/test/java/io/flutter/plugins/camera/ImageSaverTests.java +++ b/packages/camera/camera_android/android/src/test/java/io/flutter/plugins/camera/ImageSaverTests.java @@ -42,20 +42,8 @@ public void setup() { mockFile = mock(File.class); when(mockFile.getAbsolutePath()).thenReturn("absolute/path"); mockPlane = mock(Image.Plane.class); - mockBuffer = mock(ByteBuffer.class); - when(mockBuffer.remaining()).thenReturn(3); - when(mockBuffer.get(any())) - .thenAnswer( - new Answer() { - @Override - public Object answer(InvocationOnMock invocation) throws Throwable { - byte[] bytes = invocation.getArgument(0); - bytes[0] = 0x42; - bytes[1] = 0x00; - bytes[2] = 0x13; - return mockBuffer; - } - }); + byte[] desiredContent = {0x42, 0x00, 0x13}; + mockBuffer = ByteBuffer.wrap(desiredContent); // Set up mocked image dependency mockImage = mock(Image.class); From cfd0c1dc4248ed6a6dee0853204e9e5e4d969d42 Mon Sep 17 00:00:00 2001 From: jesswrd Date: Wed, 29 Oct 2025 13:29:20 -0700 Subject: [PATCH 5/5] more fitting name --- .../java/io/flutter/plugins/camera/ImageSaverTests.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/packages/camera/camera_android/android/src/test/java/io/flutter/plugins/camera/ImageSaverTests.java b/packages/camera/camera_android/android/src/test/java/io/flutter/plugins/camera/ImageSaverTests.java index 698da3abd2b..963066aa876 100644 --- a/packages/camera/camera_android/android/src/test/java/io/flutter/plugins/camera/ImageSaverTests.java +++ b/packages/camera/camera_android/android/src/test/java/io/flutter/plugins/camera/ImageSaverTests.java @@ -22,8 +22,6 @@ import org.junit.Before; import org.junit.Test; import org.mockito.MockedStatic; -import org.mockito.invocation.InvocationOnMock; -import org.mockito.stubbing.Answer; public class ImageSaverTests { @@ -32,7 +30,7 @@ public class ImageSaverTests { ImageSaver.Callback mockCallback; ImageSaver imageSaver; Image.Plane mockPlane; - ByteBuffer mockBuffer; + ByteBuffer byteBuffer; MockedStatic mockFileOutputStreamFactory; FileOutputStream mockFileOutputStream; @@ -43,11 +41,11 @@ public void setup() { when(mockFile.getAbsolutePath()).thenReturn("absolute/path"); mockPlane = mock(Image.Plane.class); byte[] desiredContent = {0x42, 0x00, 0x13}; - mockBuffer = ByteBuffer.wrap(desiredContent); + byteBuffer = ByteBuffer.wrap(desiredContent); // Set up mocked image dependency mockImage = mock(Image.class); - when(mockPlane.getBuffer()).thenReturn(mockBuffer); + when(mockPlane.getBuffer()).thenReturn(byteBuffer); when(mockImage.getPlanes()).thenReturn(new Image.Plane[] {mockPlane}); // Set up mocked FileOutputStream